<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4186975407487683030</id><updated>2011-11-27T16:50:35.266-08:00</updated><category term='SAP Stap by Stap tutorials'/><category term='SAP  ALV Reports'/><category term='SAP ALV Reports'/><category term='sap abap user exit'/><category term='sap Reporting'/><category term='SAP ABAP Tutorials'/><category term='Direct Document Objects'/><category term='sap abap interview Questions'/><category term='sap abap interface guide'/><category term='sap transaction codes'/><category term='sap abap jobs'/><category term='sapabaptutorials'/><category term='sap inter'/><title type='text'>SAP ABAP Tutorials</title><subtitle type='html'>This Blog Will Give Complete Information About SAP ABAP Tutorials And SAP ABAP Reporting Tutorials ,SAP ABAP Smart Forms Tutorials,SAP ABAP Tutorials And SAP ABAP Interview Questions,SAP ABAP jobs ,SAP JObs In India,SAP Jobs In USA,SAP ABAP Jobs In UK ,SAP ABAP hr Tutorials,SAP ABAP Updates......</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sapabaptutorials-1.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3344699948745772442</id><published>2009-01-21T05:01:00.000-08:00</published><updated>2009-01-21T05:07:16.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP  ALV Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ABAP Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap user exit'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interface guide'/><title type='text'>SAP ABAP Interface Detailed Design</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Interface Detailed Design&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;TABLE OF CONTENTS&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1. INTRODUCTION 3&lt;br /&gt;1.1. Purpose of this Document 3&lt;br /&gt;1.2. EDI System Configuration 3&lt;br /&gt;2. INTERFACE DESIGN GUIDE 4&lt;br /&gt;2.1. Interface Configuration 4&lt;br /&gt;2.2. Outbound Batch Processing 4&lt;br /&gt;2.3. Inbound Batch Processing 5&lt;br /&gt;2.4. Interface Housekeeping 5&lt;br /&gt;2.5. Potential Errors and Recovery 6&lt;br /&gt;2.6. Archiving and Backup 6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. INTRODUCTION&lt;br /&gt;1.1. Purpose of this Document&lt;br /&gt;The purpose of this document is to outline the technical design of the EDI interface from SAP to the EDI subsystem. The high-level details of the proposed solution may be found in the EDI Scope document, as well as the EDI Functional Specification document. Further information on the interface may be obtained by reading the EDI Production Setup Guide.&lt;br /&gt;1.2. EDI System Configuration&lt;br /&gt;The EDI system configuration will initially consist of a SAP client reading in and writing out IDoc format files to a UNIX directory. This will occur at a time defined by the interchange agreements set up by the business.&lt;br /&gt;2. INTERFACE DESIGN GUIDE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The diagram above gives a diagrammatic representation of the EDI process, including the interfacing with the subsystem. A technical overview of the process is described in the following sections.&lt;br /&gt;2.1. Interface Configuration&lt;br /&gt;The details of the interface configuration is described in the documents “EDI Production Setup Guide” and “NFS Setup Guide”.&lt;br /&gt;2.2. Outbound Batch Processing&lt;br /&gt;A SAP outbound batch job will need to be scheduled to run on a daily basis at a fixed time. This job will need to be run before a corresponding inbound job executes on the EDI subsystem translation software, allowing sufficient time to allow the outbound job to be completed&lt;br /&gt;&lt;br /&gt;The transaction that needs to be run is transaction WE14, running program RSEOUT00 with a variant, specifying the receiver port (such as SAPF01) and the message type (ORDERS, ORDCHG).&lt;br /&gt;Since a fixed outbound IDoc filename (as opposed to dynamic naming using a SAP function) will be used for processing, it is not essential that the file be deleted after being read in by the subsystem. This file will be overwritten when the next run of the outbound batch job occurs.&lt;br /&gt;&lt;br /&gt;Note that the EDI system administrator will be able to check on the date and time of a particular file, either by examining the SAP log (using transaction WE05), or alternatively, examining the date and time stamp of the file at the Unix level using the Unix ‘ls -l’ command in the EDI subdirectory (/home/edi). This outbound IDoc file may be copied at the Unix system level for diagnostic or archiving purposes.&lt;br /&gt;&lt;br /&gt;The main routine monitoring activity for outbound jobs requires that the shared EDI directory is examined after every scheduled batch job to ensure that the batch job has run, and that a file with a date stamp that corresponds to the time of the batch job exists.&lt;br /&gt;&lt;br /&gt;Transaction BD88 is useful for resubmitting IDocs which have not been correctly processed. Note that IDocs can be manually edited if required, using transaction WE02 or WE05.&lt;br /&gt;2.3. Inbound Batch Processing&lt;br /&gt;A SAP Inbound processing job will need to be run on a daily basis at a fixed time. Ideally, inbound and outbound processing should not be scheduled at the same time to prevent any confusion, though this is possible should it be required. This process should only be run after the corresponding EDI subsystem processing has been completed. Transaction BD87 can be used to read in IDocs if required. IDocs can be manually edited if required, using transaction WE05, or transaction WE19.&lt;br /&gt;&lt;br /&gt;2.4. Interface Housekeeping&lt;br /&gt;Interface housekeeping is minimal, since all files handled at the interface level are overwritten or deleted after each exchange. Therefore, no maintenance is required at the interface level.&lt;br /&gt;&lt;br /&gt;2.5. Potential Errors and Recovery&lt;br /&gt;Due to limitations of the Gentran Director software being used, the integration of SAP and the EDI subsystem is very limited. No status information is communicated from the subsystem to SAP or vice-versa. Therefore regular monitoring after each batch job (and before each subsequent batch job in the same direction of transfer) is required to ensure that no files are overwritten.&lt;br /&gt;&lt;br /&gt;If jobs have not been successfully executed, a manual job should be scheduled immediately. If files are accidentally overwritten, all EDI messages that were transferred in a particular direction will have to be rewritten by the originating system (SAP or Gentran).&lt;br /&gt;2.6. Archiving and Backup&lt;br /&gt;There will be no archiving or backup of data files at the interface level, but strategies for this will have to be in place for SAP and Gentran.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3344699948745772442?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sap4india.com' title='SAP ABAP Interface Detailed Design'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3344699948745772442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3344699948745772442'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/sap-abap-interface-detailed-design.html' title='SAP ABAP Interface Detailed Design'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1307432224354057859</id><published>2009-01-21T04:52:00.001-08:00</published><updated>2009-01-21T05:00:39.905-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP  ALV Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='sap transaction codes'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap user exit'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sap inter'/><title type='text'>SAP ABAP User Exit Overview</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///E:%5CDOCUME%7E1%5Ckumar%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if !mso]&gt;&lt;object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id="ieooui"&gt;&lt;/object&gt; &lt;style&gt; st1\:*{behavior:url(#ieooui) } &lt;/style&gt; &lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:Helvetica-Narrow; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-alt:"Arial Narrow"; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:auto; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Palatino; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-alt:"Book Antiqua"; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:auto; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:SAPDings; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-alt:"Times New Roman"; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:auto; 	mso-font-signature:0 0 0 0 0 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} p 	{mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:443113783; 	mso-list-template-ids:2127053742;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l1 	{mso-list-id:2113547550; 	mso-list-template-ids:355252148;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p&gt;&lt;b&gt;&lt;span style=";font-family:Helvetica-Narrow;font-size:24;color:black;"   &gt;What is a User Exit?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;You can use &lt;i&gt;User Exits&lt;/i&gt; to adapt the SAP System to your company's specific requirements. They do not involve modifications to the original coding; instead, they consist of a separate area that is defined by SAP and shipped with the standard system either empty or with default values. You can individually configure and activate these system extensions. By enhancing the SAP software via user exits, we avoid modifications in the traditional sense.&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;A further advantage of user exits is that programs developed with user exits remain unchanged during upgrades to the SAP software.&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;User exits are &lt;i&gt;not &lt;/i&gt;affected by SSCR, because the customer-specific parts of the user exits are implemented in the customer name range.&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Toc400363229"&gt;&lt;/a&gt;&lt;a name="_Toc336091826"&gt;&lt;/a&gt;&lt;a name="_Toc336091870"&gt;&lt;/a&gt;&lt;a name="_Toc336092446"&gt;&lt;/a&gt;&lt;a name="_Toc336094236"&gt;&lt;/a&gt;&lt;a name="_Toc336096304"&gt;&lt;/a&gt;&lt;a name="_Toc336756483"&gt;&lt;/a&gt;&lt;a name="_Toc336758370"&gt;&lt;/a&gt;&lt;a name="_Toc336758810"&gt;&lt;/a&gt;&lt;a name="_Toc336827531"&gt;&lt;/a&gt;&lt;a name="_Toc336827595"&gt;&lt;/a&gt;&lt;a name="_Toc336937610"&gt;&lt;/a&gt;&lt;a name="_Toc336937895"&gt;&lt;/a&gt;&lt;a name="_Toc337624181"&gt;&lt;/a&gt;&lt;a name="_Toc400275719"&gt;&lt;/a&gt;&lt;a name="_Toc400277584"&gt;&lt;/a&gt;&lt;a name="_Toc400280516"&gt;&lt;/a&gt;&lt;a name="_Toc400356778"&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;b&gt;&lt;span style=";font-family:Helvetica-Narrow;font-size:18;color:black;"   &gt;Categories of User Exits&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;Three types of user exits exist:&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal"  style="color:black;"&gt;&lt;b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt;Function      exits.&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt; Function exits are function modules that have      been defined by SAP and that you can activate. The application developers      determine which data is passed on and define the function groups and      function modules in the function library (with short text and interface,      but without coding).&lt;/span&gt;&lt;span style="font-family:Arial;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"  style="color:black;"&gt;&lt;b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt;Menu      exits. &lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt;Menu exits can be used to activate menu items      and furnish them with additional functionality.&lt;/span&gt;&lt;span style="font-family:Arial;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"  style="color:black;"&gt;&lt;b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt;Screen      exits.&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Palatino;font-size:10;"  &gt; Screen exits enable you to add additional      fields to a screen.&lt;/span&gt;&lt;span style="font-family:Arial;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;a name="_Toc400363230"&gt;&lt;/a&gt;&lt;a name="_Toc336091827"&gt;&lt;/a&gt;&lt;a name="_Toc336091871"&gt;&lt;/a&gt;&lt;a name="_Toc336092447"&gt;&lt;/a&gt;&lt;a name="_Toc336094237"&gt;&lt;/a&gt;&lt;a name="_Toc336096305"&gt;&lt;/a&gt;&lt;a name="_Toc336756484"&gt;&lt;/a&gt;&lt;a name="_Toc336758371"&gt;&lt;/a&gt;&lt;a name="_Toc336758811"&gt;&lt;/a&gt;&lt;a name="_Toc336827532"&gt;&lt;/a&gt;&lt;a name="_Toc336827596"&gt;&lt;/a&gt;&lt;a name="_Toc336937611"&gt;&lt;/a&gt;&lt;a name="_Toc336937896"&gt;&lt;/a&gt;&lt;a name="_Toc337624182"&gt;&lt;/a&gt;&lt;a name="_Toc400275720"&gt;&lt;/a&gt;&lt;a name="_Toc400277585"&gt;&lt;/a&gt;&lt;a name="_Toc400280517"&gt;&lt;/a&gt;&lt;a name="_Toc400356779"&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;b&gt;&lt;span style=";font-family:Helvetica-Narrow;font-size:18;color:black;"   &gt;Request for Expansion of User&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=";font-family:Helvetica-Narrow;font-size:18;color:black;"   &gt; Exits&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;If you would like to have additional functionality at certain places in the R/3 System, enter a problem message in &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;OSS&lt;/st1:city&gt;&lt;/st1:place&gt; in which you name the specific application. SAP will process your request and decide whether the functionality can be implemented in the next upgrade or wheth&lt;a name="_Toc336091828"&gt;&lt;/a&gt;&lt;a name="_Toc336091872"&gt;&lt;/a&gt;&lt;a name="_Toc336092448"&gt;&lt;/a&gt;&lt;a name="_Toc336094238"&gt;&lt;/a&gt;&lt;a name="_Toc336096306"&gt;&lt;/a&gt;&lt;a name="_Toc336756485"&gt;&lt;/a&gt;&lt;a name="_Toc336758372"&gt;&lt;/a&gt;&lt;a name="_Toc336758812"&gt;&lt;/a&gt;&lt;a name="_Toc336827533"&gt;&lt;/a&gt;&lt;a name="_Toc336827597"&gt;&lt;/a&gt;&lt;a name="_Toc336937612"&gt;&lt;/a&gt;&lt;a name="_Toc336937897"&gt;&lt;/a&gt;&lt;a name="_Toc337624183"&gt;&lt;/a&gt;&lt;a name="_Toc348433015"&gt;&lt;/a&gt;&lt;a name="_Toc348435056"&gt;&lt;/a&gt;&lt;a name="_Toc348436406"&gt;&lt;/a&gt;&lt;a name="_Toc385330837"&gt;&lt;/a&gt;er a user exit can be provided.&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Toc400363231"&gt;&lt;/a&gt;&lt;a name="_Toc400275721"&gt;&lt;/a&gt;&lt;a name="_Toc400277586"&gt;&lt;/a&gt;&lt;a name="_Toc400280518"&gt;&lt;/a&gt;&lt;a name="_Toc400356780"&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;b&gt;&lt;span style=";font-family:Helvetica-Narrow;font-size:18;color:black;"   &gt;Overview of User Exits&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;You can display a list of existing enhancements in the system through the following menu path:&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt;ABAP/4 Workbench &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:SAPDings;color:black;"  &gt;B&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt; Environment &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:SAPDings;color:black;"  &gt;B&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt; Enhancements &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:SAPDings;color:black;"  &gt;B&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt; Project administration &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:SAPDings;color:black;"  &gt;B&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt; Utilities &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:SAPDings;color:black;"  &gt;B&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=";font-family:Palatino;color:black;"  &gt; SAP enhancements&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Palatino;font-size:10;color:black;"   &gt;.&lt;/span&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Arial;color:black;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=""&gt;                                                      &lt;/span&gt;http://sapr3.tripod.com/sapab013.htm&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SAP User Exits Routine&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;User exits are routine which SAP allows you to add in additional customized programs process without affecting the standard SAP programs. &lt;/p&gt;  &lt;p&gt;form userexit_xxxxx&lt;br /&gt;      ........................&lt;br /&gt;endform &lt;/p&gt;  &lt;p&gt;In VL01 - Create Delivery Order, standard program  SAPMV50A, the standard program did not check for storage location equal to space, and delivery quantity less than one when the user click the save button.  Therefore I have to insert the additional checking into the userexit routine. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Steps:-&lt;/b&gt; &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Goto transaction VL01 to pick      a Sales Order for delivery (you don't have to save the data) &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;In the initial screen, click      System -&gt; Status -&gt; Double click on Program (Screen) &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;In the dialog program      SAPMV50A, click Edit -&gt; Search/replace &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Type userexit in the Find      field, then click the In program radio button and hit Enter &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;A number of userexit routine      will be display.  You'll have to roughly decide which is the correct      userexit routine to used. &lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;form userexit_save_document_prepare.&lt;br /&gt;case xlips-pstyv.&lt;br /&gt; when 'TAX' or 'REX'.&lt;br /&gt;*    Accept this two Delivery item category &lt;/p&gt;  &lt;p&gt;  when 'REN'.&lt;br /&gt;    if xlips-lgort = space.&lt;br /&gt;*    Reject this Delivery item category&lt;br /&gt;       message e001.&lt;br /&gt;    endif. &lt;/p&gt;  &lt;p&gt;  when others.&lt;br /&gt;    if xlips-matnr &lt;&gt; space.&lt;br /&gt;*    Check storage location not space&lt;br /&gt;      if xlips-lgort = space.&lt;br /&gt;         message e002.&lt;br /&gt;      endif.&lt;br /&gt;*     Check delivery quantity not zero&lt;br /&gt;      if xlips-pikmg &lt; 1.           message e003.        endif.     endif. endcase. endform.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com/" title="SAP ABAP Tutorials"&gt;More SAP ABAP Tutorials&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Arial;color:black;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1307432224354057859?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sap4india.com' title='SAP ABAP User Exit Overview'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1307432224354057859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1307432224354057859'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/sap-abap-user-exit-overview.html' title='SAP ABAP User Exit Overview'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3863333112801888199</id><published>2009-01-21T04:37:00.000-08:00</published><updated>2009-01-21T04:43:55.158-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sap transaction codes'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP Stap by Stap tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ALV Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ABAP Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='sap Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='sapabaptutorials'/><title type='text'>SAP Transaction Codes</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;SAP Transaction Codes&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;  &lt;table str="" style="border-collapse: collapse; width: 406pt;" width="541" border="0" cellpadding="0" cellspacing="0"&gt;&lt;col style="width: 406pt;" width="541"&gt;  &lt;tbody&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt; width: 406pt;" width="541" height="17"&gt;SPRO      DEFINE ITEM CATEGORY    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MM01    CREATE   MATERIAL &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MM02    MODIFY   MATERIAL &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MM03      DISPLAY MATERIAL        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MMS1    CREATE   MATERIAL MASTER  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MMS2    CHANGE   MATERIAL MASTER  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MMS3      DISPLAY MATERIAL MASTER &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MB1C      MAINTAIN STOCK  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MMPI      INITIALISE PERIOD FOR MASTER MATERIAL RECORDFROM CO   CODE        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MMBE    CREATE   STOCK    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;MM60      MATERIAL LIST   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;XD01    CREATE   CUSTOMER &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;XD02    MODIFY   CUSTOMER &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;XD03      DISPLAY CUSTOMER        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA01    CREATE   ORDER    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA02    CHANGE   ORDER    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA03      DISPLAY ORDER   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA11    CREATE   INQUIRY  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA12    CHANGE   INQUIRY  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA13      DISPLAY INQUIRY &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA21    CREATE   QUOTATION        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA22    CHANGE   QUOTATION        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VA23      DISPLAY QUOTATION       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VD02      CHANGE  SALES PROSPECT  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VD03      DISPLAY SALES PROSPECT  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VD04      DISPLAY CHANGES &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VD06    FLAG   FOR DELETION       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VK11      MAINTAINING PRICING     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VK0A    ASSIGN   G/L ACCOUNT GENERAL      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOK0      PRICING &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOR1    DEF   COMMON DIST CHANEL  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOR2    DEF   COMMON DIV  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOV6    DEFINE   SCHEDULE LINES   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOV8    DEFINE   SALES DOC TYPE   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VOFA      CREATE/OR CHANGE BILLING TYPES CONFIGURATION    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;V129    DEFINE   INCOMPLETENESS SCHEMAS FOR FOREIGN TRADE &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;V149    ASSIGN   INCOMPLETENESS SCHEMAS FOR COUNTRY CODE  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CA01    CREATE   ROUTING  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CA02      EDIT  ROUTING   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CA03      DISPLAY ROUTING &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CS01    CREATE   BOM      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CS02    CHANGE   BOM      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;CS03      DISPLAY BOM     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVK1    DEFINE   TAX DET RULES    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVK3    DEF   TAX REL OF MASTER RECORDS CUSTOMER TAXES    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVK4    DEF   TAX REL OF MASTER RECORDS MATERIAL TAXES    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVR6    DEF   LEGAL STATUSES      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVS9    DEF   CUSTOMER GRP        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVRA    MAINT   STATISTICS GRPS FOR CUSTOMERS     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVRF    MAINT   STATISTICS GRPS FOR MATERIAL      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVXC    ASSIGN   SHIIPING POINT TO PLANT  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVX6    ASSIGN   PLANT TO S.O AND DIST CHANEL     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVLK    DEFINE   DELIVERY TYPE    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVSG    DEFINE   INCOTERMS        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVLH    DEFINE   ROUTES   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVXM    ASSIGN   SALES OFF TO SALES AREA  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVXJ    ASSIGN   SALES GRP TO SALES OFFICE        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OMS2      MATERAIL UPDATE &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OVLP    DEFINE   ITEM CATEGORY FOR DELIVERY       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OX10    ASSIGN   DEL PLANTS FOR TAX DET   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;O/S2    DEFINE   SERIAL NO PROFILE        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;O/S1    DEFINE   CENTRAL CONTROL PARAMETERS FOR SR NO     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OBB8    DEFINE   TERMS OF PAYMENT &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;OKKP      ACTIVATION OF COMPONENETS       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB01    CREATE   REBATE AGGREMENTS        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB02    CHANGE   REBATE AGREMENT  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB03      DISPLAY REBATE AGGREMENT        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB31    CREATE   PROMOTION        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB32    CHANGE   PROMOTION        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB33      DISPLAY PROMOTION       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB21    CREATE   SALES DEAL       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB22    CHANGE   SALES DEAL       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB23      DISPLAY SALES DEAL      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB25    LIST   OF SALES DEAL      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB35      PROMOTION LIST  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VKA4    CREATE   ARCHIVE ADMINISTRATION   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VKA5    DEL   ARCHIVE ADMINISTRATION      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VKA6    RELOAD   ARCHIVE ADMINISTRATION   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VC/1      CUSTOMER LIST   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VC/2    CREATE   SALES SUMMARY    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VDH2      DISPLAY CUSTOMER HIERARCHY      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF01    CREATE   PROFORMA INVOICE &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF02    CHANGE   PROFORMAINVOICE  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF03      DISPLAYPROFORMA  INVOICE        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF07      DISPLAY FROM ARCHIVE    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF11    CANCEL   BILL     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VFX3      BLOCKED BILLING DOC     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VFRB    RETRO   BILLING   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF04      MAINTAIN BILL DUE LIST  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF06      BACKGROUND PROCESSING   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF21    CREATE   INVOICE LIST     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF22    CHANGE   INVOICE LIST     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF23      DISPLAY INVOICE LIST    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF44      MAINT  REVENUE LIST     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF45      REVENUE REPORTS &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF46    MAINT   CANCELLATION LIST &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VF31    ISSUE   BILLING DOC       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VFP1    SET   BILLING DATE        &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VARR      ARCHIVE DOCUMENTS       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VL01N   CREATE   DELIVERY         &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VL02N   TO CHANGE   DELIVERY WHICH IS ALREADY CREATED     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VL03N   DISPLAY   DELIVERY                  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;V/08    TO   CHANGE CONDITION (PR PROCEDURE)      &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;V/30    DEFINE   PRINT PARAMETERS &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;FD32      SETTING CREDIT LIMIT FOR CUSTOMER       &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;/NSM12  TO REMOVE LOCK   ENTRY    &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;SM30            &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;ND59    LIST   CUSTOMER MATERIAL INFO     &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td class="xl23" style="height: 12.75pt;" height="17"&gt;VB0F    UPDATE   BILL DOC&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com" title ="SAP Transaction Codes "&gt;&lt;span style="font-weight: bold;"&gt;SAP Transaction Codes&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com" title = "SAP ABAP Tutorials"&gt;More SAP ABAP Tutorials&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3863333112801888199?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sap4india.com' title='SAP Transaction Codes'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3863333112801888199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3863333112801888199'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/sap-transaction-codes.html' title='SAP Transaction Codes'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5876882396231950725</id><published>2009-01-12T10:23:00.001-08:00</published><updated>2009-01-12T10:23:24.973-08:00</updated><title type='text'>Tokenization as a means of securing credit card numbers</title><content type='html'>&lt;div class="sapTxtSml"&gt;&lt;br /&gt;&lt;p&gt;My previous blog post titled &lt;a href="https://weblogs.sdn.sap.com/cs/junior/view/wlg/11951"&gt;Securing credit card account numbers in SAP&lt;/a&gt; focused on implementing functionality provided by SAP for encrypting credit card numbers stored in the SAP ERP database.&amp;nbsp; In an update I also included a brief reference&amp;nbsp;to encryption functionality in the SAP CRM database.&amp;nbsp; FAQ OSS notes mentioned in the post provide the necessary information to implement the SAP standard encryption functionality and thus secure the payment card and credit card numbers stored in your SAP applications.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At the end of the post I mentioned several&amp;nbsp;items that you should be aware of when implementing the standard SAP functionality which may prevent compliance with PCI DSS requirements.&amp;nbsp; I then alluded to Tokenization as a means of addressing the additional items.&amp;nbsp; In this post I want to explore the differences between SAP's standard encryption offerings in each application and tokenization as an application independent encryption approach.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Many applications provide encryption functionality which is specific to that particular product.&amp;nbsp; SAP's encryption offering for credit card numbers in the SAP ERP and CRM applications is one such example.&amp;nbsp; The encryption functionality is designed to work only with that application - specifically by encrypting the credit card number data stored in the database.&amp;nbsp; Should data need to be passed between applications, such as order data being replicated from the SAP ERP to SAP CRM system, the data must be decrypted in the source application passed in an unencrypted form (and therefore potentially logged in an unencrypted format) and finally encrypted in the target application. &amp;nbsp;Using this application specific encryption approach has the following weaknesses:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Encryption solutions on each application must be setup, maintained and managed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Encryption keys in each solution must be managed independent of other solutions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Encryption keys must be rotated independently of other solutions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Increased number of encryption solutions require additional IT staff time for management and maintenance&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Disparate encryption solutions increase security risks if maintenance is not always kept current&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Encrypted data must first be decrypted before being passed to other applications and then re-encrypted before being stored by the target application&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;A typical enterprise with an SAP system, a web store and a payment application each storing encrypted credit card data locally using application specific encryption applications would have an architecture which look like this:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="430" alt="Before Centralization and Tokenizaiton" src="https://weblogs.sdn.sap.com/weblogs/images/49145/ApplicationSpecificEncryption.PNG" width="700" align="left" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Implementing a solution which Centralizes and Tokenizes the credit card number data in a secure data vault would change the architecture to look like the following:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="441" alt="Centralization and Tokenization" src="https://weblogs.sdn.sap.com/weblogs/images/49145/CentralizationandTokenizaiton.PNG" width="700" align="left" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This solution would extract the unencrypted card numbers from the various applications, consolidate the application specific encryption functionality into a single, central solution and would simplify key management and key rotation functions.&amp;nbsp; Centralization and Tokenization would specifically help address the following PCI DSS requirements: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="498" alt="PCI DSS Section 3 requirements" src="https://weblogs.sdn.sap.com/weblogs/images/49145/PCIDSSsection3.PNG" width="420" align="left" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Additional advantages to this approach would include the following: &lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;One centralized storage location of all encrypted credit card number data&lt;/li&gt;&lt;br /&gt;&lt;li&gt;All applications would store tokens at the database level rather than unencrypted or encrypted card numbers - Security At Rest&lt;/li&gt;&lt;br /&gt;&lt;li&gt;All application interfaces could pass tokens rather than encrypted or unencrypted card numbers - Security In Transport&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rotation of encryption keys would be performed centrally and would be transparent to other applications as the tokens would remain unaffected&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Centralized logs can be kept of all decryption attempts from all source systems thereby providing a valuable audit trail&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If an external, third-party solution is used the risk of data loss in a breach of internal systems is greatly diminished - only tokens would compromised, not the encrypted data or encrypted keys&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Finally, let's take a look at how the workflow of processing of a credit card authorization would look in an enterprise using SAP along with a Centralization and Tokenization solution:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="482" alt="SAP Order Processing workflow with Tokenization" src="https://weblogs.sdn.sap.com/weblogs/images/49145/SAPOrderProcessingworkflowwithTokenization.PNG" width="655" align="left" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As enumerated above, there are clearly many advantages and benefits to using a token-based solution for securing credit card details not only in SAP by across the enterprise.&amp;nbsp; The token-based approach is currently not supported by standard SAP functionality, but is supported by solutions from third-parties like Paymetric.&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;As scrutiny increases surrounding how companies are securing sensitive customer data, such as credit card numbers, serious consideration should be made of token-based solutions.&amp;nbsp; Merchants who choose to outsource the storage of this sensitive data have less risk of embarrassing data loss in the event of a system breach as only tokens would be stored locally.&amp;nbsp; All encrypted data and keys would be stored by the external solution this greatly diminishing a Merchant's exposure and potential public relations nightmare.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="SAP MDM Tutorials" href="http://www.sap4india.com/" target="_blank"&gt;Free SAP Interview Questions&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="SAP MDM Tutorials" href="http://www.sapmdmtutorials.blogspot.com/" target="_blank"&gt;SAP MDM Tutorials&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="SAP MDM Interview Questions" href="http://www.sap4india.com/"&gt;SAP MDM Interview Questions&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.sapag.co.in/" target="_blank"&gt;SAP Netweaver Tutorials&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5876882396231950725?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5876882396231950725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5876882396231950725'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/tokenization-as-means-of-securing.html' title='Tokenization as a means of securing credit card numbers'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8842318658523327902</id><published>2009-01-09T04:02:00.001-08:00</published><updated>2009-01-09T04:02:37.830-08:00</updated><title type='text'>Creation of Transparent Table 3</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;strong&gt;Creation of Transparent Table 3&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="25"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now it asks for Domain creation. Press Yes.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix ="" v /&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;?xml:namespace prefix ="" o /&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 249.75pt; HEIGHT: 136.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="182" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.25.jpg" width="333" v:shapes="_x0000_i1025" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="26"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Give short description in short text field. Enter the data type and no. characters, Press Enter.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then Press on Activate button or Press Ctrl+F3.&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 431.25pt; HEIGHT: 320.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="427" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.26.jpg" width="575" v:shapes="_x0000_i1026" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="27"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save this as a local object.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1027" style="WIDTH: 430.5pt; HEIGHT: 322.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image005.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="430" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.27.jpg" width="574" v:shapes="_x0000_i1027" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="28"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press enter.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1028" style="WIDTH: 429.75pt; HEIGHT: 399pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image007.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="532" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.28.jpg" width="573" v:shapes="_x0000_i1028" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="29"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now you will get the following screen. Press Back button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1029" style="WIDTH: 429.75pt; HEIGHT: 320.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image009.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="427" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.29.jpg" width="573" v:shapes="_x0000_i1029" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="30"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Activate the data element By pressing Activate button or Pressing Ctrl+F3.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1030" style="WIDTH: 430.5pt; HEIGHT: 318.75pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image011.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="425" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.30.jpg" width="574" v:shapes="_x0000_i1030" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="31"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press enter.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1031" style="WIDTH: 432.75pt; HEIGHT: 397.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image013.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="530" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.31.jpg" width="577" v:shapes="_x0000_i1031" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="32"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press Back button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;br /&gt;&lt;p&gt;&lt;v:shape id="_x0000_i1032" style="WIDTH: 430.5pt; HEIGHT: 321.75pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image015.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="429" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page3.32.jpg" width="574" v:shapes="_x0000_i1032" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="33"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now we created two fields. And Data elements and Domain for these two fields.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now we have to maintain the technical settings. Press on Technical settings button.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 431.25pt; HEIGHT: 324pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="432" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.33.jpg" width="575" v:shapes="_x0000_i1025" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="34"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Give the data class and size category of the table as per the requirement.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;And press the back button.&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 431.25pt; HEIGHT: 270pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="360" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.34.jpg" width="575" v:shapes="_x0000_i1026" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="35"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now activate the table by pressing the activate button or CTRL+F3.&lt;v:shape id="_x0000_i1027" style="WIDTH: 6in; HEIGHT: 329.25pt" type="#_x0000_t75"&gt; &lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image005.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="439" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.35.jpg" width="576" v:shapes="_x0000_i1027" /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="36"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press enter.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1028" style="WIDTH: 432.75pt; HEIGHT: 398.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image007.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="531" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.36.jpg" width="577" v:shapes="_x0000_i1028" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="37"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now you will get the following screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1029" style="WIDTH: 431.25pt; HEIGHT: 329.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image009.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="439" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.37.jpg" width="575" v:shapes="_x0000_i1029" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="38"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now enter the data into table. Go to Utilities&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings"&gt;à&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt; Table contents &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings"&gt;à&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt; Create Entries.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1030" style="WIDTH: 431.25pt; HEIGHT: 328.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image011.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="438" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.38.jpg" width="575" v:shapes="_x0000_i1030" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="39"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now enter the data in the fields and Save it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1031" style="WIDTH: 430.5pt; HEIGHT: 328.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image013.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="438" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.39.jpg" width="574" v:shapes="_x0000_i1031" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="40"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;You will get the following screen after clicking the Reset Button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;br /&gt;&lt;p&gt;&lt;v:shape id="_x0000_i1032" style="WIDTH: 429.75pt; HEIGHT: 327pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image015.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="436" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page4.40.jpg" width="573" v:shapes="_x0000_i1032" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="41"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Enter the data for the second entry into the table.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save it and press reset.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 431.25pt; HEIGHT: 328.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="438" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.41.jpg" width="575" v:shapes="_x0000_i1025" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="43"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;You will get the following screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 430.5pt; HEIGHT: 326.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="435" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.42.jpg" width="574" v:shapes="_x0000_i1026" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;44.&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Again enter the data for the third entry.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;45.&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Press save, Reset (Optional) and Back button.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1027" style="WIDTH: 429.75pt; HEIGHT: 325.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image005.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="434" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.43.jpg" width="573" v:shapes="_x0000_i1027" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;46.&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now you will get the following screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1028" style="WIDTH: 6in; HEIGHT: 328.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image007.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="438" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.44.jpg" width="576" v:shapes="_x0000_i1028" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="47"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;To see the table contents go to Utilities &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings"&gt;à&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt; Table contents &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings"&gt;à&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt; Display. Or press Ctrl+Shift+F10.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1029" style="WIDTH: 429pt; HEIGHT: 327.75pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image009.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="437" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.45.jpg" width="572" v:shapes="_x0000_i1029" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="48"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;You will get the following screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1030" style="WIDTH: 431.25pt; HEIGHT: 327pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image011.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="436" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.46.jpg" width="575" v:shapes="_x0000_i1030" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="49"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press on run button or press F8. Now it will display the table contents.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1031" style="WIDTH: 430.5pt; HEIGHT: 329.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image013.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="439" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page5.47.jpg" width="574" v:shapes="_x0000_i1031" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now enjoy by creating tables on your own.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8842318658523327902?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8842318658523327902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8842318658523327902'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/creation-of-transparent-table-3.html' title='Creation of Transparent Table 3'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5126201717243881107</id><published>2009-01-09T03:49:00.001-08:00</published><updated>2009-01-09T03:49:30.423-08:00</updated><title type='text'>Creation of Transparent Table 1</title><content type='html'>&lt;h2&gt;Creation of Transparent Table 1&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="11"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now it will ask for domain creation. Press Yes.&lt;?xml:namespace prefix ="" o /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix ="" v /&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 429.75pt; HEIGHT: 301.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="402" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.11.jpg" width="573" v:shapes="_x0000_i1025" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="12"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Give short description for that domain which you are creating. And mention the data type in data type&lt;span&gt;&amp;nbsp; &lt;/span&gt;field and length in no. characters field an press ENTER.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 428.25pt; HEIGHT: 302.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="403" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.12.jpg" width="571" v:shapes="_x0000_i1026" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="13"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then press Ctrl+F3. It will ask for save before activation. Save it as a local Object.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1027" style="WIDTH: 430.5pt; HEIGHT: 302.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image005.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="403" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.13.jpg" width="574" v:shapes="_x0000_i1027" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="14"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press Enter.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1028" style="WIDTH: 429.75pt; HEIGHT: 400.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image007.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="534" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.14.jpg" width="573" v:shapes="_x0000_i1028" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="15"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then the following screen appears. Press on back button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1029" style="WIDTH: 424.5pt; HEIGHT: 245.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image009.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="327" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.15.jpg" width="566" v:shapes="_x0000_i1029" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="16"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press Ctrl+F3. You will get the following screen. Press Back button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1030" style="WIDTH: 430.5pt; HEIGHT: 330pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image011.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="440" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.16.jpg" width="574" v:shapes="_x0000_i1030" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="17"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;You will get the following screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1031" style="WIDTH: 429.75pt; HEIGHT: 330pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image013.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="440" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.17.jpg" width="573" v:shapes="_x0000_i1031" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="18"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Create one more field ZNUM and give data element name as ZNUM_DE. And double click on &amp;lsquo;ZNUM_DE&amp;rsquo;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1032" style="WIDTH: 428.25pt; HEIGHT: 319.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image015.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="426" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.18.jpg" width="571" v:shapes="_x0000_i1032" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="19"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save it by pressing Yes.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1033" style="WIDTH: 235.5pt; HEIGHT: 81pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image017.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="108" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.19.jpg" width="314" v:shapes="_x0000_i1033" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="20"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now it will ask for the data element creation. Press Yes.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1034" style="WIDTH: 251.25pt; HEIGHT: 135pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image019.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="180" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.20.jpg" width="335" v:shapes="_x0000_i1034" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="21"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Give short description of the data element. And give the lengths and field labels accordingly in Field label tab.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1035" style="WIDTH: 429.75pt; HEIGHT: 321pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image021.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="428" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.21.jpg" width="573" v:shapes="_x0000_i1035" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="22"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press on Definition tab and give the domain name in Domain field. Double click on ZNUM_D.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1036" style="WIDTH: 429.75pt; HEIGHT: 319.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image023.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="426" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.22.jpg" width="573" v:shapes="_x0000_i1036" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="23"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;It will ask for save. Press Yes.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1037" style="WIDTH: 248.25pt; HEIGHT: 117.75pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image025.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="157" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.23.jpg" width="331" v:shapes="_x0000_i1037" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="24"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save it as a local Object.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1038" style="WIDTH: 335.25pt; HEIGHT: 185.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image027.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="247" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page2.24.jpg" width="447" v:shapes="_x0000_i1038" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5126201717243881107?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5126201717243881107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5126201717243881107'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/creation-of-transparent-table-1.html' title='Creation of Transparent Table 1'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1483128497497455041</id><published>2009-01-09T00:57:00.001-08:00</published><updated>2009-01-09T00:57:21.449-08:00</updated><title type='text'>Creation of Transparent Table</title><content type='html'>&lt;p&gt;&lt;strong&gt;Creation of Transparent Table&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Enter the table name and press Create&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix ="" v /&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;?xml:namespace prefix ="" o /&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 399.75pt; HEIGHT: 293.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="391" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.1.jpg" width="533" v:shapes="_x0000_i1025" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="2"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Enter the description, Delivery class and check on table maintenance allowed. Then click on the tab Fields.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1026" style="WIDTH: 381.75pt; HEIGHT: 286.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image003.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="382" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.2.jpg" width="509" v:shapes="_x0000_i1026" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="3"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Enter the ZCHAR in fields tab and ZCHAR_DE in field type tab.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1027" style="WIDTH: 429pt; HEIGHT: 299.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image005.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="399" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.3.jpg" width="572" v:shapes="_x0000_i1027" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="4"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Double click on ZCHAR_DE. &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then it will ask for Save. Press &amp;lsquo;YES&amp;rdquo;.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1028" style="WIDTH: 432.75pt; HEIGHT: 294pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image007.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="392" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.4.jpg" width="577" v:shapes="_x0000_i1028" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="5"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save it as a local object on pressing Local object button&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1029" style="WIDTH: 430.5pt; HEIGHT: 304.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image009.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="406" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.5.jpg" width="574" v:shapes="_x0000_i1029" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="6"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now it will ask for the creation of the data element. Press Yes.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1030" style="WIDTH: 430.5pt; HEIGHT: 301.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image011.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="402" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.6.jpg" width="574" v:shapes="_x0000_i1030" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="7"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Click on the Field label tab and enter the lengths and descriptions accordingly.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1031" style="WIDTH: 432.75pt; HEIGHT: 302.25pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image013.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="403" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.7.jpg" width="577" v:shapes="_x0000_i1031" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="8"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then press Definition tab and enter the domain.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1032" style="WIDTH: 6in; HEIGHT: 301.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image015.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="402" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.8.jpg" width="576" v:shapes="_x0000_i1032" /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="9"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Double click on that zchar_d to create domain, then it will ask for save before going next screen.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Press Yes.&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1033" style="WIDTH: 428.25pt; HEIGHT: 300pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image017.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="400" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.9.jpg" width="571" v:shapes="_x0000_i1033" /&gt;&amp;nbsp;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="MARGIN-TOP: 0in" type="1" start="10"&gt;&lt;br /&gt;&lt;li class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Save it as a local object.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;v:shape id="_x0000_i1034" style="WIDTH: 431.25pt; HEIGHT: 301.5pt" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/01/clip_image019.png"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;img height="402" src="http://www.saptechnical.com/Tutorials/ABAP/TableCreate/page1.10.jpg" width="575" v:shapes="_x0000_i1034" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com/"&gt;SAP ABAP Tutorials&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.sap4india.com/"&gt;SAP ABAP Interview Questions &lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1483128497497455041?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1483128497497455041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1483128497497455041'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/creation-of-transparent-table.html' title='Creation of Transparent Table'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8050443392375497816</id><published>2009-01-09T00:51:00.001-08:00</published><updated>2009-01-09T00:52:19.778-08:00</updated><title type='text'>SAP ABAP Tutorials</title><content type='html'>&lt;blockquote cite="http://www.sapabaptutorials-1.blogspot.com"&gt;&lt;br /&gt;&lt;blockquote cite="http://www.sapabaptutorials-1.blogspot.com"&gt;Dictionary&lt;br /&gt;&lt;br /&gt;* Creating a Transparent Table (More details) &lt;br /&gt;* Creating a structure in ABAP Dictionary (More details) &lt;br /&gt;* Creating Search helps (Elementary and collective) (More details) &lt;br /&gt;* Creating a secondary index (More details) &lt;br /&gt;* Working with table maintenance generator (More details) &lt;br /&gt;* Creation of a Logical Database (More details) NEW&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p class="citation"&gt;&lt;cite cite="http://www.sapabaptutorials-1.blogspot.com"&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com/"&gt;SAP ABAP Tutorials&lt;/a&gt;&lt;/cite&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8050443392375497816?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8050443392375497816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8050443392375497816'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/sap-abap-tutorials.html' title='SAP ABAP Tutorials'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3928138229295644146</id><published>2009-01-09T00:05:00.000-08:00</published><updated>2009-01-09T00:22:09.416-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP Stap by Stap tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ALV Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ABAP Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sap Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct Document Objects'/><category scheme='http://www.blogger.com/atom/ns#' term='sapabaptutorials'/><title type='text'>Direct document objects</title><content type='html'>&lt;h1 style="text-align: justify;"&gt;Direct document objects&lt;/h1&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Times New Roman;"&gt;Dynamic documents allow you to create HTML like document screens. &lt;a href="http://www.sapdev.co.uk/reporting/dd_screens.htm"&gt; Click here for examples.&lt;/a&gt;&lt;br /&gt;Demonstration SAP programs which use direct document objects all start with 'DD_'. So you could&lt;br /&gt;either perform a value help on 'dd_*' or look below for example dynamic document programs.&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;    &lt;table style="color: rgb(29, 163, 146); width: 163px; height: 28px;" border="1" cellpadding="3" cellspacing="0"&gt;     &lt;tbody&gt;&lt;tr&gt;         &lt;td bg="" style="color: rgb(238, 238, 238);" valign="top"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);font-family:Arial monospaced for SAP;" &gt;*DD Programs&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Arial monospaced for SAP;"&gt;&lt;br /&gt;DD_ADD_FORM_BUTTON    Buttons on Forms of Dynamic Documents&lt;br /&gt;DD_ADD_FORM_INPUT               Interactive Elements: Forms with Buttons&lt;br /&gt;DD_ADD_LINK                     Interactive Elements: Links&lt;br /&gt;DD_ADD_LINK_SCROLLED           Interactive Elements: Links&lt;br /&gt;DD_ADD_PICTURE                  Display of SAP icons and pictures stored&lt;br /&gt;   in the BDS&lt;br /&gt;DD_ADD_TABLE                    Tables in Dynamic Documents&lt;br /&gt;DD_ADD_TEXT                     Text output in dynamic documents&lt;br /&gt;DD_ALV_FREE_TOP                 ALV use with definable page header&lt;br /&gt;DD_ALV_STANDARD_TOP             ALV use with standard page header&lt;br /&gt;   (REUSE_ALV_COMMENTARY_WRITE)&lt;br /&gt;DD_CORRECT_TYPD_TRDIR           DDIC: Correct SUBC Entries for Type Groups&lt;br /&gt;DD_F4_START_INDX                Starts indexing to synchronize an&lt;br /&gt;   external index&lt;br /&gt;DD_KEN_HELP_TYPES_GENERAL       Show help objects from Info Repository&lt;br /&gt;DD_KH_KONTEXT                   Display online docu (HTML Browser) for a&lt;br /&gt;   context&lt;br /&gt;DD_SIMPLE_ALV_TOP               Demo Program Change of ALV TOP with&lt;br /&gt;   Dynamic Documents&lt;br /&gt;DD_SPLIT_DOCUMENT               Distribution of areas on dynamic documents&lt;br /&gt;DD_START                        Program DD_START&lt;br /&gt;DD_STYLE_TABLE                  Style types and list colours for dynamic&lt;br /&gt;   documents, print&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h1&gt;SAP dynamic document example screens&lt;/h1&gt; &lt;p&gt;Below is a couple of screen shots of SAP dynamic documents, so you can get a feel of what they look like and whether they would be of any use to you!&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:414.75pt;"&gt;  &lt;v:imagedata src="dd_screens_files/image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="http://www.sapdev.co.uk/reporting/dd_screens_files/image005.jpg" shapes="_x0000_i1026" width="553" height="509" /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:414.75pt;height:495pt'"&gt;  &lt;v:imagedata src="dd_screens_files/image003.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="http://www.sapdev.co.uk/reporting/dd_screens_files/image006.jpg" shapes="_x0000_i1025" width="553" height="660" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com/" title=" Direct document objects "&gt;Direct document objects&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3928138229295644146?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sapabaptutorials-1.blogspot.com' title='Direct document objects'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3928138229295644146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3928138229295644146'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/direct-document-objects.html' title='Direct document objects'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3950727416035482060</id><published>2009-01-09T00:02:00.000-08:00</published><updated>2009-01-09T00:05:30.495-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP Stap by Stap tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP ALV Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sap Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='sapabaptutorials'/><title type='text'>SAP ALV Reports</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;SAP ALV Reports&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;table width="100%" border="0" cellpadding="7" cellspacing="10"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="35%"&gt;&lt;p&gt;&lt;a href="http://www.sapdev.co.uk/reporting/alv/alvtree.htm"&gt;&lt;img src="http://www.sapdev.co.uk/reporting/images/alvtree.jpg" width="191" border="0" height="81" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;         &lt;td valign="center" width="65%"&gt;&lt;span style="font-size:85%;"&gt;ALV tree         using Objects&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;         &lt;td valign="top" width="35%"&gt;&lt;p&gt;&lt;a href="http://www.sapdev.co.uk/reporting/alv/alvgrid.htm"&gt;&lt;img src="http://www.sapdev.co.uk/reporting/images/alvgrid.jpg" width="191" border="0" height="81" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;         &lt;td valign="center" width="65%"&gt;&lt;span style="font-size:85%;"&gt;ALV using         Grid Function Modules &lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;         &lt;td valign="top" width="35%"&gt;&lt;a href="http://www.sapdev.co.uk/reporting/alv/alvlist.htm"&gt;&lt;img src="http://www.sapdev.co.uk/reporting/images/alvrep.jpg" width="192" border="0" height="81" /&gt;&lt;/a&gt;&lt;/td&gt;         &lt;td valign="center" width="65%"&gt;&lt;span style="font-size:85%;"&gt;ALV using         List Function modules&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;         &lt;td valign="top" width="35%"&gt;&lt;a href="http://www.sapdev.co.uk/reporting/alv/alvscr.htm"&gt;&lt;img src="http://www.sapdev.co.uk/reporting/images/alvscr.jpg" width="192" border="0" height="81" /&gt;&lt;/a&gt;&lt;/td&gt;         &lt;td valign="center" width="65%"&gt;&lt;span style="font-size:85%;"&gt;ALV using         GRID Objects(Methods) on a screen&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com/" title=" SAP ALV Reports "&gt;SAP ALV Reports&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3950727416035482060?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sapabaptutorials-1.blogspot.com' title='SAP ALV Reports'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3950727416035482060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3950727416035482060'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/sap-alv-reports.html' title='SAP ALV Reports'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-48403714776714590</id><published>2009-01-08T23:57:00.000-08:00</published><updated>2009-01-09T00:01:58.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP Stap by Stap tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='sap abap jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sap Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='sapabaptutorials'/><title type='text'>ABAP Reporting - Example code and information on various areas of ABAP reporting</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;ABAP Reporting - Example code and information on various areas of ABAP reporting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[+] Advanced List Viewer(ALV)&lt;br /&gt;Example code and information on ALV reporting&lt;br /&gt;&lt;br /&gt;[+] Dynamic document objects&lt;br /&gt;Example code and information on creating dynamic document objects&lt;br /&gt;&lt;br /&gt;[+] Selection screen Setup/Processing&lt;br /&gt;Examples of various selection screen development techniques&lt;br /&gt;&lt;br /&gt;[+] Progress Indicator (Also Stops report timeout)&lt;br /&gt;Implementing a progress indicator&lt;br /&gt;&lt;br /&gt;Send SAP mail to users workplace inbox (SBWP)&lt;br /&gt;Sending internal emails with SAP&lt;br /&gt;&lt;br /&gt;Automatic refresh report&lt;br /&gt;Creating reports that automatically refresh themselves&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sapabaptutorials-1.blogspot.com" Title=" ABAP Reporting - Example code and information on various areas of ABAP reporting&lt;br /&gt;" &gt; ABAP Reporting - Example code and information on various areas of ABAP reporting&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-48403714776714590?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sapabaptutorials-1.blogspot.com' title='ABAP Reporting - Example code and information on various areas of ABAP reporting'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/48403714776714590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/48403714776714590'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2009/01/abap-reporting-example-code-and.html' title='ABAP Reporting - Example code and information on various areas of ABAP reporting'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2785126619999210550</id><published>2008-12-29T03:01:00.000-08:00</published><updated>2008-12-29T03:02:43.216-08:00</updated><title type='text'>Processing Keys In TC MD02</title><content type='html'>&lt;p&gt;&lt;b&gt;Explain about processing keys in tc md02 ie netch, netpl etc.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;By : Jia &lt;/p&gt;&lt;p&gt;Processing Key :MD02&lt;br /&gt; &lt;br /&gt;1. Regenerative planning (NEUPL) : System plans all the materials that are contained in the planning file&lt;br /&gt; &lt;br /&gt;2. Net change planning (NETCH) or Net change planning in the planning horizon (NETPL) :The system only plans materials that have undergone a change relevant to MRP since the last planning run .&lt;br /&gt; &lt;br /&gt;NETCH: In net change planning only those materials are planned for which the net change planning indicator in the planning file has been set as a &lt;b&gt;planning file entry&lt;/b&gt;. The system usually sets the indicator automatically as soon as a change is made to the material that is relevant to MRP. &lt;br /&gt; &lt;br /&gt;NETPL:The system only plans materials that have undergone a change that is relevant to the planning run within the period which you defined as the planning horizon. The system sets the&lt;b&gt; net change planning horizon&lt;/b&gt; indicator automatically for these materials&lt;br /&gt; &lt;br /&gt;Remember the following point : The changes cause an entry in the planning file to be made: &lt;/p&gt;&lt;ul&gt;&lt;li&gt; Changes to stock, if these change the stock/requirements situation of the material &lt;/li&gt;&lt;li&gt; Creation of purchase requisitions, purchase orders, planned orders, sales requirements, forecast requirements, dependent requirements or reservations &lt;/li&gt;&lt;li&gt; Changing to fields that are relevant to the planning run for these receipts and issues or in the material master &lt;/li&gt;&lt;li&gt; Deleting receipt or issue quantities&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2785126619999210550?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2785126619999210550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2785126619999210550'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/processing-keys-in-tc-md02.html' title='Processing Keys In TC MD02'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6035642565766550425</id><published>2008-12-29T02:56:00.000-08:00</published><updated>2008-12-29T03:01:23.802-08:00</updated><title type='text'>Total Planning &amp; Netch, Netpl, Neupl</title><content type='html'>&lt;b&gt;What is the difference in between total planning &amp;amp; netch, neupl, netpl?&lt;/b&gt;&lt;p&gt;1. Regenerative planning (NEUPL): System plans all the materials that are contained in the planning file&lt;br /&gt;&lt;br /&gt;2. Net change planning (NETCH) or Net change planning in the planning horizon (NETPL): The system only plans materials that have undergone a change relevant to MRP since the last planning run.&lt;br /&gt;&lt;br /&gt;NETCH: In net change planning only those materials are planned for which the net change planning indicator in the planning file has been set as a planning file entry. The system usually sets the indicator automatically as soon as a change is made to the material that is relevant to MRP.&lt;br /&gt;&lt;br /&gt;NETPL: The system only plans materials that have undergone a change that is relevant to the planning run within the period which you defined as the planning horizon. The system sets the net change planning horizon indicator automatically for these materials&lt;br /&gt;&lt;br /&gt;Remember the following point : The changes cause an entry in the planning file to be made:  &lt;/p&gt;&lt;ul&gt;&lt;li&gt; Changes to stock, if these change the stock/requirements situation of the material  &lt;/li&gt;&lt;li&gt; Creation of purchase requisitions, purchase orders, planned orders, sales requirements, forecast requirements, dependent requirements or reservations  &lt;/li&gt;&lt;li&gt; Changing to fields that are relevant to the planning run for these receipts and issues or in the material master  &lt;/li&gt;&lt;li&gt; Deleting receipt or issue quantities&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6035642565766550425?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6035642565766550425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6035642565766550425'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/total-planning-netch-netpl-neupl.html' title='Total Planning &amp; Netch, Netpl, Neupl'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-7986324321536941850</id><published>2008-12-29T02:54:00.000-08:00</published><updated>2008-12-29T02:55:58.422-08:00</updated><title type='text'>Why Planning file entry still Exists?</title><content type='html'>&lt;p&gt;&lt;b&gt;Does anyone know why a planning file entry would exist for NETCH or NETPL when there has been NO activity on the material since the last planning run? No movements, no PO's created, no Orders taken, no activity whatsoever . . . and MRP ran, created a planned order, which was converted to a requisition and then a PO. This PO was converted for a date earlier than what MRP recommended. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Now each time MRP runs, we get exception #15 - delay the order until later (gives date). We don't change it and the planning file entry doesn't go away, even after the run. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Found a note that seemed to apply, but . . . I guess it doesn't really. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;"If the planning run terminates for a material with planning file entry on account of an error message, the planning file entry is not deleted if this is not explicitly set in customizing. In transaction OMDY, you can set for which errors (message number) you want the planning file entry being deleted." &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;I thought this was my answer. However, after looking in OMDY - the message #015 = Dates incorrect (start date &gt; finish date). And message #15 = Enter value for version number increment (VersNumIncr.). &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Neither of these defines my MRP List exception message 15 = "Postpone process (28.06.2004/26.06.2004)" - on a current date of 03/06/2004. It's CLOSE, but not the first message. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;So if I set the field for the deletion of the planning file entry, it still wouldn't affect my real problem - trying to get this entry to 'go away' after doing what it was supposed to do. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;Please Check CS15 - where used list. May be this material has been added to a BOM of a product/Assy, which has caused an entry in planning file.  &lt;/p&gt;&lt;p&gt;Check MD04 for the source of reqt.  &lt;/p&gt;&lt;p&gt;Also check MD63, if a PIR exists.  &lt;/p&gt;If not, delete from planning file. Try report RMMDVM10 - consistency check&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-7986324321536941850?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7986324321536941850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7986324321536941850'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/why-planning-file-entry-still-exists.html' title='Why Planning file entry still Exists?'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-73333653834182508</id><published>2008-12-29T02:52:00.000-08:00</published><updated>2008-12-29T02:54:49.081-08:00</updated><title type='text'>PP - The Common Planning Strategy used</title><content type='html'>The planning strategies are maintained in Customizing for Demand Management in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30 - V_T461S&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Define the Planned Requirement Type and assign the requirement class in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;OMP1&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Define the requirement class in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;OMPO&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Check the independent requirement and consumption of requirement class in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;OMPC&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Maintain the message for invalid requirement type in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;OMPJ&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;You define the strategy group in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30 - V_T461P&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;You define the Plant to MRP group in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30 - V_T438M_S&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Maintain the consumption mode and period of adjustment in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30 - V_T438M_V&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Listed here are some common used planning strategies :-&lt;br /&gt;&lt;/b&gt;   &lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;Strategy 10 in summary :-&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;1. Sales Order creation - no impact.&lt;br /&gt;&lt;br /&gt;2. Goods Receipt - reduce the planned independent requirement during MRP run&lt;br /&gt;   For e.g. if PIR is 100, quantity remained as 100 in PIR, however during MRP run,&lt;br /&gt;   100 will not be included in the MRP planned as stock is available.&lt;br /&gt;&lt;br /&gt;3. Delivery - minus the quantity for the oldest planned independent in demand management.&lt;br /&gt;   For e.g. if PIR is 100 and delivery 90, PIR becomes 10 (withdrawal 90).&lt;br /&gt;&lt;/span&gt;          &lt;br /&gt;&lt;br /&gt;10  LSF    Make-to-stock production               KSL   Sale from stock without independent&lt;br /&gt;                                                                                   requirement reduction&lt;br /&gt;&lt;br /&gt;Choose this strategy if you want production to be determined by a production plan (Demand Management) and if you do not want sales orders to influence production directly.&lt;br /&gt;&lt;br /&gt;You must maintain the following master data for the finished product:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#cc33cc;"&gt;Strategy group 10 on the MRP screen.&lt;br /&gt;Item category group (for example, NORM) on the Sales Organization screen.&lt;br /&gt;Availability check field in Customizing so that you perform an availability check&lt;br /&gt;without replenishment lead times (in the standard system, you must enter 02 here).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;In net requirements planning according to strategy 10, the order does not create a requirement; the sales order is displayed, but does not generate planned orders.&lt;br /&gt;&lt;br /&gt;The planned independent requirement is reduced during processing of the goods issue.&lt;br /&gt;Old quantities can still be retrieved by using either &lt;br /&gt;Goto -&gt; Schedule line history in Demand Management, or by using the total requirements list &lt;br /&gt;(Evaluations -&gt; Display total requirements from the Demand Management menu). &lt;br /&gt;The quantities issued are displayed in the Withdrawal quantity field.&lt;br /&gt;&lt;br /&gt;The system always reduces the oldest planned independent requirements unless the consumption fields (Consumption mode, Fwd consumption per., Bwd consumption per.) are maintained in the material master or in the MRP group.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;11  BSF    Gross planned independent requirements  KSL Sale from stock without independent&lt;br /&gt;                                                                                         requirement reduction&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Strategy 11 in summary :-&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;1. Sales Order creation - no impact.&lt;br /&gt;&lt;br /&gt;2. Goods Receipt - minus the quantity for the oldest planned independent in demand management.&lt;br /&gt;   For e.g. if PIR is 100 and delivery 90, PIR becomes 10 (withdrawal 90).&lt;br /&gt;&lt;br /&gt;3. Delivery - no impact as delivery is issue from sales order.&lt;br /&gt;&lt;br /&gt;This strategy is particularly useful if you need to produce, regardless of whether you have stock or not. For instance, steel or cement producers might want to use this strategy because they cannot shut down production; a blast furnace or a cement factory must continue to produce, even if this means having to produce to stock.&lt;br /&gt;&lt;br /&gt;You need to maintain the following master data for the finished product:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#cc33cc;"&gt;Maintain strategy group 11 on the MRP screen.&lt;br /&gt;Set the Mixed MRP indicator to 2 on the MRP screen.&lt;br /&gt;Maintain the item category group (for example, NORM) on the Sales Organization screen.&lt;br /&gt;Maintain the Availability check field so that you perform an availability check without the replenishment lead time (checking group 02 in the standard system).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Strategy                                                        10                  11&lt;br /&gt;&lt;br /&gt;Stock is taken into account                           Yes                 No&lt;br /&gt;&lt;br /&gt;Reduction of planned independent&lt;br /&gt;requirements takes place during …   … goods issue for   ... goods receipt for a production&lt;br /&gt;                                                                  the delivery   order (discrete production),                                                           &lt;br /&gt;                                                                                      for a planned order (repetitive&lt;br /&gt;                                                                                      manufacturing), or for a purchase&lt;br /&gt;                                                                                      order (trading goods).20  KE                                                  Individual sales order without&lt;br /&gt;                                                             consumption&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Strategy 20 in summary :-&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;1. Sales Order creation is the only impact.&lt;br /&gt;&lt;br /&gt;2. Demand management not in used.&lt;br /&gt;&lt;br /&gt;In make-to-order production, a product is produced specifically for an individual sales order. This planning strategy is used when planning of the (parent) product is not required or not possible. Neither Demand Management is involved in this process, nor is there an allocation mechanism. Orders are taken as they come. This strategy represents a production procedure in which each product is only produced once, although over time the same or similar production processes are repeated. Each product is specifically produced for an individual customer so that the finished product is rarely placed in stock.&lt;br /&gt;&lt;br /&gt;You also must maintain the following master data settings for the finished product:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#cc33cc;"&gt;Strategy group 20 on the MRP screen&lt;br /&gt;Item category group (such as NORM) on the Sales Organization screen&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;Sales Order -&gt; MRP -&gt; Customer Stock Finished Product -&gt; Delivery ----+&lt;br /&gt;   ^                                                                                                               |&lt;br /&gt;   |                                                                                                                |&lt;br /&gt;   +-------------------------------------------------------------------------+&lt;br /&gt;                            Reduction&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;40  VSF    Planning with final assembly           KSV   Sales order with consumption&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Strategy 40 in summary :-&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;1. Stocks on hand reduces the PIR during MRP run.&lt;br /&gt;   e.g. if stock is 100 and PIR is 100, MRP run will not prompt 100 for procurement.&lt;br /&gt;       if stock is   0 and PIR is 100, MRP run will prompt 100 for procurement.&lt;br /&gt;&lt;br /&gt;2. Sales order creation reduces the PIR.&lt;br /&gt;   e.g. if PIR is 100, sales order 90, PIR becomes 10 (withdrawal 90).&lt;br /&gt;&lt;br /&gt;3. Delivery reduces the Sales Order.&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;This strategy is probably the most widely used make-to-stock strategy. It makes sense to use this planning strategy if you can forecast production quantities for the final product.&lt;br /&gt;&lt;br /&gt;Planned independent requirements are consumed by incoming sales orders so that the master plan is always adjusted to suit the current requirements situation. This means that the important feature of this planning strategy is that you can react quickly to customers’ requirements. The smoothing of the master plan is less important.&lt;br /&gt;&lt;br /&gt;You must maintain the following master data for the finished product in the material master:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#cc33cc;"&gt;Strategy group 40 on the MRP screen.&lt;br /&gt;Consumption parameters (Consumption mode, Bwd consumption, Fwd consumption) to allow&lt;br /&gt;consumption of independent requirements. If no consumption parameters are maintained in the&lt;br /&gt;material master, the system uses default values are taken from the MRP group.&lt;br /&gt;To control consumption, you maintain a consumption mode as well as a consumption period.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Item category group (for example, NORM) on the Sales Organization Data screen.&lt;br /&gt;&lt;br /&gt;Four important points :-&lt;br /&gt;&lt;br /&gt;1.  Planned independent requirements are used to trigger the procurement and production of&lt;br /&gt;    the necessary assemblies and components before receipt of the sales orders.&lt;br /&gt;&lt;br /&gt;2.  As soon as the sales order is received, it consumes the planned independent requirements.  &lt;br /&gt;&lt;br /&gt;3.  An ATP (available to promise) logic during sales order processing will checks whether&lt;br /&gt;    sufficient planned independent requirements have been planned to cover the sales order.&lt;br /&gt;&lt;br /&gt;4.  Requirements from the sales orders are passed on to production and can lead to changes&lt;br /&gt;    made to procurement if the requirements from the sales orders exceed the planned&lt;br /&gt;    independent requirement quantities. If there is insufficient coverage of components&lt;br /&gt;    (the sales order quantities exceed the planned independent requirement quantities), the&lt;br /&gt;    sales orders cannot be confirmed. The system therefore automatically adjusts the master&lt;br /&gt;    plan. Planned independent requirement quantities that are left unconsumed increase the&lt;br /&gt;    warehouse stock of the finished product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-73333653834182508?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/73333653834182508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/73333653834182508'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/pp-common-planning-strategy-used.html' title='PP - The Common Planning Strategy used'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6940029005536639638</id><published>2008-12-29T02:51:00.000-08:00</published><updated>2008-12-29T02:52:31.495-08:00</updated><title type='text'>Questions on MRP Group and MRP Controller</title><content type='html'>&lt;p&gt;MRP groups are used when the plant division for planning is not enough for the division of the different materials MRP requirements. You assign different groups according to the requirements to run MRP (different Settings). These settings will be taken in account when you run MRP for single item or total planning. &lt;/p&gt;&lt;p&gt;MRP controller is the person in charge of the MRP run for the materials. It is still a further division on your MRP. This is work load related. You can have one MRP controller for materials with different MRP groups. &lt;/p&gt;&lt;p&gt;On your MRP group, you will define the parameters for the MRP run. These parameters are calculated in accordance with the settings on your material master MRP views. &lt;/p&gt;&lt;p&gt;Available stock = &lt;br /&gt;              Plant stock - safety stock + &lt;br /&gt;              receipts of (purchasing orders + purchasing agreements + production orders) - required quantity. &lt;/p&gt;&lt;p&gt;This means that all the requirements are calculated in the bases of your material master settings and your MRP group settings.&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;What if nothing happens when you run MRP?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;The reasons could be :-  &lt;/p&gt;&lt;p&gt;- You have purchase requisitions that are delayed but the delivery time has not been updated on the system. &lt;/p&gt;&lt;p&gt;- The settings on your material MRP screens are not correct, i.e. your material have not yet &lt;br /&gt;  entered the re-order point level. &lt;/p&gt;&lt;p&gt;- Your requirements have not been taken in account when running MRP.&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;Assuming that everything is well and the requirement has been calculated, go to transaction code &lt;b&gt;&lt;span style="color:#cc6600;"&gt;MD04&lt;/span&gt;&lt;/b&gt; and verify that the different requirements are reflected in the MRP list and also if there is any purchase requisition scheduled by the system. Verify also if there is any other delivery schedule that will exceed the actual requirements. &lt;/p&gt;&lt;p&gt;If the purchasing requisition is there, the only thing that you have to troubleshoot is the message to tell you that the purchasing requirement was calculated. &lt;/p&gt;&lt;p&gt;If the requirement is not there, re-visit your material master and check your settings for the MRP group. &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is the real meaning and usage of the followings configured in PP: &lt;/b&gt;&lt;br /&gt;&lt;b&gt;1. MRP Controller; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. Schedule margin key; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;3. MRP group; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;4. MRP profile.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. MRP Controller; &lt;br /&gt;This will help you to group the material for some controlling purpose.   You can run mrp by mrp controller. &lt;br /&gt;you can do evaluation by mrp controller. This will help us if have different people in one organisation involved in purchasing.  &lt;/p&gt;&lt;p&gt;2. Schedule margin key;  &lt;/p&gt;&lt;p&gt;This will help you to determine the floats. In case if you have production order you can see the impact of floats  &lt;/p&gt;&lt;p&gt;3. MRP group;  &lt;/p&gt;&lt;p&gt;This will help you for the material to reac in tems of the settings made relavant to each group.  To know more details on the group you can chek the tcode oppr.  &lt;/p&gt;&lt;p&gt;4. MRP profile &lt;br /&gt;We can have some prefixed datas in the profile and and we can enter teh profile for diff material so the values will copied as defaulted in the profile. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6940029005536639638?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6940029005536639638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6940029005536639638'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/questions-on-mrp-group-and-mrp.html' title='Questions on MRP Group and MRP Controller'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1794354267930960355</id><published>2008-12-29T02:50:00.002-08:00</published><updated>2008-12-29T02:51:32.917-08:00</updated><title type='text'>Define Safety Stock Availability</title><content type='html'>&lt;p&gt;The IMG can be set in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30&lt;/span&gt;&lt;/b&gt; - &lt;b&gt;&lt;span style="color:#cc33cc;"&gt;V_438M_S&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;You define per plant and per MRP group the percentage of the safety stock that is to be available for planning.  This helps to avoid a situation where order proposals are created unnecessarily by the system to cover small shortage quantities. &lt;/p&gt;&lt;p&gt;For example: &lt;/p&gt;&lt;p&gt;                                      Mat. 1         Mat. 2         Mat. 3  &lt;/p&gt;&lt;p&gt;Safety stock:                  100 pc         100 pc        100 pc &lt;br /&gt;  &lt;/p&gt;&lt;p&gt;available for planning:       0%              50%           50% &lt;br /&gt;  &lt;/p&gt;&lt;p&gt;Shortage quantity             1 pc             1 pc           51 pc  &lt;/p&gt;&lt;p&gt;Order proposal quantity &lt;br /&gt;for lot-for-lot order qty    1 pc             0 pc           51 pc &lt;br /&gt;  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1794354267930960355?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1794354267930960355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1794354267930960355'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/define-safety-stock-availability.html' title='Define Safety Stock Availability'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3554615980924366012</id><published>2008-12-29T02:50:00.001-08:00</published><updated>2008-12-29T02:50:51.082-08:00</updated><title type='text'>Purchasing processing Time - OPPQ</title><content type='html'>&lt;p&gt;&lt;b&gt;Please refer above subject and would like to do following. External Processing Time I have set in using OPPQ. My client want this time set differently for different Vendor. Is there any userexit or customization settings? &lt;/b&gt; &lt;/p&gt;&lt;p&gt;For MRP to take lead time by supplier, you need to have 3 settings:  &lt;/p&gt;&lt;p&gt;1) The config in OPPQ - External procurement at plant level (or OPPR at MRP grp - Scheduling/doc. type) should have the check box marked to read SchedAgreem/Inforecord leadtime (T399D-GTERM)  &lt;/p&gt;&lt;p&gt;2) You should have a contract/schedule agreement, or a purchase info record maintained for that plant-material-vendor combination  &lt;/p&gt;&lt;p&gt;3) You should maintain source list (ME01) for the contract/schedule agreement, or info record. This changes the default behavior of MRP to use leadtime by supplier, rather than material master leadtime. When both contract and info record exist, the contract will take precedence.  &lt;/p&gt;&lt;p&gt;Please watchout for the case if you're already using contracts/info records in procurement, but not using them for planning. In this case your leadtime data in these documents may be incorrect, or may be left blank - this will be interpreted as zero if you make this change implementation, as mentioned in the steps above.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3554615980924366012?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3554615980924366012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3554615980924366012'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/purchasing-processing-time-oppq.html' title='Purchasing processing Time - OPPQ'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2385259891589837054</id><published>2008-12-29T02:49:00.000-08:00</published><updated>2008-12-29T02:50:02.915-08:00</updated><title type='text'>Calculation to determine the delivery date and release date</title><content type='html'>&lt;p&gt;There have been three parameters that SAP will take it into calculation to determine the delivery date and release date during material requirement planning. They are -  &lt;/p&gt;&lt;p&gt;1) Planned Delivery Time which is the vendor-dependent lead time being measured from the time PO is outputted (for sending to the vendor) till the time the shipment is delivered at the warehouse.  &lt;/p&gt;&lt;p&gt;2) GR processing time represents the necessary period of time being required for receipting the shipment into the warehouse. This period is, usually, for quality and quantity inspection.  &lt;/p&gt;&lt;p&gt;3) Purchasing Processing Time. This is the internal required time for processing the purchasing document (Purchase Requisition) till Purchase Order. You can set it up plant-wise via Transaction OMI8.  &lt;/p&gt;With these three parameters, it is possible that you can set it up correctly in your system to enable the appropriate planning of your material requirement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2385259891589837054?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2385259891589837054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2385259891589837054'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/calculation-to-determine-delivery-date.html' title='Calculation to determine the delivery date and release date'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2280548041780909115</id><published>2008-12-29T02:47:00.000-08:00</published><updated>2008-12-29T02:49:10.263-08:00</updated><title type='text'>GR processing time in PP and MM</title><content type='html'>&lt;p&gt;&lt;b&gt;I have one material number that is procured externally but also produced inhouse. Now I have one problem with the GR processing time. As far as I can see the parameter on the material master on MRP2 view and Purchasing view is the same (MARC-WEBAZ). But in my case the GR processing time should be only used for goods receipts in MM (from purchase oders). This GR processing time must not be added to my lead time scheduled in production (when producing the material). How to solve this conflict?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;We have a make to order enviroment, that means our production orders are created (and scheduled) directly from the sales order. The sales gets back a confirmed date and quantity from production order scheduling - and here this GR processing time is also added. Absolutely useless in this scenario, but MM needs this GR processing time for the external procurement of the material.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;I'm hearing at least two problems here. Let me lumber through them as I see them.  &lt;/p&gt;&lt;p&gt;#1 - We have a make to order enviroment, that means our production orders are created (and scheduled) directly from the sales order. The sales gets back a confirmed date and quantity from production order scheduling - and here this GR processing time is also added. Absolutely useless in this scenario, but MM needs this GR processing time for the external procurement of the material.  &lt;/p&gt;&lt;p&gt;The GR processing time is quite legitimate, and needful. It represents the time it takes once a material is 'delivered', before it is usable. If that is instantaneous for you, then this field is blank. In fact if it is less than one day, the field should be blank. (MARC-WEBAZ) If you DO have to do testing or documentation or even just 'checking' to be sure the proper certificates &lt;br /&gt;have arrived with this material, then it's nice to have a day here for this. --- I may have overlooked one thing, if you are ONLY thinking of the FERT that your customer ordered, then maybe this field seems trivial. However, if your process requires that the FERT be purchased from some other company (or even supplied from within YOUR company), then there IS a receiving process that has to happen . . . it does take time to back a truck up, get a fork truck to unload it, the &lt;br /&gt;identification process, and then relocating the item to where it can be shipped to your customer.  &lt;/p&gt;&lt;p&gt;Also, if you produce this item, then there are 'other' items that need to be 'built' into this item . . . THEY need the GR field, even if you produce the saleable item, it has to be 'received' from production into inventory for you to ship it out.  &lt;/p&gt;&lt;p&gt;There is another field that should be considered. This is the procurement lead time. The time it takes for purchasing to "react" to the requirement. When the sales order is placed, the signal will come for 'purchasing' to occur (via MRP perhaps). Purchasing MAY take as long as a day to get that order to a vendor where the vendor can now react. This time is generally a 'standard' time for any given plant/purchasing org and is included using OMDT.  &lt;/p&gt;&lt;p&gt;Thirdly, the vendor lead time has to be considered. This is what the field "Planned delivery time" (MARC-PLIFZ) is about. The vendor's turn around time - from the time they are notified of your intention (via a PO perhaps), until they can put it on your dock . . . that is what this field is about. And MRP knows the difference between this field and the others. Between the three fields mentioned, the 'purchased' item is properly planned for . . . except for the exceptions and the fact that this is all based on "norms" and averages which never seem to be exactly what is needed, but that's another discussion .  &lt;/p&gt;&lt;p&gt;Next we think of the situation where the item requested is produced by us. In this case (as mentioned before), the GR is STILL legitimate - perhaps not needed if it takes less than a day for your company to receive material from production, inspect it, certify it, and load it up.  &lt;/p&gt;&lt;p&gt;However, a "0" is a legitimate entry to this field.  &lt;/p&gt;&lt;p&gt;What is also needed is a place to locate the time for "producing" this item. That is where there are options. One option in MRP 2 is the field "in-house production" (MARC-DZEIT). This is sometimes useful, but dangerous. It assumes that no matter how large an order is or how much of a material is needed, it can always be produced in the same period (in 'days', of course). The number of days fits in this field.  &lt;/p&gt;&lt;p&gt;If that doesn't 'do it' for you, you can go to the "Work Scheduling" view of the Material Master and include the details for the fields under the "in house production time in days" grouping (Setup time; Interoperation; Processing time; and base quantity). At LEAST this gives the system a 'shot' at planning longer times for greater quantities. If you fill both data points in (in &lt;br /&gt;house production time and " in days, the 'in days' will supercede the other).  &lt;/p&gt;&lt;p&gt;Now you've put in all the data that you HAVE to input to have the system plan the length of time needed for telling your customer when you will have their product ready for them.  &lt;/p&gt;In the case of your conflict where you produce OR source the item, then you MAY have a problem with GR - look at both scenarios and see what your entry should be. You CAN use the Total Replenishment Leadtime (MARC-WZEIT) field to be the TOTAL TIME when producing the material in-house, because the external replenishment does not look at this field. So MRP will run and depending on how you have it set, it will consider purchasing the material, or making the material, and the fields we've mentioned will impact the result as mentioned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2280548041780909115?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2280548041780909115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2280548041780909115'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/gr-processing-time-in-pp-and-mm.html' title='GR processing time in PP and MM'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3753652693674380006</id><published>2008-12-29T02:46:00.000-08:00</published><updated>2008-12-29T02:47:52.676-08:00</updated><title type='text'>SAP Factory Calendar</title><content type='html'>&lt;p&gt;Factory calendar contain company specific dates such as alternate working Saturdays, Plant shutdown etc. &lt;/p&gt;&lt;p&gt;You can create your company factory calendar via transaction code '&lt;b&gt;&lt;span style="color:#cc6600;"&gt;SCAL&lt;/span&gt;&lt;/b&gt;'. &lt;/p&gt;&lt;p&gt;Assignment of the factory calendar by plant is done in transaction code '&lt;b&gt;&lt;span style="color:#cc6600;"&gt;SM30&lt;/span&gt;&lt;/b&gt; - V_T001W'. &lt;/p&gt;&lt;p&gt;An example of a SAP application that uses the factory calendar is the SAP MRP modules. &lt;/p&gt;Assuming that you have a specified an alternate working Saturday, MRP will postponed the planned orders to the next working day if it happened to falls on a non-working Saturday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3753652693674380006?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3753652693674380006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3753652693674380006'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-factory-calendar.html' title='SAP Factory Calendar'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1187855523197933769</id><published>2008-12-29T02:44:00.000-08:00</published><updated>2008-12-29T02:46:51.735-08:00</updated><title type='text'>Difference between MRP vs MPS</title><content type='html'>&lt;p&gt;&lt;b&gt;Explain the difference between MRP &amp;amp; MPS. Though both components gives you the requirement list, what we gain out of MPS run rather than running MRP. What is the main idea behind this?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;The following might help in explaining the difference between MPS and its counter part MRP. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Master Production Schedule (MPS) : &lt;/b&gt;&lt;br /&gt;MPS operates within only one level of the BOM, While MRP can be utilized throughout all   levels of a material’s BOM.  If a MPS is run on a material, the necessary orders are planned at that level. Dependent requirements (if any) are placed on the next BOM level down, and then the process stops. &lt;/p&gt;&lt;p&gt;Main Idea : Master production scheduling (MPS) is a form of MRP that concentrates  planning on the parts or products that have the great influence on company profits or which dominate the entire production process by taking critical resources. These items are marked as ‘A’ parts (MPS items) and are planned with extra attention. These items are selected for a separate MPS run that takes place before the MRP run.  The MPS run is conducted without a BOM explosion so that the MRP controller can ensure that the Master schedule items (MSI) are correctly planned before the detailed MRP run takes place.  &lt;/p&gt;&lt;p&gt;The master production schedule is a line on the master schedule grid that reflects the anticipated build schedule for those items assigned to the master scheduler. The master scheduler maintains this schedule, and in turn, it becomes a set of planning numbers that drives material requirements planning. It represents what the company plans to produce expressed in specific configurations, quantities, and dates. The master production schedule is not a sales item forecast that represents a statement of demand. The master production schedule must take into account the forecast, the production plan, and other important considerations such as backlog, availability of material, availability of capacity, and management policies and goals. Syn: master schedule.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Material Requirements Planning (MRP) : &lt;/b&gt;&lt;br /&gt;A set of techniques that uses bill of material data, inventory data, and the master production schedule to calculate requirements for materials. It makes recommendations to release replenishment orders for material. Further, because it is time-phased, it makes recommendations to reschedule open orders when due dates and need dates are not in phase. Time-phased MRP begins with the items listed on the MPS and determines  &lt;/p&gt;&lt;p&gt;(1) the quantity of all components and materials required to fabricate those items and  &lt;/p&gt;&lt;p&gt;(2) the date that the components and material are required. Time-phased MRP is accomplished by exploding the bill of material, adjusting for inventory quantities on hand or on order, and offsetting the net requirements by the appropriate lead times.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;MRP Interview Questions:&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is the need of mrp list if stock requirement list is already there?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;The MRP list displays the result of the last planning run. Changes that have occurred between planning runs are ignored in the MRP list.   In contrast to this, the system displays all changes in stock, receipts and issues, which have currently occurred, in the stock/requirements list.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Which tcode are used to run MRP?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;- MD01 is generally used to run the MRP for all the materials in a plant normally just before go-live.&lt;br /&gt;- MD02 is used to run MRP for materials which have a BOM i.e multi-level.&lt;br /&gt;- MD03 is used to run MRP for materials which do not have a BOM i.e single level. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1187855523197933769?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1187855523197933769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1187855523197933769'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/difference-between-mrp-vs-mps.html' title='Difference between MRP vs MPS'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3852567955405600237</id><published>2008-12-29T02:41:00.000-08:00</published><updated>2008-12-29T02:44:44.012-08:00</updated><title type='text'>Why used Planning tools like APO or I2?</title><content type='html'>&lt;p&gt;APO and I2 are Finite PLANNING tools. When MRP runs with APO or I2 (or Red Pepper or Manugistics), it takes Capacity issues into consideration. MRP in SAP R/3 Core does not, it assumes infinite capacity available. (MRP only looks at material availablity.)  &lt;/p&gt;&lt;p&gt;However, SAP R/3 DOES do finite SCHEDULING, which is where the system 'dispatches" operations on a production order until it fills up the capacity available, then moves to the next time period and dispatches until that period is filled up. In SAP speak, that is called capacity leveling.  &lt;/p&gt;&lt;p&gt;I believe APO should only be used in very large companies (billions) because of the amount of master data that must be maintained, and that data better be ACURATE, or you've wasted a heck of a lot of time. By the way, APO stands for Advanced Planner and Optimizer tool, obviously a German sort of name!&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Differences between planning and scheduling, finite and infinite&lt;/b&gt; &lt;/p&gt;&lt;p&gt;R/3 does planning without consideration for capacity situations. So if MRP says you need 500 parts on 3/1/04, it schedules them all to be built at the same time, even though you can only do 100 at a time. Assume you have a fixed lot size of 100, you'll get 5 planned orders for 100 to start on the same day. This is "Infinite Planning". APO would recognize that constraint, and instead schedule out the 5 orders over time. The important part of that is that it also will schedule out the deliveries of the components for 5 different days. This is "Finite Planning".  &lt;/p&gt;&lt;p&gt;Now, assume old fashion MRP. It schedules all 5 orders for the same day, and the buyers go out an get all of the components for the same day. Then the planner realizes he can't do all 5, and manually changes the schedule, and manually spreads out the 5 orders. The buyers will recieve rescheduling notifications, but not until the scheduler does the manual rescheduling. You could call this "Infinite Scheduling", but that only means the same thing as Infinite Planning.  &lt;/p&gt;&lt;p&gt;But, SAP has "Capacity Leveling". What that means is you run another program after MRP (CM27 and CM28), which can be run in batch mode overnight. (There is a ton of configuration and thinking that will be required to do this!). The capacity leveling program will recognize the constrant at the work center level, and fill up the first day, then re-schedule the next order to the next available capacity, then the next order searches for available capacity, and so on. This is called "Finite Scheduling". The problem with this is the opposite of Infinite Planning, which is it doesn't take Material availablity into consideration! The system will re-schedule a production order without thinking about whether the materials will be available or not.  &lt;/p&gt;&lt;p&gt;Finite Planning does Finite Sheduling at the same time. If there is no capacity available on the desired date, the system looks for when capacity IS available. Then it stops to see if Materials will also be available (usually based on the lead-time for those components). If there is a material problem, then the system figures out when the materials WILL be available, and then &lt;br /&gt;checks to see if capacity is available on THAT day, and if so, it blocks off capacity, and allocates the materials for that day.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3852567955405600237?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3852567955405600237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3852567955405600237'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/why-used-planning-tools-like-apo-or-i2.html' title='Why used Planning tools like APO or I2?'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4855863535015974205</id><published>2008-12-29T02:38:00.000-08:00</published><updated>2008-12-29T02:41:13.151-08:00</updated><title type='text'>The Concept Of MRP In ERP  ERP SAP Modules ==&gt; PP In SAP</title><content type='html'>&lt;p&gt;&lt;b&gt;The Concept Of MRP in SAP&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;MRP in brief :&lt;/b&gt; &lt;/p&gt;&lt;p&gt;MRP is the planning tool in SAP which will look at all aspects of a material and is highly based upon the master data of the material. MRP looks at current inventory, current requirements, open purchase req/orders and so on. So if a material is required to satisfy a sales order and there is no inventory, MRP will create a planned order if the item is to be produced in house. This planned order can then be converted to a production order by the master scheduler. If the item is to be procured, then MRP will create a purchase req which the Buyer will convert to a purchase order. This is just one scenario, the system is highly configurable and will do pretty much whatever you tell based on config and master data.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Consumption based planning &lt;/b&gt; &lt;/p&gt;&lt;p&gt;- Reorder planning &lt;br /&gt;- Forecast based planning &lt;br /&gt;- Time phased planning &lt;/p&gt;&lt;p&gt;&lt;b&gt;Details of re-order planning &lt;/b&gt;&lt;br /&gt;Our motive is to maintain optimum stock level of all the material included in the resource planning. so in this user or system sets a particular quantity of stock as reorder point . Whenever stock quantity fall below this point(reorder point) mrp comes into action and generates procurement proposals according to the settings done in implementation guide &lt;/p&gt;&lt;p&gt;&lt;b&gt;MRP run procedure&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. Create requirement or demand in MD61&lt;br /&gt;2. MRP run by MD02 for a single material&lt;br /&gt;3. See the result in stock requirement list in MD04. &lt;/p&gt;&lt;p&gt;&lt;b&gt;MRP run we can carry out by&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. MD02 - single item multi level&lt;br /&gt;2 .MD03 - single item single level&lt;br /&gt;3 .MD01 - Total planning&lt;br /&gt;4. MD04 Check MRP &lt;br /&gt;5. MD05 MRP lists &lt;/p&gt;&lt;p&gt;&lt;b&gt;For PP, you require following Master Data&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. Material master (MM01)&lt;br /&gt;2. BOM (CS01)&lt;br /&gt;3. Routing (CA01)&lt;br /&gt;4. Work Center (CR01)&lt;br /&gt;5. CK11N / CK40N - Cost Estimate &lt;/p&gt;&lt;p&gt;&lt;b&gt;Production Cycle: - &lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. PIR (Planned Independent Reqmt. - MD61)&lt;br /&gt;2. MD02 - MRP Run&lt;br /&gt;3. MD04 - Stock Requirement List&lt;br /&gt;4. CO40 - Convert Planned Orders to Production Order OR CO01 - Create Production Order&lt;br /&gt;5. Here in Production Order - Schedule Order, Release order&lt;br /&gt;6. MIGO / MB1A - Goods Issue against Order (Mvmt Type 261)&lt;br /&gt;7. CO11N - Production Operation confirmation&lt;br /&gt;8. MIGO / MB31 - GR against Prd order&lt;br /&gt;9. CO02 - Technical completion of order&lt;br /&gt;10. KO88 - Order Settlement &lt;/p&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; //336x280, SAP IMG 336 google_ad_slot = "7098765619"; google_ad_width = 336; google_ad_height = 280; //--&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt;&lt;script&gt;window.google_render_ad();&lt;/script&gt;&lt;iframe name="google_ads_frame" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3687694581336538&amp;amp;dt=1261953674030&amp;amp;lmt=1219438800&amp;amp;prev_fmts=728x90_as&amp;amp;output=html&amp;amp;slotname=7098765619&amp;amp;correlator=1261953673549&amp;amp;url=http%3A%2F%2Fwww.sap-img.com%2Fproduction%2Fthe-concept-of-mrp-in-erp.htm&amp;amp;eid=6083027&amp;amp;ea=0&amp;amp;ref=http%3A%2F%2Fwww.sap-img.com%2Fsap-pp.htm&amp;amp;frm=0&amp;amp;ga_vid=1361705908.1261953674&amp;amp;ga_sid=1261953674&amp;amp;ga_hid=13078785&amp;amp;flash=0&amp;amp;u_h=768&amp;amp;u_w=1024&amp;amp;u_ah=738&amp;amp;u_aw=1024&amp;amp;u_cd=32&amp;amp;u_tz=330&amp;amp;u_his=4&amp;amp;u_nplug=5&amp;amp;u_nmime=13&amp;amp;dtd=4" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" width="336" frameborder="0" height="280"&gt;&lt;/iframe&gt;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Get help for your SAP PP Problems&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/production/pp-question.htm" target="_top"&gt;SAP PP Forum&lt;/a&gt; - Do you have a SAP PP Question? &lt;/p&gt;&lt;p&gt;&lt;b&gt;SAP Production Planning Books&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/sap-books.htm#SAP-PP" target="_top"&gt;SAP PP Certification, Interview Questions and Configuration Books&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; google_ad_width = 728; google_ad_height = 15; google_ad_format = "728x15_0ads_al"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt;&lt;script&gt;window.google_render_ad();&lt;/script&gt;&lt;iframe name="google_ads_frame" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3687694581336538&amp;amp;dt=1261953674364&amp;amp;lmt=1219438800&amp;amp;prev_fmts=728x90_as&amp;amp;prev_slotnames=7098765619&amp;amp;format=728x15_0ads_al&amp;amp;output=html&amp;amp;correlator=1261953673549&amp;amp;url=http%3A%2F%2Fwww.sap-img.com%2Fproduction%2Fthe-concept-of-mrp-in-erp.htm&amp;amp;color_bg=FFFFFF&amp;amp;color_text=000000&amp;amp;color_link=0000FF&amp;amp;color_url=008000&amp;amp;color_border=FFFFFF&amp;amp;eid=6083027&amp;amp;ea=0&amp;amp;ref=http%3A%2F%2Fwww.sap-img.com%2Fsap-pp.htm&amp;amp;frm=0&amp;amp;ga_vid=1361705908.1261953674&amp;amp;ga_sid=1261953674&amp;amp;ga_hid=13078785&amp;amp;flash=0&amp;amp;u_h=768&amp;amp;u_w=1024&amp;amp;u_ah=738&amp;amp;u_aw=1024&amp;amp;u_cd=32&amp;amp;u_tz=330&amp;amp;u_his=4&amp;amp;u_nplug=5&amp;amp;u_nmime=13&amp;amp;dtd=4" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" width="728" frameborder="0" height="15"&gt;&lt;/iframe&gt;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;SAP PP Tips&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/sap-pp.htm" target="_top"&gt;SAP PP Tips and Production Planning/Control Discussion Forum&lt;/a&gt; &lt;/p&gt;&lt;b&gt;Other Logistics Modules&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4855863535015974205?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4855863535015974205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4855863535015974205'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/concept-of-mrp-in-erp-erp-sap-modules.html' title='The Concept Of MRP In ERP  ERP SAP Modules ==&gt; PP In SAP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4010442175393314799</id><published>2008-12-29T02:37:00.000-08:00</published><updated>2008-12-29T02:38:20.630-08:00</updated><title type='text'>Table of the Order Production Operation</title><content type='html'>&lt;p&gt;&lt;b&gt;Which is the table of the order production operation details?  I need to get the activities for production order : &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Setup, Labor, Machine, Confirmed and to confirm.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;I can see look at this in CO02 / Operation Overview (f5) / Operation Detalis / Qty-Activities&lt;/b&gt; &lt;/p&gt;&lt;p&gt;That is probably the hardest information to piece together, I used 5 tables with multiple joins to get User Fields for operations in a production order. Maybe you can use something simular. &lt;/p&gt;&lt;p&gt;AFKO - this is for your basic production header info - order number, basic finish date etc &lt;/p&gt;&lt;p&gt;S022 - this is for your operation header details - operation number, Work centre etc if you are only after the header details such as setup time and execution time, you can probably stop here without going to AFVC or AUFV (you definitely need AUFK if you want order status) &lt;/p&gt;&lt;p&gt;AUFK - this is for your order master data - Order released flag, order complete flag, technically complete date, you'll need this to filter out closed orders &lt;/p&gt;&lt;p&gt;AFVC - this is to link to the detail table - however I used the control key field in it so I would know whether it was a MILE stone or GPP1 for confirmation's sake &lt;/p&gt;&lt;p&gt;AUFV - this is the user field table - you may want to replace this with whatever detail you are after &lt;/p&gt;&lt;p&gt;Delete all the automatic joins: &lt;/p&gt;&lt;p&gt;AFKO -&gt; AUFK on:&lt;br /&gt;AUFNR -&gt; AUFNR &lt;/p&gt;&lt;p&gt;AFKO -&gt; S022 on:&lt;br /&gt;AUFNR -&gt; AUFNR&lt;br /&gt;PLNBEZ -&gt; MATNR &lt;/p&gt;&lt;p&gt;AFKO -&gt; AFVC on:&lt;br /&gt;AUFPL -&gt; AUFPL &lt;/p&gt;&lt;p&gt;S022 -&gt; AFVC on:&lt;br /&gt;WERKS -&gt; WERKS&lt;br /&gt;PLNFL -&gt; PLNFL&lt;br /&gt;VORNR -&gt; VORNR &lt;/p&gt;&lt;p&gt;The join below is for user fields in operation detail, you will have to find your own relevant table, but I assume the two key fields will be the same?? &lt;/p&gt;&lt;p&gt;AFVC -&gt; AFVU on:&lt;br /&gt;AUFPL -&gt; AUFPL - Routing number of operations in the order APLZL -&gt; APLZL - General Counter for order &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4010442175393314799?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4010442175393314799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4010442175393314799'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/table-of-order-production-operation.html' title='Table of the Order Production Operation'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6883616712940968261</id><published>2008-12-29T02:36:00.000-08:00</published><updated>2008-12-29T02:37:24.620-08:00</updated><title type='text'>SAP PP Master Data Tables</title><content type='html'>&lt;p&gt;&lt;b&gt;MASTER DATA&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Engineering Change Management&lt;/b&gt;&lt;br /&gt;AENR        Customer and priority&lt;br /&gt;AEOI          Revision Numbers &lt;/p&gt;&lt;p&gt;&lt;b&gt;Work Center&lt;/b&gt;&lt;br /&gt;CRHD         Workcenter Header Data&lt;br /&gt;CRCA         Workcenter Capacity Allocation&lt;br /&gt;CRCO         Workcenter Cost Center Assignment&lt;br /&gt;CRHH          Hierarchy Header&lt;br /&gt;CRHS           Hierarchy Structure&lt;br /&gt;CRTX          Workcenter Text&lt;br /&gt;KAKO         Capacity Header&lt;br /&gt;KAZY          Intervals of Capacity &lt;/p&gt;&lt;p&gt;&lt;b&gt;Routing&lt;/b&gt;&lt;br /&gt;PLPO          Routing Operation Details&lt;br /&gt;PLKO         Routing Header Details&lt;br /&gt;MAPL         Routing Link to Material&lt;br /&gt;PLAB          Relationships - Standard Network&lt;br /&gt;PLAS          Task List - Selection of Operations&lt;br /&gt;PLMZ         Component Allocation&lt;br /&gt;PLPH          CAPP Sub-operations&lt;br /&gt;PLFH          PRT Allocation&lt;br /&gt;PLWP         Maintenance Package Allocation&lt;br /&gt;PLMK         Inspection Characteristics &lt;/p&gt;&lt;p&gt;&lt;b&gt;Bill of Material&lt;/b&gt;&lt;br /&gt;STPO          BOM Item Details&lt;br /&gt;STPU          BOM Sub Items (designators)&lt;br /&gt;STKO         BOM Header Details&lt;br /&gt;MAST         BOM Group to Material&lt;br /&gt;STZU          BOM History Records&lt;br /&gt;STAS          BOM Item Selection&lt;br /&gt;STPF           BOM Explosion Structure &lt;/p&gt;&lt;p&gt;&lt;b&gt;Line Design&lt;/b&gt;&lt;br /&gt;LDLH          Line Hierarchy Header&lt;br /&gt;LDLP          Line Hierarchy Items&lt;br /&gt;LDLT          Line Hierarchy Takt Times&lt;br /&gt;LDLBC       Takts/No. Individual Capacities per Line&lt;br /&gt;LDLBH       Line Balance Header &lt;br /&gt;LDLBP        Line Balance Items&lt;br /&gt;LDLBT        Line Hierarchy Entry and Exit Takts &lt;/p&gt;&lt;p&gt;&lt;b&gt;PRT's&lt;/b&gt;&lt;br /&gt;CRFH          PRT Master Data&lt;br /&gt;CRVD_A     Link of PRT to Document&lt;br /&gt;CRVD_B     Link of Document to PRT&lt;br /&gt;CRVE_A     Assignment of PRT data to Equipment&lt;br /&gt;CRVE_B     Assignment of equipment to PRT data&lt;br /&gt;CRVM_A    Link of PRT data to Material&lt;br /&gt;CRVM_B    Link of Material to PRT data&lt;br /&gt;CRVS_A     Link of PRT Internal number to PRT External number&lt;br /&gt;CRVS_B     Link of PRT External number to PRT Internal number  &lt;/p&gt;&lt;p&gt;&lt;b&gt;How to create a query that is very similar to CA03?&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What tables contain those information and what are the relationships?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;See below routing table relationships: &lt;/p&gt;&lt;p&gt;Table MAPL, pass input material number, plant, routing group counter. &lt;/p&gt;&lt;p&gt;Table PLKO, field PLNNR, PLNAL eq mapl-plnnr, mapl-plnal &lt;/p&gt;&lt;p&gt;Table PLAS, field PLNNR, PLNAL eq mapl-plnnr, mapl-plnal and LOEKZ ne ' ', take field PLNKN &lt;/p&gt;&lt;p&gt;Table PLPO, field PLNNR, PLNKN eq plas-plnnr, plas-plnkn &lt;/p&gt;&lt;p&gt;You will get correct result same as CA03 list. &lt;/p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; google_alternate_ad_url = "http://www.sap-img.com/amazon.htm"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6883616712940968261?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6883616712940968261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6883616712940968261'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-pp-master-data-tables.html' title='SAP PP Master Data Tables'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2325806001655250586</id><published>2008-12-29T02:35:00.000-08:00</published><updated>2008-12-29T02:36:11.632-08:00</updated><title type='text'>SAP Production Planning Table</title><content type='html'>&lt;p&gt;&lt;b&gt;Demand Management&lt;/b&gt;&lt;br /&gt;PBED          Independent Requirements Data&lt;br /&gt;PBIM          Independent Requirements by Material &lt;/p&gt;&lt;p&gt;&lt;b&gt;Repetitive Manufacturing&lt;/b&gt;&lt;br /&gt;SAFK         RS Header Master Data&lt;br /&gt;S025           LIS -- Run Schedule Quantities&lt;br /&gt;S026           LIS -- Material Usage&lt;br /&gt;S028           LIS -- Reporting Point Statistics&lt;br /&gt;CEZP          Reporting Point Document Logs&lt;br /&gt;CPZP          Reporting Points - Periodic Totals &lt;/p&gt;&lt;p&gt;&lt;b&gt;MRP Records&lt;/b&gt;&lt;br /&gt;MDKP        MRP Document Header Data&lt;br /&gt;MDTB         MRP Table Structure (no data)&lt;br /&gt;PLSC          Planning Scenario (Long-term Planning)&lt;br /&gt;MDFD        MRP Firming Dates&lt;br /&gt;MDVM       Planning File Entries&lt;br /&gt;S094           LIS -- Stock/Requirements Analysis &lt;/p&gt;&lt;p&gt;&lt;b&gt;Reservations&lt;/b&gt;&lt;br /&gt;RESB          Reservations/Dependent Requirements &lt;/p&gt;&lt;p&gt;&lt;b&gt;Planned Orders&lt;/b&gt;&lt;br /&gt;PLAF          Planned Orders &lt;/p&gt;&lt;p&gt;&lt;b&gt;Discrete Production&lt;/b&gt;&lt;br /&gt;AFKO         Order Header&lt;br /&gt;AFPO          Order Item Detail&lt;br /&gt;AFVC          Order Operations Detail&lt;br /&gt;AFFL           Order Sequence Details&lt;br /&gt;AFFH          Order PRT Assignment&lt;br /&gt;AFBP          Order Batch Print Requests&lt;br /&gt;AFRU          Order Completion Confirmations&lt;br /&gt;AFFW         Confirmations -- Goods Movements with Errors&lt;br /&gt;AFRC          Confirmations -- Incorrect Cost Calculations&lt;br /&gt;AFRD          Confirmations -- Defaults for Collective Confirmation&lt;br /&gt;AFRH          Confirmations -- Header Info for Confirmation Pool&lt;br /&gt;AFRV          Confirmation Pool&lt;br /&gt;AFWI          Confirmations -- Subsequently Posted Goods Movements &lt;/p&gt;&lt;p&gt;&lt;b&gt;Classification&lt;/b&gt;&lt;br /&gt;KLAH          Class Detail&lt;br /&gt;CABN          Characteristic Detail&lt;br /&gt;AUSP          Characteristic Values&lt;br /&gt;CAWN          Characteristic Values&lt;br /&gt;CAWNT         Characteristic Value Texts&lt;br /&gt;KSML          Characteristic Allocation to Class&lt;br /&gt;KSSK          Material Allocation to Class &lt;/p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; google_alternate_ad_url = "http://www.sap-img.com/amazon.htm"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2325806001655250586?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2325806001655250586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2325806001655250586'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-production-planning-table.html' title='SAP Production Planning Table'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5021980573694487383</id><published>2008-12-29T02:33:00.000-08:00</published><updated>2008-12-29T02:35:13.799-08:00</updated><title type='text'>Commonly Used Tcodes in PP Module Part 3</title><content type='html'>&lt;pre&gt;&lt;b&gt;Material Requirement Planning&lt;br /&gt;Menu Nodes           TransactionActivity&lt;/b&gt;&lt;/pre&gt;  &lt;pre&gt;Master Data          MD25       Create planning calendar&lt;br /&gt;                     MD26       Change planning calendar&lt;br /&gt;                     MD27       Display planning calendar&lt;br /&gt;                     MDSA       Display BOM explosion number&lt;br /&gt;                     MDSP       Edit BOM explosion number&lt;br /&gt;                     MEQ1       Maintain quota file&lt;br /&gt;                     OPPP       Explode BOM by date&lt;br /&gt;                     MDUS       Display project assignment&lt;br /&gt;                     MDUP       Process project assignment&lt;br /&gt;                     MDL1       Create production lot&lt;br /&gt;                     MDL2       Change production lot&lt;br /&gt;                     MDL3       Display production lot&lt;/pre&gt;  &lt;pre&gt;Planning             MD20       Create planning file entry&lt;br /&gt;                     MD21       Display planning file entry&lt;br /&gt;                     MDAB       Set up planning file entry in background&lt;br /&gt;                     MDRE       Check planning file entry&lt;br /&gt;                     MD01       Total planning online&lt;br /&gt;                     MDBT       Total planning in background&lt;br /&gt;                     MD03       Single-item, single-level planning&lt;br /&gt;                     MD02       Single-item, multi-level planning&lt;br /&gt;                     MD43       Interactive single-item planning&lt;br /&gt;                     MD50       Multi-level, make-to-order planning&lt;br /&gt;                     MD51       Multi-level project planning&lt;br /&gt;                     MF52       Display planning table&lt;br /&gt;                     MF50       Change planning table&lt;br /&gt;                     MF57       Planning table by MRP lists&lt;br /&gt;                     MF51       Planning table by production list&lt;/pre&gt;  &lt;pre&gt;Evaluations          MD04       Stock/requirements list&lt;br /&gt;                     MD07       Collective access of stock/requirements lis&lt;br /&gt;                     MD05       MRP list&lt;br /&gt;                     MD06       Collective access of MRP lists&lt;br /&gt;                     MDLD       Print MRP list&lt;br /&gt;                     MD45       Planning result&lt;br /&gt;                     MD46       Collective access of planning result&lt;br /&gt;                     MD44       Planning situation for a material&lt;br /&gt;                     MD47       Planning situation for a product group&lt;br /&gt;                     MD48       Cross-plant planning situation&lt;br /&gt;                     MD4C       Order report&lt;br /&gt;                     MD09       Pegged requirements&lt;br /&gt;                     CO46       Order progress&lt;/pre&gt;  &lt;pre&gt;Planned Order        MD11       Create planned order&lt;br /&gt;                     MD12       Change planned order&lt;br /&gt;                     MD13       Individual access of planned order&lt;br /&gt;                     MD16       Collective access of planned orders&lt;br /&gt;                     MD14       Individual conversion of planned order into&lt;br /&gt;                     MD15       Collective conversion of planned orders int&lt;br /&gt;                     MDUM       Convert planned order into purchase requisi&lt;br /&gt;                     CO40       Convert individual planned order into produ&lt;br /&gt;                     CO41       Collective conversion of planned orders int&lt;br /&gt;                     CO48       Partial conversion of planned order into pr&lt;br /&gt;                     COR7       Individual conversion of planned order into&lt;br /&gt;                     COR7_PC    Collective conversion of planned orders int&lt;br /&gt;                     COR8       Partial conversion of planned order into pr&lt;br /&gt;                     MDVP       Collective availability check&lt;br /&gt;                     MDAC       Execute action for planned order&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;LONG TERM PLANNING&lt;br /&gt;&lt;/b&gt;PALNNING SCENARIO    MS31       CREATE&lt;br /&gt;                     MS32       CHANGE&lt;br /&gt;                     MS33       DISPLAY&lt;br /&gt;PLANNING RUN         MS01       ON LINE&lt;br /&gt;                     MSBT       SA BACKGROUND JOB&lt;br /&gt;                     MS02       SINGLE ITEM - MULTI LEVEL&lt;br /&gt;                     MS03       SINGLE ITEM - SINGLE LEVEL&lt;br /&gt;                     MS50       SINGLE ITEM - SALES ORDER&lt;br /&gt;                     MS51       SINGLE ITEM PLANNING, PROJECT&lt;br /&gt;                     MFSO       PLANNING TABLE&lt;/pre&gt;  &lt;pre&gt;EVALUTIONS           MS05       MRP LIST MATERIAL&lt;br /&gt;                     MS06       MRP LIST COLLECTIVE DISPLAY&lt;br /&gt;                     MSLD       PRINT MRP LIST&lt;br /&gt;                     MS04       STOCK/REQUIREMENTS LIST&lt;br /&gt;                     MS07       STOCK/REQUIREMENT LIST COLLECTIVE DISPLAY&lt;br /&gt;                     MS44       PLANNING SITUATION MATERIAL&lt;br /&gt;                     MS47       SITUATION PRODUCT GROUP&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;MPS-MASTER SCHEDULE ITEMS&lt;br /&gt;&lt;/b&gt;TOTAL PLANNING       MD40       ON LINE&lt;br /&gt;                     MDBS       SA BACKGROUND JOB&lt;br /&gt;                     MD41       SINGLE ITEM - MULTI LEVEL&lt;br /&gt;                     MD42       SINGLE ITEM - SINGLE LEVEL&lt;br /&gt;                     MD43       SINGLE ITEM - INTERACTIVE&lt;br /&gt;                     MD50       SINGLE ITEM - SALES ORDER&lt;br /&gt;                     MD51       SINGLE ITEM PLANNING, PROJECT&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;*** EVALUTION IS SIMILAR TO MRP&lt;br /&gt;&lt;/b&gt;PRODUCTION CONTROL&lt;br /&gt;ORDER - CREATE       CO01       WITH MATERIAL&lt;br /&gt;                     CO07       WITHOUT MATERIAL&lt;br /&gt;                     CO40       FROM PLANNED ORDER&lt;br /&gt;                     CO41       COLLECTIVE CONVERTION OF PLANNED ORDER&lt;br /&gt;                     CO08       FOR SALES ORDER&lt;br /&gt;                     CO10       FOR PROJECT&lt;br /&gt;                     CO02       CHANGE&lt;br /&gt;                     CO03       DISPLAY&lt;/pre&gt;  &lt;pre&gt;CONTROL              MD04       STOCK/REQUIREMENTS LIST&lt;br /&gt;                     COHV       MASS PROCESSING&lt;br /&gt;                     COMAC      COLLECTIVE AVAILABILITY CHECK&lt;br /&gt;                     CO05N      COLLECTIVE RELEASE&lt;br /&gt;                     CO04N      PRINT&lt;br /&gt;                     CO09       AVAILABILITY OVER VIEW&lt;/pre&gt;  &lt;pre&gt;GOODS MOVEMENT       MF65       STOCK TRANSFER FOR RESERVATION&lt;/pre&gt;  &lt;pre&gt;MATERIAL STAGING     MF68       LOG&lt;br /&gt;                     MB1A       GOODS ISSUE&lt;br /&gt;                     MB31       GOODS RECEIPT&lt;br /&gt;                     COWBPACK   PACK MATERIAL&lt;/pre&gt;  &lt;pre&gt;CONFIRMATION         CO1V       TIME TICKET&lt;br /&gt;FOR OPERATION        CO14       DISPLAY&lt;br /&gt;                     CO13       CANCEL&lt;br /&gt;                     CO1L       REQUESTED CONFIRMATIONS&lt;br /&gt;                     CO1P       PREDEFINED PROCESSES&lt;/pre&gt;  &lt;pre&gt;TOOLS-ARCHIVING      CO78       ORDER&lt;br /&gt;                     KOAA       SETTELMENT DOCUMENTS&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;CAPACITY PLANNING&lt;br /&gt;&lt;/b&gt;EVALUTION            CM01       LOAD&lt;br /&gt;&lt;br /&gt;WORK CENTER VIEW     CM02       ORDERS&lt;br /&gt;                     CM03       POOL&lt;br /&gt;                     CM04       BACKLOG&lt;br /&gt;                     CM05       OVERLOAD&lt;br /&gt;                     CM07       VARIABLE&lt;br /&gt;EXTENDED EVALUTION   CM50       WORK CENTER VIEW&lt;br /&gt;                     CM51       INDIVIDUAL CAPACITY VIEW&lt;br /&gt;                     CM52       ORDER VIEW&lt;br /&gt;LEVELLING            CM21       PLANNING TABLE (GRAPHICAL)&lt;br /&gt;WORK CENTER VIEW     CM22       PLANNING TABLE (TABULAR)&lt;br /&gt;INDIVIDUAL CAPACITY VCM27       PLANNING TABLE (GRAPHICAL)&lt;br /&gt;                     CM28       PLANNING TABLE (TABULAR)&lt;br /&gt;ORDER VIEW           CM31       PLANNING TABLE (GRAPHICAL)&lt;br /&gt;                     CM32       PLANNING TABLE (TABULAR)&lt;br /&gt;AVAILABLE CAPACITY   CR12       CHANGE&lt;br /&gt;CAPACITY             CR13       DISPLAY&lt;br /&gt;                     OP4A       SHIFT SEQUENCE&lt;br /&gt;                     OP43       FACTORY CALENDER&lt;/pre&gt; &lt;b&gt;Where shall we maintain number range for planned orders?&lt;/b&gt; &lt;p&gt;To maintain number range for planned order. Go to:&lt;br /&gt;MM--&gt;CBP--&gt;NUMBER RANGE--&gt;DEFINE NUMBER RANGE FOR PLANNING RUN.&lt;br /&gt;Don't allow External Number Assignment. &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is t.code for planning calendar and factory calendar?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Planning Calendar--MD25&lt;br /&gt;Factory Calender--SCAL &lt;/p&gt;&lt;p&gt;Menu  Path &lt;br /&gt;SPRO--&gt;Materials Management--&gt;Master Data--&gt;Maintain Planning &lt;br /&gt;SPRO--&gt;Calendar--md25 &lt;/p&gt;&lt;p&gt;SPRO--&gt;General Settings--&gt;Currencies--&gt;Expiring Currencies--&gt;Maintain &lt;br /&gt;SPRO--&gt;Calendar--&gt;SCAL &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5021980573694487383?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5021980573694487383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5021980573694487383'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/commonly-used-tcodes-in-pp-module-part_4261.html' title='Commonly Used Tcodes in PP Module Part 3'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4193842905614302121</id><published>2008-12-29T02:32:00.000-08:00</published><updated>2008-12-29T02:33:42.443-08:00</updated><title type='text'>Commonly Used Tcodes in PP Module Part 2</title><content type='html'>&lt;pre&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;SALES AND OPERATIONS PLANNING&lt;br /&gt;&lt;/b&gt;PRODUCT GROUP        MC84       CREATE&lt;br /&gt;                     MC86       CHANGE&lt;br /&gt;                     MC85       DISPLAY&lt;br /&gt;GRAPHIC              MC91       PRODUCT GROUP&lt;br /&gt;                     MC92       OVERVIEW&lt;br /&gt;PLANNING             MC81       CREATE&lt;br /&gt;FOR PRODUCT GROUP    MC82       CHANGE&lt;br /&gt;                     MC83       DISPLAY&lt;br /&gt;                     MC75       TRANSFER PG TO PLANNING&lt;br /&gt;FOR MATERIAL         MC87       CREATE&lt;br /&gt;                     MC88       CHANGE&lt;br /&gt;                     MC89       DISPLAY&lt;br /&gt;                     MC74       TRANSFER MATERIALS TO DM&lt;br /&gt;                     MC9K       MATERIAL AVAILABILITY&lt;br /&gt;VERSION MANAGEMENT   MC78       COPY&lt;br /&gt;                     MC80       DELETE&lt;br /&gt;FLEXIBLE PLANNING    MC93       CREATE&lt;br /&gt;PLANNING             MC94       CHANGE&lt;br /&gt;                     MC95       DISPLAY&lt;br /&gt;                     MC9K       MATERIAL AVAILABILITY&lt;br /&gt;TOOLS/PLANNING TYPE  MC8A       CREATE&lt;br /&gt;MACRO                MC8B       CHANGE&lt;br /&gt;                     MC8C       DISPLAY&lt;br /&gt;EVENT                MC64       CREATE&lt;br /&gt;                     MC65       CHANGE&lt;br /&gt;                     MC66       DISPLAY&lt;br /&gt;ROUGH CUT PLANNING   MC35       CREATE&lt;br /&gt;PROFILE              MC36       CHANGE&lt;br /&gt;                     MC37       DISPLAY&lt;br /&gt;ENVIRONMENT          MC90       TRANSFER MATERIALS TO DM&lt;br /&gt;ACTIVITY REQT.       KSPP       TRANSFER TO COST CENTRE&lt;br /&gt;                     KSBL       COST CENTRE OLANNING REPORT&lt;br /&gt;                     KSOP       TRANSFER TO ACTIVITY BASED COSTING&lt;br /&gt;                     CPBL       PLANNING REPORT PROCESSES&lt;br /&gt;                     MC9C       REPORTING&lt;br /&gt;SETTINGS             MC96       FORECAST PROFILE&lt;br /&gt;DISSAGGRIGATION      MC76       BREAKDOWN PG PLAN&lt;br /&gt;                     MC77       DISPLAY PG PLAN&lt;br /&gt;                     MC75       TRANSFER PG TO PLANNING&lt;br /&gt;                     MC74       TRANSFER MATERIALS TO DM&lt;/span&gt;&lt;/pre&gt;  &lt;pre&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;FORECASTING&lt;br /&gt;&lt;/b&gt;INDIVIDUAL FORECAST  MP30       EXECUTE&lt;br /&gt;                     MP31       CHANGE&lt;br /&gt;                     MP32       DISPLAY&lt;br /&gt;TOTAL FORECAST       MP38       EXECUTE&lt;br /&gt;                     MP33       REPROCESS&lt;br /&gt;                     MP39       PRINT&lt;br /&gt;                     MPBT       EXECUTE BACKGROUND&lt;br /&gt;                     MPDR       PRINT BACKGROUND&lt;/span&gt;&lt;/pre&gt;  &lt;pre&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;DEMAND MANAGEMENT&lt;br /&gt;&lt;/b&gt;PIR                  MD61       CREATE&lt;br /&gt;                     MD62       CHANGE&lt;br /&gt;                     MD63       DISPLAY&lt;br /&gt;                     MD65       REQTS. FOR SCINARIO&lt;br /&gt;                     MD66       COPY SIMULATED DEPENDENT REQT.&lt;br /&gt;                     MD70       COPY TOTAL FORE CAST&lt;br /&gt;EVALUATION           MD73       DISPLAY TOTAL REQT.&lt;br /&gt;                     MD79       EXCELL INTERFACE&lt;br /&gt;                     MD4C       ORDER REPORT&lt;br /&gt;                     MD72       CHARECTERISTICS PLANNING&lt;br /&gt;CUSTOMER REQT.       MD81       CREATE&lt;br /&gt;                     MD82       CHANGE&lt;br /&gt;                     MD83       DISPLAY&lt;/span&gt;&lt;/pre&gt;  &lt;pre&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;REPETITIVE MANUFACTURING&lt;br /&gt;&lt;/b&gt;MASTER DATA          C223       PRODUCTION VERTION&lt;br /&gt;PRODUCT COST PLANNING&lt;br /&gt;COSTING RUN          CKMATSEL   CREATE&lt;br /&gt;SELECTION LIST       CKMATCON   Edit&lt;br /&gt;                     CK40N      EDIT COSTING RUN&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4193842905614302121?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4193842905614302121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4193842905614302121'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/commonly-used-tcodes-in-pp-module-part_29.html' title='Commonly Used Tcodes in PP Module Part 2'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8230047975856243148</id><published>2008-12-29T02:31:00.000-08:00</published><updated>2008-12-29T02:32:42.799-08:00</updated><title type='text'>Commonly Used Tcodes in PP Module Part 1</title><content type='html'>&lt;pre&gt;&lt;b&gt;MATERIAL&lt;br /&gt;&lt;/b&gt;CREATE-GENERAL       MM01       IMMEDIETELY&lt;br /&gt;                     MM11       SCHEDULE&lt;br /&gt;CHANGE               MM02       IMMEDIETELY&lt;br /&gt;                     MM12       SCHEDULE&lt;br /&gt;                     MM13       ACTIVATE&lt;br /&gt;FLAG FOR DELETION    MM06       IMMEDIETELY&lt;br /&gt;                     MM16       SCHEDULE&lt;br /&gt;DISPLAY              MM03       DISPLAY CURRENT&lt;br /&gt;                     MM19       DISPLAY AT KEY DATE&lt;br /&gt;DISPLAY CHANGES      MM04       ACTIVE CHANGES&lt;br /&gt;                     MM14       SCHEDULE CHANGES&lt;br /&gt;                     MM17       MASS MAINTENANCE&lt;br /&gt;                     MMAM       CHANGE MATERIAL TYPE&lt;br /&gt;OTHER                MMBE       STOCK OVERVIEW&lt;br /&gt;                     MMPV       CLOSE PERIOD&lt;br /&gt;                     MMRV       ALLOW POSTING TO&lt;br /&gt;                                PREVIOUS PERIOD&lt;br /&gt;                     MM50       INSTANT MATERIAL VIEW&lt;br /&gt;                     MMSC       ENTER STORAGE LOCATIONS&lt;br /&gt;                     MM60       MATERIAL LIST&lt;br /&gt;ARCHIVING(MATERIAL)  MM71       ARCHIVE/DELETE&lt;br /&gt;                     MM72       DISPLAY ARCHIVE&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;BILL OF MATERIAL (MATERIAL BOM)&lt;br /&gt;&lt;/b&gt;                     CS01       CREATE&lt;br /&gt;                     CS02       CHANGE&lt;br /&gt;                     CS03       DISPLAY&lt;br /&gt;EXTRAS               CS28       ARCHIVING&lt;br /&gt;                     CS20       MASS CHANGES&lt;br /&gt;EVALUATION/BOM       CS11       BOM MULTILEVEL&lt;br /&gt;EXPLOSION/MATERIAL   CS12       STRUCTURE MULTILEVEL&lt;br /&gt;BOM                  CS13       SUMMURISED BOM&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;WORK CENTRES&lt;br /&gt;&lt;/b&gt;                     CR01       CREATE&lt;br /&gt;                     CR02       CHANGE&lt;br /&gt;                     CR03       DISPLAY&lt;br /&gt;                     CA85       REPLACE&lt;br /&gt;CAPACITY             CR11       CREATE&lt;br /&gt;                     CR12       CHANGE&lt;br /&gt;                     CR13       DISPLAY&lt;br /&gt;HIERARCHY            CR21       CREATE&lt;br /&gt;                     CR22       CHANGE&lt;br /&gt;                     CR23       DISPLAY&lt;br /&gt;LINE HIERARCHY       LDB1       CREATE&lt;br /&gt;                     LDB2       CHANGE&lt;br /&gt;                     LDB3       DISPLAY&lt;br /&gt;REPORTING            CR60       W/C INFORMATION SYSTEM&lt;br /&gt;                     CR05       W/C LIST&lt;br /&gt;                     CR06       COST CENTRE ASSIGNMENT&lt;br /&gt;                     CR07       W/C CAPACITIES&lt;br /&gt;                     CR08       W/C HIERARCHY&lt;br /&gt;WHERE USED           CA80       WORK CENTRE&lt;br /&gt;                     CR15       CAPACITY&lt;br /&gt;                     CR10       CHANGE DOCUMENTS&lt;br /&gt;EXTRAS               CR09       STD. TEXTS TASK LIST&lt;br /&gt;                     CR41       ARCHIVING&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;ROUTING&lt;br /&gt;&lt;/b&gt;STAD. ROUTING        CA01       CREATE&lt;br /&gt;                     CA02       CHANGE&lt;br /&gt;                     CA03       DISPLAY&lt;br /&gt;REF. OPERATION SETS  CA11       CREATE&lt;br /&gt;                     CA12       CHANGE&lt;br /&gt;                     CA13       DISPLAY&lt;br /&gt;RATE ROUTING         CA21       CREATE&lt;br /&gt;                     CA22       CHANGE&lt;br /&gt;                     CA23       DISPLAY&lt;br /&gt;REF. RATE ROUTING    CA31       CREATE&lt;br /&gt;                     CA32       CHANGE&lt;br /&gt;                     CA33       DISPLAY&lt;br /&gt;EXTRAS               CA85       REPLACE W/C&lt;br /&gt;MASS CHANGES         CA95       REPLACE REF. OP. SET&lt;br /&gt;                     CA75       REPLACE PRT&lt;br /&gt;DELETE TASK LIST     CA99       WITH ARCHIVING&lt;br /&gt;                     CA98       W/O ARCHIVING&lt;br /&gt;REPORTING            CA80       WORK CENTRE&lt;br /&gt;WHERE USED LIST      CA90       REF. OP. SETS&lt;br /&gt;                     CA70       PRODUCTION RESORCE TOOLS&lt;/pre&gt;  &lt;pre&gt;&lt;b&gt;COST CENTRE&lt;br /&gt;&lt;/b&gt;                     OKKP       MAINTAIN CONTROLLING AREA&lt;br /&gt;                     KS01       CREATE COST CENTRE&lt;br /&gt;                     KZS2       CREATE COSTING SHEET&lt;br /&gt;                     KA01       CREATE PRI. COST ELEMENT&lt;br /&gt;                     KA06       CREATE SEC. COST ELEMENT&lt;br /&gt;                     KL01       CREATE ACTIVITY TYPE&lt;br /&gt;                     KP26       ACTIVITY TYPE/PRICE PLANNING&lt;/pre&gt; &lt;b&gt;What is the T-Code for trigger point?&lt;/b&gt; &lt;p&gt;CO30     MENUCO30      Standard trigger points &lt;br /&gt;CO31     SAPMCNSM     Create standard trigger point &lt;br /&gt;CO32     SAPMCNSM     Change standard trigger point &lt;br /&gt;CO33     SAPMCNSM     Display standard trigger point  &lt;/p&gt;&lt;p&gt;&lt;b&gt;What the tcodes to archieve/delete a material BOM? - by Jia&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Look at this option to delete a material BOM&lt;br /&gt; &lt;br /&gt;There are two ways of deleting BOMs: &lt;br /&gt;- Using the Delete function. &lt;br /&gt;- Using the Deletion indicator.  &lt;/p&gt;&lt;p&gt;If you select the deletion indicator, the BOM is archived in the next reorganization run, and can be deleted if required. In the BOM header, you set the indicator that controls physical deletion after the archiving run. You can still process the BOM within its validity period.This also applies if the deletion indicator is entered with reference to a change number with a valid-from date that is after the date of the next reorganization run  &lt;/p&gt;&lt;p&gt;You can use the below mentioned tcodes:&lt;br /&gt;CS25/CS28        Archiving for BOMs&lt;br /&gt;CS26                  BOM deletion&lt;br /&gt;CS27                  Retrieval of BOMs &lt;/p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; google_alternate_ad_url = "http://www.sap-img.com/amazon.htm"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8230047975856243148?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8230047975856243148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8230047975856243148'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/commonly-used-tcodes-in-pp-module-part.html' title='Commonly Used Tcodes in PP Module Part 1'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8013842122119177503</id><published>2008-12-29T02:30:00.000-08:00</published><updated>2008-12-29T02:31:28.016-08:00</updated><title type='text'>Transaction Code To View All SAP Tables</title><content type='html'>&lt;p&gt;&lt;b&gt;What is the transaction code to view all SAP (PP) table,or there is some other way to view?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;By: Riki Paramita  &lt;/p&gt;&lt;p&gt;To browse tables which specified for PP module only, you can use &lt;b&gt;SE16&lt;/b&gt; with a &lt;b&gt;specified application component &amp;amp; sub-component&lt;/b&gt;. First, go to &lt;b&gt;SE16&lt;/b&gt;, &lt;b&gt;browse the application component (ex : PP), then select the sub-component (ex : PP-SFC, for Production Orders related tables);&lt;/b&gt; and all tables within the specified area will be displayed.  &lt;/p&gt;&lt;p&gt;In tcode &lt;b&gt;SE16&lt;/b&gt;, click the &lt;b&gt;Down Arrow&lt;/b&gt; next to the &lt;b&gt;Table Name&lt;/b&gt; field: &lt;/p&gt;&lt;p&gt;Then it will pop-up a screen, look at the &lt;b&gt;bottom of the screen&lt;/b&gt;: &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.sap-img.com/production/se16pptable1.jpg" alt="SE16 - SAP Application Modules" width="357" height="27" /&gt; &lt;/p&gt;&lt;p&gt;Then &lt;b&gt;select components&lt;/b&gt; by clicking the &lt;b&gt;+ sign&lt;/b&gt; to open up the sub-compenent you want.  For e.g.: &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.sap-img.com/production/se16pptable2.jpg" alt="SE16 - SAP PP Module Tables" width="597" height="321" /&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Some important tables within the PP area : &lt;/b&gt; &lt;/p&gt;&lt;p&gt;MAST - Material BOM&lt;br /&gt;STKO  - BOM Header&lt;br /&gt;STPO  - BOM Positions (detail)&lt;br /&gt;MAPL - Assignment for Task Lists to Materials&lt;br /&gt;PLKO - Routing Group Header&lt;br /&gt;PLSO  - Routing Group Sequence&lt;br /&gt;PLPO  - Routing Group Operations&lt;br /&gt;AFKO - Production Order Header&lt;br /&gt;AFPO  -Production Order Position (details)  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Related tables in MM area : &lt;/b&gt; &lt;/p&gt;&lt;p&gt;MAKT - Material Descriptions&lt;br /&gt;MARA - General Material Data&lt;br /&gt;MARC - Plant Data for Material&lt;br /&gt;MARD - Storage Location Data for Material&lt;br /&gt;MAST  - Material to BOM Link &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8013842122119177503?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8013842122119177503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8013842122119177503'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/transaction-code-to-view-all-sap-tables.html' title='Transaction Code To View All SAP Tables'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4094339368771240478</id><published>2008-12-29T02:29:00.000-08:00</published><updated>2008-12-29T02:30:25.231-08:00</updated><title type='text'>Interview Questions and Anwsers on SAP PP</title><content type='html'>&lt;b&gt;1. If you have released Prdn order today and it had gone to shop floor.  Next day it was found that there is shortage of material. What will you?&lt;/b&gt;&lt;br /&gt;&lt;b&gt; 2. How you define Standard Cost and Variable cost in PP?&lt;/b&gt;&lt;br /&gt;&lt;b&gt; 3. Where can you find Read PP Master in SAP(PP)?&lt;/b&gt;&lt;br /&gt;&lt;b&gt; 4. What are all the settings done for configuring integration of PP with FICO?&lt;/b&gt; &lt;p&gt;1. Do availability check. You will get missing parts list. Procure those missing parts. Then confirm the production order. One more thing you can do, change customize setting so that user cannot release if parts are missing during order release. &lt;/p&gt;&lt;p&gt; 2. Standard cost is the cost which is fixed for a period, variable cost is varying with period. As for example cost of semi finished, finished materials are fixed &amp;amp; cost of raw materials are varied. &lt;/p&gt;&lt;p&gt; 3. You will find in master data tab page of production header data overview, CO02 - Read PP Master Data. Also from Functions menu you will get Read PP Master Data.  This means that you want the system to re-update the production order with the latest BOM structure. &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.sap-img.com/production/readppmaster.jpg" alt="Tcode CO02 - Read PP Master data" width="311" height="158" /&gt; &lt;/p&gt;&lt;p&gt;  4. Assigning of Cost center to work center. Assigning Activity type to work center, Standard Cost estimate, Costing Run, Order settlement, Product costing.   &lt;b&gt; *-- Chandan Majumdar&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 1. Can MRP be carried out for one particular level of a bom ( Level code : 0001/0002 etc).&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Yes it can be done by running for specific materials (Single Material Single Level)&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 2  How Requiements( PIR,Sles Order, Customer Requirement)  are reduced  after they are produced?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Reqmts are reduced automatically after Delivery is made to the Particular Order&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     (In case of Strategy 11, the PIRs are consumed after the GR for Production Order)&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; &lt;b&gt;3. Can't one material be assigned to more than one operation in a routing?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     One material from a BOM CANNOT be assigned to different Operations.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     It can be done by defining the material for so many times as required in the BOM&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 4. How to insert an inspection checkpoint at the end of an operation?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     If in process sample is to be defined, assign inspection type 03 in the Material Master.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Then create MICs and assign them in the Routings.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     System automatically generates the Inspection Lots&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 5. Where we have to specify the teardown time in one operation?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Teardown time can be defined as one of the Standard Parameters...&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 6. How the process time is calculated in a WC when both labour, Machine categories exist?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Scheduling is done based on the Capacity Category we define in the Workcenter&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; &lt;b&gt;7. How to create opbject dependencies in a BOM FOR A CONFIGURABLE MATERIAL?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     Go to Extras -&gt; Object Dependency -&gt; Assign&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;     For this U need to create Characteristics and Class (of Class Type 300) earlier&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt; 8. Can any body explain me why work scheduling view is required for semi finished and finished products? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;     (Because we'll mention all details in MRP views)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt; A) We need to maintain working scheduling view in order to make that finished or semi finished goods available for &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;      production as we assign production scheduler and production scheduler profile in this view, if not maintained&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;      conversion of planned order to production will not be possible.&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4094339368771240478?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4094339368771240478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4094339368771240478'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/interview-questions-and-anwsers-on-sap.html' title='Interview Questions and Anwsers on SAP PP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-284080432568643932</id><published>2008-12-29T02:28:00.000-08:00</published><updated>2008-12-29T02:29:20.414-08:00</updated><title type='text'>SAP PP Test Questions (MCQ)</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;1. A plant can be a physical plant or a logical section of a plant&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Yes   b) No.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;   &lt;b&gt;Storage locations are areas where materials are stored within a plant&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Yes   b) No.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;   &lt;b&gt;A purchasing organization can buy for a number of plants&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Yes   b) No.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;    &lt;b&gt;A purchasing group is a sub-set of a purchasing organization&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Yes   b) No.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;2. Strategy Group is relevant for Material Requirement Planning&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) True   b) False&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;3. MRP can be caried out at :&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Plant Level&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) All Routings&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Single item – single level&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) Single item – multiple level&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a, c, d&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;4. In Material Requirement Planning&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Material availability is ensured&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) If shortage exists the corresponding elements are planned&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Stock transfers are also possible&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) The availability of the components is ensured via dependent requirements&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: d&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;5. With Make – to Stock strategy 10&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) MRP run considers only Sales Orders&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) MRP run considers only PIR&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) MRP run considers both Sales Order &amp;amp; PIR&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) Sales Order can consume PIR&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;6. The Individual / Collective indicator in the material Master determines&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Whether a component is procured for a special customer requirement in the individual segment&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Requirement quantities of dependent materials are grouped together during MRP run&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) The Material Requirement Planning&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) The Special Procurement.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: c&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;7. ATP – Available to Promise (Availability check)&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) System checks if all issues are covered by existing receipts&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Checks if receipts’ quantity still available to cover newly received issues&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;8.  Availability Check PIRs&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;     System does not check against PIRs&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; a) True     b) False&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;    &lt;b&gt;No ATP quantities, receipts or stocks are included&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) True     b) False&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;   &lt;b&gt;Determines if sufficient PIRs are planned to cover a SO&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; a) True     b) False&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;9.  Consumption based planning is usually used for following materials&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) All A &amp;amp; B Class Materials&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Materials with smooth consumption pattern.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;10. For Planning at Phantom Assembly Level planned orders are created for Phantom assembly&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; a) True     b) False&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;11. Stock Requirements List gives ___________________ situation of stock requirement for the material&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Static  :  of the last MRP Run&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Dynamic  :  Existing at current situation&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;12.  Is Sales order A Qty. 15 PC and Sales order B Qty. 25 PC are booked on same date and stock is 0 PC&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Separate Planned Order for each Sales Order shall be created if individual indicator is set&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Only one planned order is created if individual indicator is set&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Separate Planned Order for each Sales Order shall be created if Collective  indicator is set&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) Only one planned order is created if Collective indicator is set&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a, d&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;13.  Planning can create the following after MRP run&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Planned Orders&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Production Orders&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Purchase Orders&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) Schedule Lines &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: a, b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;14. NETCH is&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Used in Demand Management&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Key to run MRP for Total horizon&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Key to run MRP for Total Planning horizon&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;d) Not related to MRP &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: c&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;15. Regenerative Planning&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;a) Plans all material for a specified plant&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;b) Plans all material for a specified plant for total planning horizon&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;c) Stands practical for the first time planning run&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Ans: &lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-284080432568643932?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/284080432568643932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/284080432568643932'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-pp-test-questions-mcq.html' title='SAP PP Test Questions (MCQ)'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6105359089242115592</id><published>2008-12-29T02:25:00.000-08:00</published><updated>2008-12-29T02:28:07.204-08:00</updated><title type='text'>Sample Questions on SAP PP</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1.  Which is the highest organisational level in SAP&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; a) Plant  b) Client  c) Storage Location&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;2.  For Material Master record PP Data which is the highest organisational level&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; a) Plant  b) Client  c) Storage Location&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3.  What is the difference between F1 Help &amp;amp; F4  Help.&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) F1 is for possible values and F4 is for application help&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) F1 is for Application Help  and F4 is for Technical Help&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) F1 is for Field Help and F4 is for possible entries.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) None of the above&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: c&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;4.  Variant Configuration is typically used in&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Make – to – stock Environment&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Make – to – Order Environment&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Spare parts Sale&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Repetitive Manufacturing Environment&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;5. Configurable Material check for a material is set in _____________&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Basic Data    b) MRP View &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Sales View   d) Classification&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;6. Basic Data screen contains general data such as&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Material Number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Material description&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Base unit of measure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Technical data&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: a, b, c&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;7.  Functions of Classification are&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) To find an appropriate object&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) To find similar objects&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) To establish that no appropriate object exists.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;8.  Entering  “/o” in command field &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Ends current transaction&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Ends the current cession&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Opens new cession&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Opens new transaction&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;9. For creating Material Master the following Transaction Code is used :&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) md01&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) mm01&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) me01&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) mc01&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;10.  The unit in which the stock keeping is done in a company is called&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Stock unit of measure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Base unit of measure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Unit of issue&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Purchase unit of measure&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11.  Batch is&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Same as material code&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Partial quantity of material managed separately from other quantity of same material in stock&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) A non reproducible homogeneous unit with unique specifications&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) None of above&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;e) All of above &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans:  b&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;12.  A _____________________________ is a complete, formally structured list of the components that make up a product or assembly.&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans:&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;13.  Component in the BOM are allocated to operation in&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) BOM&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Material Master&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Routing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Work Center&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: c&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;14. BOM contains the following&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) List of Components&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Qty of Components&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Operation to which components is attached.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Unit of Measure of components&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: a, b, d&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;15. BOMs are always created as &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a) Single Level&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;b) Multi Level&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;c) Components&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;d) Along with routings&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ans: a&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6105359089242115592?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6105359089242115592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6105359089242115592'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sample-questions-on-sap-pp.html' title='Sample Questions on SAP PP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6995239971116035240</id><published>2008-12-29T02:24:00.000-08:00</published><updated>2008-12-29T02:25:41.594-08:00</updated><title type='text'>SAP PP Questions and Answers</title><content type='html'>&lt;p&gt;&lt;b&gt;What are the cutover activities followed for PP module?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;I am listing some cut over activities to be followed (for PP - Discrete Manufacturing).&lt;br /&gt;   &lt;br /&gt;Production Planning / Master data:    &lt;br /&gt;For Production planning, only master data shall be migrated to SAP. In the 1st Stage, there is no master data.  Following is the master data elements relevant for PP: &lt;br /&gt;   &lt;br /&gt;- Bill of materials &lt;br /&gt;- Routing. &lt;br /&gt;- Work Centres.&lt;br /&gt;   &lt;br /&gt;Transaction data:&lt;br /&gt;As of the cut off date, ideally there should not be any work in process. All the open production orders should be closed and semi finished goods should be dismantled and should be added to Raw materials. This strategy should be followed for all production orders where lead time to complete the production order is not large.&lt;br /&gt;   &lt;br /&gt;Since, the production orders are for longer duration and it is not possible to dismantle the product and add it to inventory, following can be the strategy for migrating the data to SAP: &lt;br /&gt;   &lt;br /&gt;- Create a material master for the work in process and set the standard price as the cost incurred for that product (ie. Work in process)&lt;br /&gt;- Create a bill of material (which will be used only for this production order) including this material and other materials still to be consumed. &lt;br /&gt;- Create Routing for rest of the production process. &lt;br /&gt;- Bring the work in process material into inventory as of the cut off date. &lt;br /&gt;- Create the production orders in SAP for the Work in process and issue materials to production order. &lt;br /&gt;   &lt;br /&gt;Complete the production process after the cut off date of the project.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#666600;"&gt;Tips by: K.S.Kulkarni&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;What happens to planned after it has been converted into production order? &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;When you convert Planned order to Production order. the planned order are offset by production order. Reference of planned order can be seen in the production order.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;How to attach a drawing for a material to BOM? Is it possible? &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Yes, you can attach a drawing. &lt;br /&gt;First create a document using Transaction Code "CV01N - Create Document". &lt;br /&gt;Attach your drawing in that document. &lt;br /&gt;The system will generate a document number. Assign this document in the BOM with item category D.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Report in Long Term Planning - You use long term planning for your customers, what they need are very simple, just to calculate future requirements for 1 or 2 years. &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Are there any reports in SAP to list of material requirement from LTP? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;You need a list of material requirement from long term planning result for each item. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Use MS70 then use MCEC.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Scheduling planned order   - How can you get planned orders scheduled so that you can do capacity leveling? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;MD11 and then Schedule works fine but ideally you would want the the planned order scheduled automatically on creation? You have tried setting up an action to schedule the orders but cannot get that to work either. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;When running MRP, try selecting "2" in the scheduling box this will bring planned orders into CM01 and CM21  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Capacity planning CM01 - When you run capacity planning T-code: CM01, you found the plan orders are not included in the pegged requirement, you checked the profile, the check box for order and plan order are all actived. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Guess that planned orders have been created without capacity requirement indicator in MRP ("2" - Lead Time scheduling), if this is the case, then when converted to process orders they will have impact on the Resource. If you want to see them as planned orders, re-run the MRP or change in every planned order, going to the Menu: Edit --&gt; Scheduling  &lt;/p&gt;&lt;p&gt;Another couple of possibilities are to do with the routing/work centres used and whether it isactually calculates consumption of capacity of the category at the work centre being displayed in CM01 (it might consume a capacity pool or it might not consume the category).  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;MPS in Backgound/Online - You want to run MPS for a plant either online or in the background, but you do not get any results. If you run MPS for a single material/plant, then everything is 100% OK. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;You need to run a planning file and a consistency check first, transaction OMDO and MDRE respectively you'll need to set up two jobs to do it but it is straight forward, once you've done this set up the background job for MPS to run and do it in NEUPL first time round and then change to NETCH after that.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;What is the output of MPS run? &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;From MPS run you plan the materials which are of 'A' type in the abc analysis (80% dollar value) that have to be planned before hand. &lt;br /&gt;MPS is also a type of MRP only in which components just below the materials on which MPS run is taken place, are planned.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Table for production order status - What is the table for finding status (for Ex TECO ed prodn orders). We are not able to find from AFKO and AFRU tables the status of production orders or at least the link tables if known can be mentionned. You are unable to link the structure caufvd and IOHEADER WITH AFKO and AFRU.&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;JEST is the table. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Data dictonary table for SOP planning data - You are using Standard SOP (Info structure S076), in which table can you see the planning values that you maintained in MC93 transaction? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;You looked under table "S076" and did not see any values there. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Use T.Code MC95 to display your entries under the version which maintained the the table S076.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;Production order operation's component allocation - How does SAP know that an operation has components as indicated by the component allocation indicator? Tcode CO08. &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Component allocation is done via routing maintenance or BOM maintenance for the assembly. This is master data maintenance. As soon as a PO is created, the master data is read into the PO. &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;How to delete groups of products?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;How to delete a group of products that was created in screen MC84? &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Delete the members in the product group and then archive the product group in transaction SARA, object=MM_MATNR. &lt;br /&gt;(The product group is created as a material master record with material type PROD and this record is deleted in SARA.)  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6995239971116035240?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6995239971116035240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6995239971116035240'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-pp-questions-and-answers.html' title='SAP PP Questions and Answers'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2810060044339677299</id><published>2008-12-29T02:22:00.000-08:00</published><updated>2008-12-29T02:24:37.277-08:00</updated><title type='text'>SAP PP Self Test Certification Questions</title><content type='html'>&lt;p&gt;&lt;b&gt;1. Following are valid BOM categories&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Inspection BOM&lt;br /&gt;b) Material BOM&lt;br /&gt;c) Equipment BOM&lt;br /&gt;d) Costing BOM &lt;/p&gt;&lt;p&gt;Ans : b, c, d &lt;/p&gt;&lt;p&gt;&lt;b&gt;2. Material BOM that is created without plant is called______________&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Reference BOM&lt;br /&gt;b) Master BOM&lt;br /&gt;c) Group BOM&lt;br /&gt;d) Master group &lt;/p&gt;&lt;p&gt;Ans: c &lt;/p&gt;&lt;p&gt;&lt;b&gt;3. If a Header Material is used as a BOM item in the same BOM the BOM is referred as ___&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Repetitive BOM&lt;br /&gt;b) Alternative BOM&lt;br /&gt;c) Multiple BOM&lt;br /&gt;d) Flexible BOM&lt;br /&gt;e) Recursive BOM &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;4. Alternative BOMs are grouped under one internal number and are called__________&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Multiple BOM&lt;br /&gt;b) Variant BOM&lt;br /&gt;c) Variable BOM&lt;br /&gt;d) Super BOM&lt;br /&gt;e) Header BOM &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;5. BOM can be used for the following&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) MRP&lt;br /&gt;b) Costing&lt;br /&gt;c) Inspection data&lt;br /&gt;d) Sales &amp;amp; Distribution  &lt;/p&gt;&lt;p&gt;Ans: a, b, c, d &lt;/p&gt;&lt;p&gt;&lt;b&gt;6. The base quantity in the BOM specifies&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) To which amount of the semi finished product the item quantities refer&lt;br /&gt;b) To which amount the item quantities required for two or more finished products&lt;br /&gt;c) To which amount of the finished product the item quantities refer&lt;br /&gt;d) To which amount the item quantities are not calculated. &lt;/p&gt;&lt;p&gt;Ans: a, b, c &lt;/p&gt;&lt;p&gt;&lt;b&gt;7. Work Center is used in &lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Routing&lt;br /&gt;b) BOM&lt;br /&gt;c) Material Master&lt;br /&gt;d) Inspection Plans &lt;/p&gt;&lt;p&gt;Ans: a, d &lt;/p&gt;&lt;p&gt;&lt;b&gt;8. Routing contains information on the following&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Material Components&lt;br /&gt;b) Operations&lt;br /&gt;c) Capacity for Work Centers&lt;br /&gt;d) Inspection Characteristics &lt;/p&gt;&lt;p&gt;Ans: a, b, c &lt;/p&gt;&lt;p&gt;&lt;b&gt;9. Alternative sequences in routing are created with reference to &lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Parallel Sequence&lt;br /&gt;b) Master Sequence&lt;br /&gt;c) Standard Sequence&lt;br /&gt;d) Reference Sequence &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;10. Work Center requires formulas for the following&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Move time&lt;br /&gt;b) Scheduling&lt;br /&gt;c) Capacity requirements&lt;br /&gt;d) Cost estimate using activities &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;11. Routings are identified by ____________________&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Routing Group&lt;br /&gt;b) Routing Status&lt;br /&gt;c) Group Counter Values&lt;br /&gt;d) Routing Group and Group Counter Values&lt;br /&gt;e) Status and use &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;12. You can assign work center to only one cost center in a time period.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) True    b) False &lt;/p&gt;&lt;p&gt;Ans:  &lt;/p&gt;&lt;p&gt;&lt;b&gt;13. Production Planning Module is integrated with the following modules.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) Material Management&lt;br /&gt;b) Controlling&lt;br /&gt;c) Quality Management&lt;br /&gt;d) Sales &amp;amp; Distribution &lt;/p&gt;&lt;p&gt;Ans: a, b, c, d &lt;/p&gt;&lt;p&gt;&lt;b&gt;14. Movement Type for Goods Receipt in to Ware House &lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) 122  b) 123  c) 101  d) 102 &lt;/p&gt;&lt;p&gt;Ans: c &lt;/p&gt;&lt;p&gt;&lt;b&gt;15. Movement Type for Transfer Posting to storage location&lt;/b&gt; &lt;/p&gt;&lt;p&gt;a) 261  b) 301  c) 311  d) 305  &lt;/p&gt;&lt;p&gt;Ans: c &lt;/p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; //336x280, SAP IMG 336 google_ad_slot = "7098765619"; google_ad_width = 336; google_ad_height = 280; //--&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt;&lt;script&gt;window.google_render_ad();&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2810060044339677299?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2810060044339677299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2810060044339677299'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-pp-self-test-certification.html' title='SAP PP Self Test Certification Questions'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4475907352139184524</id><published>2008-12-29T02:17:00.000-08:00</published><updated>2008-12-29T02:22:09.761-08:00</updated><title type='text'>SAP PP Certification Sample Questions</title><content type='html'>&lt;p&gt;&lt;b&gt;Caution: more than one answer may be correct. &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Please mark ALL correct answers. &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;The following control parameters can be set in a long-term planning scenario : &lt;/b&gt; &lt;/p&gt;&lt;p&gt; A   Planning period &lt;br /&gt; B   Opening stock &lt;br /&gt; C   Strategy group &lt;br /&gt; D   MRP type &lt;br /&gt; E   Version of available capacity  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What is the name of the planning level for the MRP run?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A.  SOP&lt;br /&gt;B.  MP&lt;br /&gt;C.  MRP&lt;br /&gt;D.  COPA &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What are the main features of the MRP types 'PD' or 'VB'?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A.  'PD' can only be used with 'Net Change Planning'&lt;br /&gt;B.  'VM' can only be used in total planning&lt;br /&gt;C.  'PD' triggers a BOM explosion&lt;br /&gt;D.  'VM' can use the forecast for the calculation of the safety stock &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What is the meaning of the planning time fence?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A.  It determines the planning period for the planning run&lt;br /&gt;B.  It determines the period in which the planned orders are to be converted into production orders&lt;br /&gt;C.  It determines the period in which no automatic changes are to be made to the production plan &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;In forecast-based planning, which forecast model does SAP support?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A.  dynamic model&lt;br /&gt;B.  seasonal trend model&lt;br /&gt;C.  split trend model&lt;br /&gt;D.  Consumption model &lt;/p&gt;&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What conditions must be fulfilled in Customizing if a production order is to be checked for availability?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A.  Scope of check&lt;br /&gt;B.  Checking group &lt;br /&gt;C.  checking rule&lt;br /&gt;D.  Checking assignment&lt;br /&gt;E.   Inspection period &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sap-img.com/production/answers-for-sap-pp-certification-sample-questions.htm" target="_top"&gt;Answers for SAP PP Certification Sample Questions&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Q) Can any body explain me why work scheduling view is required for semi finished and finished products? (Because we'll mention all details in MRP views)&lt;/b&gt; &lt;/p&gt;&lt;p&gt;A) We need to maintain working scheduling view in order to make that finished or semi finished goods available for production as we assign production scheduler and production scheduler profile in this view, if not maintained conversion of planned order to production will not be possible. &lt;/p&gt;&lt;center&gt; &lt;p&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=sapinformation0e&amp;amp;p=13&amp;amp;o=1&amp;amp;l=bn1&amp;amp;browse=17&amp;amp;mode=books&amp;amp;lt1=_blank&amp;amp;f=ifr" scrolling="no" width="468" frameborder="0" height="60"&gt;&amp;amp;lt;map NAME="boxmap-p13"&amp;amp;gt;&amp;amp;lt;area SHAPE="RECT" COORDS="379, 50, 460, 57" HREF="http://rcm.amazon.com/e/cm/privacy-policy.html?o=1" target=main&amp;amp;gt;&amp;amp;lt;area COORDS="0,0,10000,10000" HREF="http://www.amazon.com/exec/obidos/redirect-home/sapinformation0e" target=main&amp;amp;gt;&amp;amp;lt;/map&amp;amp;gt;&amp;amp;lt;img SRC="http://rcm-images.amazon.com/images/G/01/rcm/468x60.gif" ALT="Shop at Amazon.com" NOSAVE BORDER=0 usemap="#boxmap-p13" height=60 width=468&amp;amp;gt;&lt;/iframe&gt;&lt;/p&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4475907352139184524?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4475907352139184524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4475907352139184524'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sap-pp-certification-sample-questions.html' title='SAP PP Certification Sample Questions'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5694255009049840829</id><published>2008-12-29T02:12:00.002-08:00</published><updated>2008-12-29T02:17:54.317-08:00</updated><title type='text'>mySAP Certification - Criteria For Application</title><content type='html'>&lt;p&gt;&lt;b&gt;The guidelines: Criteria to applying for a SAP Certification without Prerequisites: &lt;/b&gt; &lt;/p&gt;&lt;p&gt;"&lt;b&gt;All candidates registering for the mySAP Certification Test must ensure that they have &lt;span style="color:#006600;"&gt;at least 2 years SAP implementation experience or have attended at least 15 days of relevant training in SAP&lt;/span&gt;. &lt;/b&gt;It needs to be the classes that SAP Ltd. arrange and accept. For example: HR400 - Payroll Configuration." &lt;/p&gt;&lt;p&gt;&lt;b&gt;Proof of the above must be presented upon registration.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#006600;"&gt;Proof can be given in the following ways: &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. A statement from the Project Manager on Letter Head indicating participant's experience or training. &lt;br /&gt;2. A resume.&lt;br /&gt;3. Certificate of Attendance from the various SAP courses attended.  &lt;/p&gt;&lt;p&gt;Terms: &lt;br /&gt; -  Candidates must meet criteria mentioned &lt;br /&gt; -  Certification enrolment must accompany payment (credit card details preferred) before registration will be processed &lt;br /&gt; -  Once payment is received and confirmation provided, cancellation (i.e amendment to dates) is not permitted  &lt;/p&gt;&lt;p&gt;Here is a link to check dates of certification:  &lt;/p&gt;&lt;p&gt; &lt;b&gt;http://www.sap.com/trainingcatalog -&gt; type in tacert &lt;/b&gt; &lt;/p&gt;&lt;p&gt;To find out more about certification test types offered:  &lt;/p&gt;&lt;p&gt; &lt;b&gt;http://service.sap.com/certification &lt;/b&gt; &lt;/p&gt;&lt;p&gt; - Click on "SAP Consultant Certification" &lt;br /&gt; - Select your relevant certification area  &lt;/p&gt;&lt;p&gt;To register:  &lt;/p&gt;&lt;p&gt; &lt;b&gt;http://www.sap.com/asia/education/ &lt;/b&gt; &lt;/p&gt;&lt;p&gt; - Select Registration &lt;br /&gt; - Schedule of test only  &lt;/p&gt;&lt;p&gt;To check out SAP Educational terms and conditions:  &lt;/p&gt;&lt;p&gt; &lt;b&gt;http://www.sap.com/asia/education/ &lt;/b&gt; &lt;/p&gt;&lt;p&gt;Quick course search:  &lt;/p&gt;&lt;p&gt; &lt;b&gt;http://www.sap.com/trainingcatalog &lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;!-- google_ad_client = "pub-3687694581336538"; //336x280, SAP IMG 336 google_ad_slot = "7098765619"; google_ad_width = 336; google_ad_height = 280; //--&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt;&lt;script&gt;window.google_render_ad();&lt;/script&gt;&lt;iframe name="google_ads_frame" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3687694581336538&amp;amp;dt=1261952303453&amp;amp;lmt=1204617600&amp;amp;prev_fmts=728x90_as&amp;amp;output=html&amp;amp;slotname=7098765619&amp;amp;correlator=1261952302768&amp;amp;url=http%3A%2F%2Fwww.sap-img.com%2Fgeneral%2Fmysap-certification.htm&amp;amp;eid=6083027&amp;amp;ea=0&amp;amp;ref=http%3A%2F%2Fwww.sap-img.com%2Fsap-pp.htm&amp;amp;frm=0&amp;amp;ga_vid=1281035432.1261952303&amp;amp;ga_sid=1261952303&amp;amp;ga_hid=236799990&amp;amp;flash=0&amp;amp;u_h=768&amp;amp;u_w=1024&amp;amp;u_ah=738&amp;amp;u_aw=1024&amp;amp;u_cd=32&amp;amp;u_tz=330&amp;amp;u_his=4&amp;amp;u_nplug=5&amp;amp;u_nmime=13&amp;amp;dtd=4" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" width="336" frameborder="0" height="280"&gt;&lt;/iframe&gt;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;SAP Certification:&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/general/the-value-of-getting-sap-certification.htm" target="_top"&gt;The Value Of Getting SAP Certification&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/materials/my-sap-mm-certification-experience.htm" target="_top"&gt;My SAP MM Certification Experience&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/sap-sd/my-sap-sd-certification-experience.htm" target="_top"&gt;My SAP SD Certification Experience&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/plant/my-sap-pm-certification-experience.htm" target="_top"&gt;My SAP PM Certification Experience&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/human/my-sap-hr-certification-experience.htm" target="_top"&gt;My SAP HR Certification Experience&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/business/my-sap-bw-certification-experience.htm" target="_top"&gt;My SAP BW Certification Experience&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.sap-img.com/basis/sap-bc-certification.htm" target="_top"&gt;SAP BC Certification - Is It Worth Getting Certified&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;b&gt;SAP Books on Certification:&lt;/b&gt; &lt;ul&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804068/sapinformation0e" target="_blank"&gt;SAP ABAP Certification Review: SAP ABAP Interview Questions, Answers, and Explanations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0970655401/sapinformation0e" target="_blank"&gt;ABAP Programming: A Guide to the Certification Course&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0471236349/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP BW Certification: A Business Information Warehouse Study Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/097530528X/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP BW Ultimate Interview Questions, Answers, and Explanations: Saw BW Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/193380467X/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP NetWeaver Interview Questions, Answers, and Explanations: SAP NetWeaver Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1603320156/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP Netweaver MDM: Master Data Management Certification: SAP MDM FAQ&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0975305298/sapinformation0e" target="_blank"&gt;SAP Basis Certification Questions: Basis Interview Questions, Answers, and Explanations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804688/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP XI Interview Questions, Answers, and Explanations: SAP Exchange Infrastructure Certification Review&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804106/sapinformation0e" target="_blank"&gt;SAP FICO Interview Questions, Answers, and Explanations: SAP FICO Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0975305263/sapinformation0e" target="_blank"&gt;SAP MM Certification and Interview Questions: SAP MM Interview Questions, Answers, and Explanations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804092/sapinformation0e" target="_blank"&gt;SAP MM / PP Interview Questions, Answers, and Explanations: SAP Production Planning Certification&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804130/sapinformation0e" target="_blank"&gt;SAP PM Interview Questions, Answers, And Explanations: Sap Plant Maintenance Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804165/sapinformation0e" target="_blank"&gt;SAP QM Interview Questions, Answers, Explanations: SAP Quality Management Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0975305255/sapinformation0e" target="_blank"&gt;Mysap HR Interview Questions, Answers, and Explanations: SAP HR Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804343/sapinformation0e" target="_blank" rel="nofollow"&gt;SAP IS-Retail Interview Questions: SAP IS-Retail Certification Review&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804149/sapinformation0e" target="_blank"&gt;SAP CRM Interview Questions, Answers, and Explanations: SAP Customer Relationship Management Certification&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804424/sapinformation0e" target="_blank"&gt;SAP APO Interview Questions, Answers, and Explanations: SAP APO Certification Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933804084/sapinformation0e" target="_blank"&gt;SAP SCM Interview Questions Answers and Explanations: SAP Supply Chain Management Certification Review&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5694255009049840829?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5694255009049840829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5694255009049840829'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/mysap-certification-criteria-for.html' title='mySAP Certification - Criteria For Application'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4374443668571951727</id><published>2008-12-29T02:12:00.001-08:00</published><updated>2008-12-29T02:12:54.630-08:00</updated><title type='text'>Extract the smtp email address</title><content type='html'>&lt;pre&gt; Extract the smtp email address from the User Profile SU01 or&lt;br /&gt;* Vendor Master LFA1&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/index.htm" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;/pre&gt;  &lt;pre&gt;REPORT ZSMTPADR.&lt;br /&gt;&lt;br /&gt;TABLES: USR21,&lt;br /&gt;        LFA1,&lt;br /&gt;        ADR6.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF WA,&lt;br /&gt;         BNAME      TYPE USR21-BNAME,&lt;br /&gt;         LIFNR      TYPE LFA1-LIFNR,&lt;br /&gt;         ADRNR      TYPE LFA1-ADRNR,&lt;br /&gt;         PERSNUMBER TYPE ADR6-PERSNUMBER,&lt;br /&gt;         ADDRNUMBER TYPE ADR6-ADDRNUMBER,&lt;br /&gt;         SMTP_ADDR  TYPE ADR6-SMTP_ADDR,&lt;br /&gt;      END OF WA,&lt;br /&gt;      ITAB LIKE SORTED TABLE OF WA&lt;br /&gt;                 WITH NON-UNIQUE KEY BNAME LIFNR.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: UNAME FOR USR21-BNAME.&lt;br /&gt;SELECT-OPTIONS: LIFNR FOR LFA1-LIFNR.&lt;br /&gt;&lt;br /&gt;IF UNAME-LOW &lt;&gt; SPACE.&lt;br /&gt;   SELECT  U~BNAME U~PERSNUMBER U~ADDRNUMBER&lt;br /&gt;           A~SMTP_ADDR&lt;br /&gt;       INTO CORRESPONDING FIELDS OF TABLE ITAB&lt;br /&gt;       FROM ( USR21 AS U&lt;br /&gt;          INNER JOIN ADR6 AS A ON A~PERSNUMBER = U~PERSNUMBER&lt;br /&gt;                              AND A~ADDRNUMBER = U~ADDRNUMBER )&lt;br /&gt;       WHERE U~BNAME IN UNAME.&lt;br /&gt;&lt;br /&gt;   LOOP AT ITAB INTO WA.&lt;br /&gt;      WRITE:/ WA-BNAME, WA-SMTP_ADDR(50).&lt;br /&gt;   ENDLOOP.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;IF LIFNR-LOW &lt;&gt; SPACE.&lt;br /&gt;   SELECT  L~LIFNR L~ADRNR&lt;br /&gt;           A~SMTP_ADDR&lt;br /&gt;       INTO CORRESPONDING FIELDS OF TABLE ITAB&lt;br /&gt;       FROM ( LFA1 AS L&lt;br /&gt;          INNER JOIN ADR6 AS A ON A~ADDRNUMBER = L~ADRNR )&lt;br /&gt;       WHERE L~LIFNR IN LIFNR.&lt;br /&gt;&lt;br /&gt;    LOOP AT ITAB INTO WA.&lt;br /&gt;       WRITE:/ WA-LIFNR, WA-SMTP_ADDR(50).&lt;br /&gt;    ENDLOOP.&lt;br /&gt;ENDIF.&lt;/pre&gt;  &lt;pre&gt;*-- End of Program&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4374443668571951727?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4374443668571951727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4374443668571951727'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/extract-smtp-email-address.html' title='Extract the smtp email address'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-7051345655458446157</id><published>2008-12-29T02:11:00.000-08:00</published><updated>2008-12-29T02:12:04.991-08:00</updated><title type='text'>General - Number Range Generation</title><content type='html'>&lt;pre&gt;* In the 4.6x environment, SAP have included a number range generation&lt;br /&gt;* program just like those used for Purchase Order, Sales Order etc.&lt;br /&gt;*&lt;br /&gt;* This SAP number range generation is an include program.&lt;br /&gt;*&lt;br /&gt;* INCLUDE ZRANGENO.&lt;br /&gt;*&lt;br /&gt;* Always have to be included in the main program data declaration&lt;br /&gt;*&lt;br /&gt;* data: wnorange like INRI-NRRANGENR,            "number range,&lt;br /&gt;*       wsubobj  like inri-SUBOBJECT,            "sub object&lt;br /&gt;*       wdocno(12).&lt;br /&gt;*&lt;br /&gt;* Steps :-&lt;br /&gt;* 1. Number range Sub Object must be maintain in table ZSGRP&lt;br /&gt;*    You can used transaction SE16 to create a table entries.&lt;br /&gt;* 2. Maintain number range and intervals in transaction code SNUM&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/index.htm" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;br /&gt;&lt;br /&gt;call function 'NUMBER_RANGE_ENQUEUE'&lt;br /&gt;         exporting&lt;br /&gt;               object              = 'ZOWNNO'   "Create with SNUM&lt;br /&gt;         exceptions&lt;br /&gt;               foreign_lock        = 1&lt;br /&gt;               object_not_found    = 2&lt;br /&gt;               system_failure      = 3&lt;br /&gt;               others              = 4.&lt;br /&gt;  if sy-subrc ne 0.&lt;br /&gt;*   message e086 with 'Lock error' sy-subrc.&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;  call function 'NUMBER_GET_NEXT'&lt;br /&gt;         exporting&lt;br /&gt;               nr_range_nr         = wnorange&lt;br /&gt;               object              = 'ZOWNNO'&lt;br /&gt;               subobject           = wsubobj&lt;br /&gt;         importing&lt;br /&gt;               number                  = wdocno  "Number generated by SAP&lt;br /&gt;         exceptions&lt;br /&gt;               interval_not_found      = 1&lt;br /&gt;               number_range_not_intern = 2&lt;br /&gt;               object_not_found        = 3&lt;br /&gt;               quantity_is_0           = 4&lt;br /&gt;               quantity_is_not_1       = 5&lt;br /&gt;               internal_overflow       = 6&lt;br /&gt;               others                  = 7.&lt;br /&gt;  if sy-subrc ne 0.&lt;br /&gt;*   message e086 with 'Number Range' sy-subrc.&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;  call function 'NUMBER_RANGE_DEQUEUE'&lt;br /&gt;    exporting&lt;br /&gt;      object                 = 'ZOWNNO'.&lt;br /&gt;&lt;br /&gt;  if sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  endif.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-7051345655458446157?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7051345655458446157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7051345655458446157'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/general-number-range-generation.html' title='General - Number Range Generation'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-9199524611775570487</id><published>2008-12-29T02:10:00.000-08:00</published><updated>2008-12-29T02:11:23.225-08:00</updated><title type='text'>Steps To Implement User Exit CONFPM05</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style="color:#666600;"&gt;Real Work Ticket Raise :&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;We need to perform a user exit for the transaction colln and that exit has to be performed while we save the production order confirmation in colln.  Now the concept is as follows:  Before we save the confirmation in colln,the user has to check the movement type 261 in transaction mb1a(261 Consumption for order from warehouse) and then save it, once he has done this then the user can go to co11n and save the production confirmation. Now we need to use the user exit in such a way that it has to show an error message while saving the confirmation in co11n if the user has not performed the movement type 261 in transaction mb1a.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;By: Donny &lt;/p&gt;&lt;p&gt;Based on your requirements, here's what You have to do : &lt;/p&gt;&lt;p&gt;1. Goto T-Code *CMOD*&lt;br /&gt;2. Enter project name (example : *ZCO11*)&lt;br /&gt;3. Click Create&lt;br /&gt;4. Enter Short text that explain the user exit you want to create (example : "Production order validation").&lt;br /&gt;5. Save, enter the package and TR Number&lt;br /&gt;6. Click *Enhancement assignment*s&lt;br /&gt;7. Enter  *CONFPM05* in the input box under title Enhancement &lt;br /&gt;8. Save &lt;br /&gt;9. Click *Components* &lt;br /&gt;10. Double Click *EXIT_SAPLCORF_005*&lt;br /&gt;11. Double click on the word *ZXCOFU05* on *INCLUDE ZXCOFU05*. &lt;br /&gt;12. Just press enter, ignore the Warning message "Program names ZX... are reserved for includes of exit function groups".&lt;br /&gt;13. On the popup question to create include *ZXCOFU05, press Yes. *Enter the appropriate package and TR.&lt;br /&gt;14. The next step is a bit tricky, You have to ask your functional consultant which field on table CAUFV that was updated by performing MB1A, because the user exit only provide 2 structure : CAUFVD_TAB and AFRUD_TAB to be used in the coding.&lt;br /&gt;So the coding should look a little like this (Change the &lt;&lt;fieldname&gt;&gt; and &lt;&lt;something&gt;&gt; with the information from your functional consultant) : &lt;br /&gt;/ if CAUFVD_TAB-&lt;&lt;fieldname&gt;&gt;  EQ  &lt;&lt;something&gt;&gt;.       &lt;br /&gt; message "Error" type 'E'.&lt;br /&gt;endif./ &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-9199524611775570487?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/9199524611775570487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/9199524611775570487'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/steps-to-implement-user-exit-confpm05.html' title='Steps To Implement User Exit CONFPM05'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-951556432460366431</id><published>2008-12-29T02:09:00.000-08:00</published><updated>2008-12-29T02:10:01.854-08:00</updated><title type='text'>Display Active Exits in a ABAP System</title><content type='html'>&lt;p&gt;ZMS_ACTIVE_EXITS - &lt;b&gt;This report shows displays the active exits in a ABAP system along with the corresponding SAP Enhancement (SMOD) and Customer Project (CMOD)&lt;/b&gt; &lt;/p&gt;&lt;pre&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report ZMS_ACTIVE_EXITS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; This report displays all the active customer enhancements in the&lt;br /&gt;*&amp;amp; system and also displays whether they are active or implemented&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;REPORT ZMS_ACTIVE_EXITS.&lt;br /&gt;* Data decleration&lt;br /&gt;types: begin of s_function,&lt;br /&gt;fname like MOD0-FUNCNAME,&lt;br /&gt;ftext like tftit-stext,&lt;br /&gt;impl,&lt;br /&gt;active,&lt;br /&gt;example,&lt;br /&gt;end of s_function.&lt;br /&gt;TYPEs : BEGIN OF display_str,&lt;br /&gt;project type modact-name,&lt;br /&gt;enhancement type modact-member,&lt;br /&gt;fm type modsap-member,&lt;br /&gt;status type char20,&lt;br /&gt;END OF display_str.&lt;br /&gt;data : lt_member type table of modact-member,&lt;br /&gt;ls_member like LINE OF lt_member,&lt;br /&gt;lt_fm type table of modsap-member,&lt;br /&gt;ls_fm like LINE OF lt_fm,&lt;br /&gt;lt_modname type table of modact-name,&lt;br /&gt;ls_modname like line of lt_modname,&lt;br /&gt;lt_display type TABLE OF display_str,&lt;br /&gt;ls_display like LINE OF lt_display,&lt;br /&gt;ls_function type s_function,&lt;br /&gt;field1(30).&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;* Select active customer enhancement.&lt;br /&gt;select name from modattr into ls_modname&lt;br /&gt;where status = 'A'.&lt;br /&gt;append ls_modname to lt_modname.&lt;br /&gt;CLEAR ls_modname.&lt;br /&gt;ENDSELECT.&lt;br /&gt;if lt_modname is INITIAL.&lt;br /&gt;WRITE / 'no active enhancements'.&lt;br /&gt;endif.&lt;br /&gt;* Determine the details about the customer enhancement.&lt;br /&gt;LOOP AT lt_modname INTO ls_modname.&lt;br /&gt;CLEAR : ls_display.&lt;br /&gt;SELECT member from modact into ls_member where name = ls_modname.&lt;br /&gt;select member from modsap into ls_fm where name = ls_member and typ =&lt;br /&gt;'E'.&lt;br /&gt;ls_display-project = ls_modname.&lt;br /&gt;ls_display-enhancement = ls_member.&lt;br /&gt;ls_display-fm = ls_fm.&lt;br /&gt;clear : ls_function.&lt;br /&gt;ls_function-fname = ls_fm.&lt;br /&gt;perform get_impl_status USING ls_function.&lt;br /&gt;if ls_function-impl = 'X'.&lt;br /&gt;ls_display-status = 'Implemented'.&lt;br /&gt;ELSE.&lt;br /&gt;ls_display-status = 'Active'.&lt;br /&gt;endif.&lt;br /&gt;APPEND ls_display to lt_display.&lt;br /&gt;endselect.&lt;br /&gt;ENDSELECT.&lt;br /&gt;ENDLOOP.&lt;br /&gt;* Displaying results&lt;br /&gt;format color = 1.&lt;br /&gt;write : 'Please double-click on the object for follow-on action'.&lt;br /&gt;new-LINE. uline.&lt;br /&gt;write : 'Customer Project', at 30 'SAP Enhancement', at 60 'Exit&lt;br /&gt;Function Modul&lt;br /&gt;e', at 100 'Active/Implemented'.&lt;br /&gt;ULINE.&lt;br /&gt;format color = 0.&lt;br /&gt;loop at lt_display into ls_display.&lt;br /&gt;new-LINE.&lt;br /&gt;write : ls_display-project, at 30 ls_display-enhancement, at 60&lt;br /&gt;ls_displayfm,&lt;br /&gt;at 100 ls_display-status.&lt;br /&gt;ENDLOOP.&lt;br /&gt;* For calling transaction CMOD / SMOD / SE37.&lt;br /&gt;at line-selection.&lt;br /&gt;get cursor field field1.&lt;br /&gt;CASE field1.&lt;br /&gt;WHEN 'LS_DISPLAY-PROJECT'.&lt;br /&gt;set parameter id 'MON_KUN' field sy-lisel(10).&lt;br /&gt;call transaction 'CMOD' and skip first screen.&lt;br /&gt;WHEN 'LS_DISPLAY-ENHANCEMENT'.&lt;br /&gt;set parameter id 'MON' field sy-lisel+29(10).&lt;br /&gt;call transaction 'SMOD' and skip first screen.&lt;br /&gt;WHEN 'LS_DISPLAY-FM'.&lt;br /&gt;set parameter id 'LIB' field sy-lisel+59(30).&lt;br /&gt;call transaction 'SE37' and skip first screen.&lt;br /&gt;WHEN OTHERS.&lt;br /&gt;message 'Click on the right place.' TYPE 'I'.&lt;br /&gt;ENDCASE.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form get_impl_status&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* This FORM checks whether an EXIT FM is implemented or not&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form get_impl_status using p_function type s_function.&lt;br /&gt;data : l_mand LIKE tfdir-mand,&lt;br /&gt;l_incl_names TYPE smod_names OCCURS 1 WITH HEADER LINE.&lt;br /&gt;l_incl_names-itype = 'C'.&lt;br /&gt;APPEND l_incl_names.&lt;br /&gt;CLEAR l_mand.&lt;br /&gt;SELECT SINGLE mand FROM tfdir INTO l_mand WHERE funcname =&lt;br /&gt;p_function-fname.&lt;br /&gt;IF sy-subrc = 0 AND l_mand(1) = 'C'.&lt;br /&gt;p_function-active = 'X'.&lt;br /&gt;* l_status-active = c_true.&lt;br /&gt;ELSE.&lt;br /&gt;p_function-active = ' '.&lt;br /&gt;* l_status-inactive = c_true.&lt;br /&gt;ENDIF.&lt;br /&gt;CALL FUNCTION 'MOD_FUNCTION_INCLUDE'&lt;br /&gt;EXPORTING&lt;br /&gt;funcname = p_function-fname&lt;br /&gt;TABLES&lt;br /&gt;incl_names = l_incl_names&lt;br /&gt;EXCEPTIONS&lt;br /&gt;OTHERS = 4.&lt;br /&gt;IF sy-subrc = 0.&lt;br /&gt;LOOP AT l_incl_names.&lt;br /&gt;SELECT SINGLE name FROM trdir INTO l_incl_names-iname&lt;br /&gt;WHERE name = l_incl_names-iname.&lt;br /&gt;IF sy-subrc = 0.&lt;br /&gt;p_function-impl = 'X'.&lt;br /&gt;ELSE.&lt;br /&gt;p_function-impl = ' '.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDIF.&lt;br /&gt;endform. "get_impl_status&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-951556432460366431?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/951556432460366431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/951556432460366431'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/display-active-exits-in-abap-system.html' title='Display Active Exits in a ABAP System'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-3248443534045959232</id><published>2008-12-29T02:08:00.000-08:00</published><updated>2008-12-29T02:09:14.690-08:00</updated><title type='text'>List Of User Exit Related to VL01N</title><content type='html'>&lt;p&gt;&lt;b&gt;I need to some restriction in fields ( Actual GI Date, T-Code:Vl01n ).&lt;/b&gt;&lt;br /&gt;&lt;b&gt;How do you find out whcih user exits belongs to VL01n ?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Here is the list of user exit related to VL01N : &lt;/p&gt;&lt;p&gt;V02V0001   - Sales area determination for stock transport order &lt;br /&gt;V02V0002   - User exit for storage location determination &lt;br /&gt;V02V0003   - User exit for gate + matl staging area determination &lt;br /&gt;V02V0004   - User Exit for Staging Area Determination (Item) &lt;br /&gt;V50PSTAT  - Delivery: Item Status Calculation &lt;br /&gt;V50Q0001   - Delivery Monitor: User Exits for Filling Display Fields&lt;br /&gt;V50R0001    -  Collective processing for delivery creation &lt;br /&gt;V50R0002    - Collective processing for delivery creation &lt;br /&gt;V50R0004    - Calculation of Stock for POs for Shipping Due Date List&lt;br /&gt;V50S0001    - User Exits for Delivery Processing &lt;br /&gt;V53C0001    - Rough workload calculation in time per item &lt;br /&gt;V53C0002    - W&amp;amp;S: RWE enhancement - shipping material type/time slot&lt;br /&gt;V53W0001   - User exits for creating picking waves &lt;br /&gt;VMDE0001  - Shipping Interface: Error Handling - Inbound IDoc &lt;br /&gt;VMDE0002  - Shipping Interface: Message PICKSD (Picking, Outbound) &lt;br /&gt;VMDE0003  - Shipping Interface: Message SDPICK (Picking, Inbound) &lt;br /&gt;VMDE0004  - Shipping Interface: Message SDPACK (Packing, Inbound)  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-3248443534045959232?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3248443534045959232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/3248443534045959232'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/list-of-user-exit-related-to-vl01n.html' title='List Of User Exit Related to VL01N'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1996414040132970152</id><published>2008-12-29T02:06:00.002-08:00</published><updated>2008-12-29T02:07:55.673-08:00</updated><title type='text'>Difference Between BADI and User Exits</title><content type='html'>&lt;p&gt;Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.  &lt;/p&gt;&lt;p&gt;As with customer exits two different views are available: &lt;/p&gt;&lt;p&gt;In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.  &lt;/p&gt;&lt;p&gt;In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available. &lt;/p&gt;&lt;p&gt;In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, partner, and customer solutions, as well as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure. &lt;/p&gt;&lt;p&gt;SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR. &lt;/p&gt;&lt;p&gt;The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). &lt;/p&gt;&lt;p&gt;All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task. &lt;/p&gt;&lt;p&gt;The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects. &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is difference between badi and user-exists?&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What is difference between enhancements and user-exists? and what is the full form of BADI?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;I have another doubt in BDC IN BDC WE HAVE MSEGCALL (i did not remember the &gt; correct name) where the error logs are stored, MSEGCALL is a table or structure.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is the system landscape?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1) Difference between BADI and USER-EXIT.&lt;br /&gt;    i) BADI's can be used any number of times, where as USER-EXITS can be used only one time.&lt;br /&gt;       Ex:- if your assigning a USER-EXIT to a project in (CMOD), then you can not assign the same to other project.&lt;br /&gt;    ii) BADI's are oops based. &lt;/p&gt;2) About 'BDCMSGCOLL' it is a structure.  Used for finding error records.&lt;br /&gt;3) Full form of BADI 'Business addins'.&lt;br /&gt;3) System land scape will be depends on your project &lt;br /&gt;    Ex:- 'Development server'--&gt;'Quality server'---&gt; 'Production server'.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1996414040132970152?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1996414040132970152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1996414040132970152'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/difference-between-badi-and-user-exits.html' title='Difference Between BADI and User Exits'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4503775854112021725</id><published>2008-12-29T02:06:00.001-08:00</published><updated>2008-12-29T02:06:44.114-08:00</updated><title type='text'>Finding the user-exits of a SAP transaction code</title><content type='html'>&lt;pre&gt; Finding the user-exits of a SAP transaction code&lt;br /&gt;*&lt;br /&gt;* Enter the transaction code in which you are looking for the user-exit&lt;br /&gt;* and it will list you the list of user-exits in the transaction code.&lt;br /&gt;* Also a drill down is possible which will help you to branch to SMOD.&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;br /&gt;&lt;br /&gt;report zuserexit no standard page heading.&lt;br /&gt;tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.&lt;br /&gt;         tables : tstct.&lt;br /&gt;data : jtab like tadir occurs 0 with header line.&lt;br /&gt;data : field1(30).&lt;br /&gt;data : v_devclass like tadir-devclass.&lt;br /&gt;parameters : p_tcode like tstc-tcode obligatory.&lt;br /&gt;&lt;br /&gt;select single * from tstc where tcode eq p_tcode.&lt;br /&gt;if sy-subrc eq 0.&lt;br /&gt;   select single * from tadir where pgmid = 'R3TR'&lt;br /&gt;                    and object = 'PROG'&lt;br /&gt;                    and obj_name = tstc-pgmna.&lt;br /&gt;   move : tadir-devclass to v_devclass.&lt;br /&gt;      if sy-subrc ne 0.&lt;br /&gt;         select single * from trdir where name = tstc-pgmna.&lt;br /&gt;         if trdir-subc eq 'F'.&lt;br /&gt;            select single * from tfdir where pname = tstc-pgmna.&lt;br /&gt;            select single * from enlfdir where funcname =&lt;br /&gt;            tfdir-funcname.&lt;br /&gt;            select single * from tadir where pgmid = 'R3TR'&lt;br /&gt;                               and object = 'FUGR'&lt;br /&gt;                               and obj_name eq enlfdir-area.&lt;br /&gt;&lt;br /&gt;            move : tadir-devclass to v_devclass.&lt;br /&gt;          endif.&lt;br /&gt;       endif.&lt;br /&gt;       select * from tadir into table jtab&lt;br /&gt;                     where pgmid = 'R3TR'&lt;br /&gt;                       and object = 'SMOD'&lt;br /&gt;                       and devclass = v_devclass.&lt;br /&gt;        select single * from tstct where sprsl eq sy-langu and&lt;br /&gt;                                         tcode eq p_tcode.&lt;br /&gt;        format color col_positive intensified off.&lt;br /&gt;        write:/(19) 'Transaction Code - ',&lt;br /&gt;             20(20) p_tcode,&lt;br /&gt;             45(50) tstct-ttext.&lt;br /&gt;                    skip.&lt;br /&gt;        if not jtab[] is initial.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           format color col_heading intensified on.&lt;br /&gt;           write:/1 sy-vline,&lt;br /&gt;                  2 'Exit Name',&lt;br /&gt;                 21 sy-vline ,&lt;br /&gt;                 22 'Description',&lt;br /&gt;                 95 sy-vline.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           loop at jtab.&lt;br /&gt;              select single * from modsapt&lt;br /&gt;                     where sprsl = sy-langu and&lt;br /&gt;                            name = jtab-obj_name.&lt;br /&gt;                   format color col_normal intensified off.&lt;br /&gt;                   write:/1 sy-vline,&lt;br /&gt;                          2 jtab-obj_name hotspot on,&lt;br /&gt;                         21 sy-vline ,&lt;br /&gt;                         22 modsapt-modtext,&lt;br /&gt;                         95 sy-vline.&lt;br /&gt;           endloop.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           describe table jtab.&lt;br /&gt;           skip.&lt;br /&gt;           format color col_total intensified on.&lt;br /&gt;           write:/ 'No of Exits:' , sy-tfill.&lt;br /&gt;        else.&lt;br /&gt;           format color col_negative intensified on.&lt;br /&gt;           write:/(95) 'No User Exit exists'.&lt;br /&gt;        endif.&lt;br /&gt;      else.&lt;br /&gt;          format color col_negative intensified on.&lt;br /&gt;          write:/(95) 'Transaction Code Does Not Exist'.&lt;br /&gt;      endif.&lt;br /&gt;&lt;br /&gt;at line-selection.&lt;br /&gt;   get cursor field field1.&lt;br /&gt;   check field1(4) eq 'JTAB'.&lt;br /&gt;   set parameter id 'MON' field sy-lisel+1(10).&lt;br /&gt;   call transaction 'SMOD' and skip first   screen.&lt;br /&gt;&lt;br /&gt;*---End of Program&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4503775854112021725?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4503775854112021725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4503775854112021725'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/finding-user-exits-of-sap-transaction.html' title='Finding the user-exits of a SAP transaction code'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1536120949789084072</id><published>2008-12-29T02:05:00.001-08:00</published><updated>2008-12-29T02:05:57.679-08:00</updated><title type='text'>Field exits (SMOD/CMOD) Questions and Answers</title><content type='html'>&lt;p&gt;1. Field exit was created with &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt;, but is not processed when calling the screen. &lt;/p&gt;&lt;p&gt;-  Since the field exit is not processed until PAI, an action must be triggered on the screen (Return, Save, ...). &lt;/p&gt;&lt;p&gt;-  Set profile parameter abap/fieldexit to YES and restart the system. &lt;/p&gt;&lt;p&gt;-  After activating the function module FIELD_EXIT... and the field exit, leave the transaction on whose screen the field exit is to be executed. The screen is not generated until the transaction is started. &lt;/p&gt;&lt;p&gt;- Do not work on different application servers since there may be some delay before the field exit is activated. &lt;/p&gt;&lt;p&gt;- The profile parameter must be set on all or none of the application servers. &lt;/p&gt;&lt;p&gt;- If the field exit is to only be active on specific screens, check whether you chose the correct program and the correct screen&lt;br /&gt;      number (take care with subscreens). &lt;/p&gt;&lt;p&gt;- Using &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SE51 -&gt; Field list&lt;/span&gt;&lt;/b&gt;, check that the screen field does have a reference to a data element. In the name of the field exit use the name of the data element and not the field name. &lt;/p&gt;&lt;p&gt;- After transport, field exits are marked as active but will not be processed. &lt;br /&gt;   Tip: First try deactivating the field exit once more and then afterwards, activate it again. &lt;/p&gt;&lt;p&gt;2. How is performance affected by setting abap/fieldexit? &lt;/p&gt;&lt;p&gt;- If a screen is generated and the profile parameter is set, a check is run on 2 tables (TDDIR, TDDIRS) to see whether a field exit must be generated for the respective field. In practice, the screen load is not generated until the screen is selected after an&lt;br /&gt;update. The user should not notice any difference because screen generation is very fast. &lt;/p&gt;&lt;p&gt;3. Can you read the contents of other screen fields in the field exit? &lt;/p&gt;&lt;p&gt;- In principle, every field exit can store its value in the global variables of the function group (TOP) and hence make them&lt;br /&gt;available to other field exits. Note here that field exits are always called and not only if an entry is made in the field or if the field is empty. In addition, it is not possible to make any assumptions about the order in which the field exits will be called in the future. &lt;/p&gt;&lt;p&gt;4. How does the field exit behave on step loop fields ? &lt;/p&gt;&lt;p&gt;- After the user has entered data, the field exit is called in PAI as often as there are visible fields in the step loop. The system&lt;br /&gt;variable SY-STEPL is incremented each time. If a new value is assigned to the field, it is displayed in the module between LOOP and ENDLOOP. This module is also called once for each visible step loop line. &lt;/p&gt;&lt;p&gt;5. Can field exits be debugged ? &lt;/p&gt;&lt;p&gt;- No. Field exits must be tested separately in the ABAP/4 Development Workbench. For errors which only occur in the screen environment, it is helpful to write interesting variable to the file system using TRANSFER... . These can then be analysed there. &lt;/p&gt;&lt;p&gt;6. What can you do if the field contents are no longer transported to to ABAP/4. &lt;/p&gt;&lt;p&gt;- Check whether a value is assigned to the field OUTPUT. &lt;/p&gt;&lt;p&gt;7. When is the field exit called if a conversion exit is attached to the&lt;br /&gt;   data element ? &lt;/p&gt;&lt;p&gt;- The field exit is called after the conversion exit. This means that the INPUT field receives the data in the same format as the&lt;br /&gt;ABAP/4 program also receives it. &lt;/p&gt;&lt;p&gt;8. Although a global field exit is inactive, a function module is called which does not exist (for example FIELD_EXIT_PROGRAMM_@) &lt;/p&gt;&lt;p&gt;- This is an error in the kernel which no longer occurs as of 3.0C.  As a temporary measure, it is useful to assign a program and a screen which do not exist to the field exit and then activate the field exit. &lt;/p&gt;&lt;p&gt;9. Field exit is not visible in &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt;, although created. &lt;/p&gt;&lt;p&gt;- If you want to create a field exit for a data element, a function module is proposed with the name FIELD_EXIT_. This&lt;br /&gt;function module must exist for the field exit to work. If you do not create this function module, but do create one with a suffix,&lt;br /&gt;the data element is not displayed in CMOD. &lt;/p&gt;&lt;p&gt;10. Field exit is not executed although it is active. &lt;/p&gt;&lt;p&gt;-  Fields which do not have the 'Input field' attribute usually do not trigger a field exit. The field exit is designed to allow an&lt;br /&gt;extended input check. It is therefore only called for input fields - even if they are not ready for input at runtime of the         application by LOOP AT SCREEN.&lt;br /&gt;This rule does not apply, however, if the field is located within a steploop. Here the field will be always activated, even if it is&lt;br /&gt;invisible. &lt;/p&gt;&lt;p&gt;- Field exits can only be executed for fields that are directly related tothe dictionary. If the relation is indirect, i.e. via an       ABAP declaration (  LIKE ), no field exit can be executed. &lt;/p&gt;&lt;p&gt;11. Field exits on check buttons do not work &lt;/p&gt;&lt;p&gt;-  Field exits are only intended for input fields. As check buttons count as graphical elements, you cannot install field exits on&lt;br /&gt;them. &lt;/p&gt;&lt;p&gt;12. Field exits do not work on selection screens &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#009900;"&gt;Fast Links:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;User Exit Tutorial&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm" target="_top"&gt;A Short Tutorial on User Exits&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Get help for your ABAP problems&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/abap/abap-question.htm" target="_top"&gt;Do you have a ABAP Question?&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;SAP Books&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/sap-books.htm" target="_top"&gt;SAP Certification, Functional, Basis Administration and ABAP Programming Reference Books&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;ABAP Tips&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/abap.htm" target="_top"&gt;ABAP Forum for Discussion and Samples Program Codes for Abapers&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1536120949789084072?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1536120949789084072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1536120949789084072'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/field-exits-smodcmod-questions-and.html' title='Field exits (SMOD/CMOD) Questions and Answers'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1983940029227109823</id><published>2008-12-29T02:04:00.001-08:00</published><updated>2008-12-29T02:04:58.722-08:00</updated><title type='text'>What is the difference between SMOD and CMOD?</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt; is the Project Management of SAP Enhancements (i.e., &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SMOD&lt;/span&gt;&lt;/b&gt; Enhancements). &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SMOD&lt;/span&gt;&lt;/b&gt; contains the actual enhancements and &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt; is the grouping of those &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SMOD&lt;/span&gt;&lt;/b&gt; enhancements.  &lt;/p&gt;&lt;p&gt;User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.  &lt;/p&gt;&lt;p&gt;The naming standard of function modules for function module exits is: &lt;br /&gt;EXIT_&lt;program&gt;&lt;3&gt;  &lt;/p&gt;&lt;p&gt;The call to a functionmodule exit is implemented as: &lt;br /&gt;CALL CUSTOMER.-FUNCTION &lt;3&gt;  &lt;/p&gt;&lt;p&gt;For Example:  &lt;/p&gt;&lt;p&gt;The program for transaction &lt;b&gt;&lt;span style="color:#cc6600;"&gt;VA01&lt;/span&gt;&lt;/b&gt; Create salesorder is &lt;b&gt;&lt;span style="color:#cc6600;"&gt;SAPMV45A&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. If you search for CALL CUSTOMER-FUNCTION program SAPMV45A you will find ( Among other user exits):  &lt;/p&gt;&lt;p&gt;CALL CUSTOMER-FUNCTION '003'&lt;br /&gt;  exporting&lt;br /&gt;    xvbak   = vbak&lt;br /&gt;    xvbuk   = vbuk&lt;br /&gt;    xkomk   = tkomk&lt;br /&gt;  importing&lt;br /&gt;    lvf_subrc = lvf_subrc&lt;br /&gt;  tables&lt;br /&gt;    xvbfa = xvbfa&lt;br /&gt;    xvbap = xvbap&lt;br /&gt;    xvbup = xvbup.  &lt;/p&gt;&lt;p&gt;The exit calls function module EXIT_SAPMV45A_003  &lt;/p&gt;&lt;p&gt;2. How to find user exits  &lt;/p&gt;&lt;p&gt;Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT  &lt;/p&gt;&lt;p&gt;If you know the Exit name, go to transaction &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt;. Choose menu &lt;b&gt;&lt;span style="color:#cc6600;"&gt;Utillities-&gt;SAP Enhancements&lt;/span&gt;&lt;/b&gt;.  &lt;/p&gt;&lt;p&gt;Enter the exit name and press enter.  &lt;/p&gt;&lt;p&gt;You will now come to a screen that shows the function module exits for the exit.  &lt;/p&gt;&lt;p&gt;or use this ABAP program to search for user exits :- &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sap-img.com/ab038.htm" target="_top"&gt;Finding the user-exits of a SAP transaction code&lt;/a&gt; &lt;/p&gt;&lt;p&gt;3. Using Project management of SAP Enhancements  &lt;/p&gt;&lt;p&gt;You want to create a project to enhance transaction &lt;b&gt;&lt;span style="color:#cc6600;"&gt;VA01&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;- Go to transaction &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;- Create a project called &lt;b&gt;&lt;span style="color:#cc6600;"&gt;ZVA01&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;- Choose the Enhancement assign radio button and press the Change button&lt;br /&gt;In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only be used for 1 project. If the enhancement is allready in use, and error message will be displayed&lt;br /&gt;- Press Save&lt;br /&gt;- Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. &lt;br /&gt;- Double Click on the exit.&lt;br /&gt;Now the function module is displayed. Double click on include ZXVVAU04 in the function module&lt;br /&gt;Insert the following code into the include: E_KUNNR = '2155'.  &lt;/p&gt;&lt;p&gt;Activate the include program. Go back to &lt;b&gt;&lt;span style="color:#cc6600;"&gt;CMOD&lt;/span&gt;&lt;/b&gt; and activate the project. &lt;br /&gt;Goto transaction &lt;b&gt;&lt;span style="color:#cc6600;"&gt;VA01&lt;/span&gt;&lt;/b&gt; and create a salesorder. Note that Sold-to-party now automatically is "2155"  &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sap-img.com/abap/abap-question.htm" target="_top"&gt;Do you have a ABAP Question?&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1983940029227109823?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1983940029227109823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1983940029227109823'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/what-is-difference-between-smod-and.html' title='What is the difference between SMOD and CMOD?'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2686584715378695637</id><published>2008-12-29T02:02:00.000-08:00</published><updated>2008-12-29T02:03:56.121-08:00</updated><title type='text'>What is User Exits and Customer Exits?</title><content type='html'>&lt;p&gt;&lt;b&gt;Difference between user exits &amp;amp; customer exits:&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;User exit &lt;/b&gt;- A user exit is a three character code that instructs the system to access a program during system processing. &lt;/p&gt;&lt;p&gt;SXX: S is for standard exits that are delivered by SAP.   XX represents the 2-digit exit number. &lt;/p&gt;&lt;p&gt;UXX: U is for user exits that are defined by the user.  XX represents the 2-digit exit number &lt;/p&gt;&lt;p&gt;&lt;b&gt;Customer exit&lt;/b&gt; - The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.     &lt;b&gt;*-- Mani&lt;/b&gt;&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;The following document is about exits in SAP :- &lt;/p&gt;&lt;p&gt;The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications.  &lt;/p&gt;&lt;p&gt;SAP creates user exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Types of Exits &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;There are several different types of user exits. Each of these exits acts as hooks where you can attach or "hang" your own add-ons. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Menu Exits&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Menu exits add items to the pulldown menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications. &lt;/p&gt;&lt;p&gt;SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with "+" (a plus sign). You specify the menu item’s text when activating the item in an add-on project. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Screen Exits&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screen’s flow logic. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Function Module Exits &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Function module exits add functions to R/3 applications. Function module exits play a role in both menu and screen exits.  &lt;/p&gt;&lt;p&gt;When you add a new menu item to a standard pull down menu, you use a function module exit to define the actions that should take place once your menu is activated.  &lt;/p&gt;&lt;p&gt;Function module exits also control the data flow between standard programs and screen exit fields. SAP application developers create function module exits by writing calls to customer functions into the source code of standard R/3 programs.  &lt;/p&gt;&lt;p&gt;These calls have the following syntax:  &lt;/p&gt;&lt;p&gt;CALL CUSTOMER-FUNCTION ‘001’. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Field Exits&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field.  Example: The data element BBBNR identifies a company’s international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100.  &lt;/p&gt;&lt;p&gt;The field exit concept lets you create a special function module that contains this logic.  &lt;/p&gt;&lt;p&gt;You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.  &lt;/p&gt;&lt;p&gt;In 4.6c, you can use "&lt;b&gt;&lt;span style="color:#cc6600;"&gt;RSMODPRF&lt;/span&gt;&lt;/b&gt;" program to create field exits. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;An example of a user exits :-&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;MODULE user_exit_0001 INPUT &lt;br /&gt;    CASE okcode.&lt;br /&gt;        WHEN 'BACK OR EXIT'.&lt;br /&gt;            CASE sy-dynnr.&lt;br /&gt;                    WHEN '100'.&lt;br /&gt;                         SET SCREEN 0.&lt;br /&gt;                         LEAVE SCREEN.&lt;br /&gt;                    WHEN '200'.&lt;br /&gt;******************************************************************************&lt;br /&gt;**** Note that you can write any code that satisfy your needs.                                                     ****&lt;br /&gt;**** But in this case, this was wrote as a sample code for reference sake.                                    ****&lt;br /&gt;**** And you can test it.                                                                                                             ****&lt;br /&gt;****************************************************************************** &lt;br /&gt;                         SET SCREEN 100.&lt;br /&gt;                         LEAVE SCREEN.&lt;br /&gt;             ENDCASE.&lt;br /&gt;      ENDCASE.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2686584715378695637?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2686584715378695637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2686584715378695637'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/what-is-user-exits-and-customer-exits.html' title='What is User Exits and Customer Exits?'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1482441683400224903</id><published>2008-12-29T02:00:00.000-08:00</published><updated>2008-12-29T02:02:06.257-08:00</updated><title type='text'>A Short Tutorial on User Exits</title><content type='html'>&lt;p&gt;&lt;b&gt;Content Author:&lt;/b&gt; &lt;b&gt;Abhishek&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;User exits :&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;1. Introduction&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. How to find user exits&lt;/b&gt;&lt;br /&gt;&lt;b&gt;3. Using Project management of SAP Enhancements &lt;/b&gt; &lt;/p&gt;&lt;p&gt;1. Introduction: &lt;/p&gt;&lt;p&gt;User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module. &lt;/p&gt;&lt;p&gt;The naming standard of function modules for functionmodule exits is: &lt;br /&gt;EXIT_&lt;program&gt;&lt;3&gt;  &lt;/p&gt;&lt;p&gt;The call to a functionmodule exit is implemented as:&lt;br /&gt;CALL CUSTOMER.-FUNCTION &lt;3&gt; &lt;/p&gt;&lt;p&gt;Example: &lt;/p&gt;&lt;p&gt;The program for transaction VA01 Create salesorder is SAPMV45A &lt;/p&gt;&lt;p&gt;If you search for CALL CUSTOMER-FUNCTION i program&lt;br /&gt;SAPMV45A you will find ( Among other user exits): &lt;/p&gt;&lt;p&gt;CALL CUSTOMER-FUNCTION '003'&lt;br /&gt;  exporting&lt;br /&gt;    xvbak   = vbak&lt;br /&gt;    xvbuk   = vbuk&lt;br /&gt;    xkomk   = tkomk&lt;br /&gt;  importing&lt;br /&gt;    lvf_subrc = lvf_subrc&lt;br /&gt;  tables&lt;br /&gt;    xvbfa = xvbfa&lt;br /&gt;    xvbap = xvbap&lt;br /&gt;    xvbup = xvbup. &lt;/p&gt;&lt;p&gt;The exit calls function module EXIT_SAPMV45A_003 &lt;/p&gt;&lt;p&gt;2. How to find user exits? &lt;/p&gt;&lt;p&gt;Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT &lt;/p&gt;&lt;p&gt;If you know the Exit name, go to transaction CMOD. &lt;/p&gt;&lt;p&gt;Choose menu Utillities-&gt;SAP Enhancements. Enter the exit name and press enter. &lt;/p&gt;&lt;p&gt;You will now come to a screen that shows the function module exits for the exit. &lt;/p&gt;&lt;p&gt;3. Using Project management of SAP Enhancements, we want to create a project to enahance trasnaction VA01 . &lt;/p&gt;&lt;p&gt;- Go to transaction CMOD&lt;br /&gt;- Create a project called ZVA01&lt;br /&gt;- Choose the Enhancement assign radio button and press the Change button &lt;/p&gt;&lt;p&gt;In the first column enter V45A0002 Predefine sold-to party in sales document.  &lt;/p&gt;&lt;p&gt;Note that an enhancement can only be used in 1 project. If the enhancement is already in use, and error message will be displayed &lt;/p&gt;&lt;p&gt;Press Save &lt;/p&gt;&lt;p&gt;Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit. &lt;/p&gt;&lt;p&gt;Now the function module is displayed. Double click on include ZXVVAU04 in the function module &lt;/p&gt;&lt;p&gt;Insert the following code into the include: E_KUNNR = '2155'. &lt;/p&gt;&lt;p&gt;Activate the include program. Go back to CMOD and activate the project.  &lt;/p&gt;&lt;p&gt;Goto transaction VA01 and craete a salesorder.  &lt;/p&gt;&lt;p&gt;Note that Sold-to-party now automatically is "2155" &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1482441683400224903?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1482441683400224903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1482441683400224903'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/short-tutorial-on-user-exits.html' title='A Short Tutorial on User Exits'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-7507536383931003830</id><published>2008-12-29T01:59:00.000-08:00</published><updated>2008-12-29T02:00:41.436-08:00</updated><title type='text'>Create Push Buttons in Application Tool Bar</title><content type='html'>&lt;p&gt;&lt;b&gt;How to create pushbuttons in application tool bar in case of selection-screen?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;REPORT  zsiva_test&lt;br /&gt;MESSAGE-ID zprecot.&lt;br /&gt;TABLES : afru. &lt;/p&gt;&lt;p&gt;TYPES : BEGIN OF ty_test,&lt;br /&gt;        ism01 LIKE afru-ism01,&lt;br /&gt;        END OF ty_test.&lt;br /&gt;TABLES sscrfields. &lt;/p&gt;&lt;p&gt;SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. &lt;br /&gt;SELECT-OPTIONS : so_werks FOR afru-werks. &lt;br /&gt;SELECTION-SCREEN PUSHBUTTON /79(10) charly USER-COMMAND abcd. &lt;br /&gt;SELECTION-SCREEN END OF BLOCK b1. &lt;/p&gt;&lt;p&gt;INITIALIZATION.&lt;br /&gt;  MOVE 'Press' TO charly. &lt;/p&gt;&lt;p&gt;START-OF-SELECTION. &lt;/p&gt;&lt;p&gt;END-OF-SELECTION.&lt;br /&gt;  &lt;/p&gt;AT SELECTION-SCREEN.&lt;br /&gt;  IF sscrfields-ucomm = 'ABCD'.&lt;br /&gt;    MESSAGE i000 WITH so_werks-low 'Success' .&lt;br /&gt;  ENDIF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-7507536383931003830?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7507536383931003830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/7507536383931003830'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/create-push-buttons-in-application-tool.html' title='Create Push Buttons in Application Tool Bar'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6088876794538065711</id><published>2008-12-29T01:57:00.000-08:00</published><updated>2008-12-29T01:59:40.785-08:00</updated><title type='text'>ABAP Clipboard Utilities for Beautiful Commented Code</title><content type='html'>&lt;pre&gt;&lt;span style="color:#000000;"&gt; Any fool can write code that a computer can understand.&lt;br /&gt;  Good programmers write code that humans can understand. "&lt;br /&gt;  --- Martin Fowler, Refactoring: Improving the Design of Existing Code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ABAP pretty printer is good for code but not supportive for data declarations.&lt;br /&gt;As a result ABAP code often tends to need more labour to maintain.&lt;br /&gt;&lt;br /&gt;I therefore wrote 3 Clipboard utilities&lt;br /&gt;&lt;br /&gt;1. YClipJNC based on&lt;br /&gt;   http://sap.ionelburlacu.ro/abap/sap2/Beautify_Source_Code.html&lt;br /&gt;   but improved to include table~column half-line commenting.&lt;br /&gt;   Take any ABAP code (should have survived syntax check) including that "." DOT terminator.&lt;br /&gt;   Copy to Clipboard &amp;amp; F8 on YClipJNC will create the beautiful version in clipboard&lt;br /&gt;   ready for pasting back.&lt;br /&gt;&lt;br /&gt;   The big advantage is that you can send for beautification only portions of code&lt;br /&gt;   - this is vital in maintaining someone else's badly written code.&lt;br /&gt;&lt;br /&gt;2. YClip2JNC is for Internal Table declarations only, with existing comments&lt;br /&gt;   Aligns everything nicely.&lt;br /&gt;&lt;br /&gt;3. YClip3JNC is to create a Commented CALL FUNCTION Pattern.&lt;br /&gt;   Try with "CS_BOM_EXPL_MAT_V2"&lt;br /&gt;   The pattern is ready in clipboard for pasting appropriately.&lt;br /&gt;&lt;br /&gt;These 3 utilities should give a big boost to good clean commented ABAP&lt;br /&gt;code.&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;     Beautify ABAP Code Via Clip                                    &lt;br /&gt;*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* based on ideas from&lt;br /&gt;* http://sap.ionelburlacu.ro/abap/sap2/Beautify_Source_Code.html&lt;br /&gt;&lt;br /&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;* This program takes ABAP code in ClipBoard, and does the following:&lt;br /&gt;*    - Attempts to move comments to the end of the line&lt;br /&gt;*    - Adds comments (table name) for the tables listed after a TABLES&lt;br /&gt;*      statement if the line has not been commented already.&lt;br /&gt;*    - Adds comments (field name) for data elements, parameters, and&lt;br /&gt;*      select-options that are defined using the LIKE or FOR statement&lt;br /&gt;*    - For ENDLOOP/ENDSELECT adds comment identify the LOOP/SELECT&lt;br /&gt;*      that is being closed&lt;br /&gt;*    - For FORM/ENDFORM adds comment identify the FORM that is being&lt;br /&gt;*      closed&lt;br /&gt;*    - Calls function PRETTY_PRINTER to do the SAP standard pretty print&lt;br /&gt;*      after the custom comments have been created&lt;br /&gt;* Returns Modified Code Via ClipBoard&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;REPORT  yclipjnc.          .&lt;br /&gt;&lt;br /&gt;TABLES:&lt;br /&gt;   e071 ,      " Change &amp;amp; Transport System: Object Entries of&lt;br /&gt;Requests/Tasks&lt;br /&gt;   tadir ,     " Directory of Repository Objects&lt;br /&gt;   trdir ,     " Generated Table for View TRDIR&lt;br /&gt;   dd02t .     " R/3 DD: SAP table texts&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_old_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_old_prog.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_new_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_new_prog.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_jnc_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_jnc_prog.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;* Hold an entire statement, even if it spans multiple lines&lt;br /&gt;  BEGIN OF mtab_long_line OCCURS 0,&lt;br /&gt;    start        TYPE i,&lt;br /&gt;    end          TYPE i,&lt;br /&gt;    code(9999)   TYPE c, "For type "C", a maximum length specification of 65535 is allowed.&lt;br /&gt;  END OF mtab_long_line.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_tabname OCCURS 0,&lt;br /&gt;        tabname LIKE dd02t-tabname,    " Table name&lt;br /&gt;        tabdesc LIKE dd02t-ddtext,     " Short text describing ABAP/4&lt;br /&gt;Dictio&lt;br /&gt;      END OF mtab_tabname.&lt;br /&gt;&lt;br /&gt;* Queue to hold list of internal table names for commenting the ENDLOOP&lt;br /&gt;* line&lt;br /&gt;DATA: BEGIN OF mtab_itab_names OCCURS 0,&lt;br /&gt;        tabname(40) TYPE c,&lt;br /&gt;      END OF mtab_itab_names.&lt;br /&gt;&lt;br /&gt;* Queue to hold list of table names for commenting the ENDSELECT line&lt;br /&gt;DATA: BEGIN OF mtab_tab_names OCCURS 0,&lt;br /&gt;        tabname(40) TYPE c,&lt;br /&gt;      END OF mtab_tab_names.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_form_names OCCURS 0,&lt;br /&gt;        tabname(40) TYPE c,&lt;br /&gt;      END OF mtab_form_names.&lt;br /&gt;&lt;br /&gt;DATA: mylength TYPE i,&lt;br /&gt;      myrc     TYPE i.&lt;br /&gt;&lt;br /&gt;CONSTANTS: myhats(40) VALUE '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'.&lt;br /&gt;&lt;br /&gt;* START of EXECUTION&lt;br /&gt;&lt;br /&gt;* Read the program code in ClipBoard into an internal table&lt;br /&gt;CALL METHOD cl_gui_frontend_services=&gt;clipboard_import&lt;br /&gt;  IMPORTING&lt;br /&gt;    data   = mtab_old_prog[]&lt;br /&gt;    length = mylength.&lt;br /&gt;&lt;br /&gt;IF sy-subrc NE 0.&lt;br /&gt;  WRITE: / `Unable to read ClipBoard`.&lt;br /&gt;  WRITE: / `Exiting program`.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;PERFORM create_condensed_table TABLES mtab_old_prog mtab_long_line.&lt;br /&gt;&lt;br /&gt;PERFORM format_program.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION `PRETTY_PRINTER`&lt;br /&gt;  EXPORTING&lt;br /&gt;    inctoo             = space&lt;br /&gt;  TABLES&lt;br /&gt;    ntext              = mtab_jnc_prog&lt;br /&gt;    otext              = mtab_new_prog&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    enqueue_table_full = 1&lt;br /&gt;    include_enqueued   = 2&lt;br /&gt;    include_readerror  = 3&lt;br /&gt;    include_writeerror = 4&lt;br /&gt;    OTHERS             = 5.&lt;br /&gt;&lt;br /&gt;* Write the beautiful program code to ClipBoard from internal table&lt;br /&gt;CALL METHOD cl_gui_frontend_services=&gt;clipboard_export&lt;br /&gt;  IMPORTING&lt;br /&gt;    data = mtab_jnc_prog[]&lt;br /&gt;  CHANGING&lt;br /&gt;    rc   = myrc.&lt;br /&gt;&lt;br /&gt;LOOP AT mtab_jnc_prog.&lt;br /&gt;  IF mtab_jnc_prog = space.&lt;br /&gt;    SKIP 1.&lt;br /&gt;  ENDIF.&lt;br /&gt;  WRITE: / mtab_jnc_prog.&lt;br /&gt;ENDLOOP.         " LOOP AT MTAB_JNC_PROG&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM CREATE_CONDENSED_TABLE               *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       Create a table that has all statements condensed onto 1 line  *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM create_condensed_table&lt;br /&gt;     TABLES ftab_old_prog STRUCTURE mtab_old_prog&lt;br /&gt;            ftab_long_line STRUCTURE mtab_long_line.&lt;br /&gt;&lt;br /&gt;  DATA:&lt;br /&gt;* Structure to hold program code/comment&lt;br /&gt;    BEGIN OF fstr_line,&lt;br /&gt;      code(172)    TYPE c,              " Program Code&lt;br /&gt;      comment(172) TYPE c,              " Inline comments&lt;br /&gt;     END OF fstr_line.&lt;br /&gt;&lt;br /&gt;  LOOP AT ftab_old_prog.&lt;br /&gt;&lt;br /&gt;    IF ftab_long_line-start = 0.&lt;br /&gt;      ftab_long_line-start = ftab_long_line-end + 1.&lt;br /&gt;      CLEAR ftab_long_line-end.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;*   Strip off any inline comments so they do not get in the way&lt;br /&gt;*   If comments are not separated, then words in the comments could&lt;br /&gt;*   look like keywords, and cause problems&lt;br /&gt;    SPLIT ftab_old_prog-line AT `"` INTO fstr_line-code fstr_line-comment.&lt;br /&gt;&lt;br /&gt;*   Align all statements to be left justified&lt;br /&gt;    SHIFT fstr_line-code LEFT DELETING LEADING space.&lt;br /&gt;&lt;br /&gt;*   Put all lines that make up a single statement into one field&lt;br /&gt;*   This will make it easier to isolate key words.  For example, if you&lt;br /&gt;*   want to process a TABLES statement, but exclude the TABLES part of a&lt;br /&gt;*   function call, or a subroutine call.&lt;br /&gt;    CONCATENATE ftab_long_line-code  fstr_line-code&lt;br /&gt;                INTO ftab_long_line-code SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;    IF fstr_line-code   CA `.`   OR    " Period means end of statement&lt;br /&gt;       fstr_line-code(1) = `*` OR      " Comment Line&lt;br /&gt;       fstr_line-code   CO space.      " Blank Line&lt;br /&gt;*     Keep track of the table index that the statement ends on&lt;br /&gt;      ftab_long_line-end = sy-tabix.&lt;br /&gt;*     Remove delimiter from concatenation of fields&lt;br /&gt;      SHIFT ftab_long_line-code LEFT BY 1 PLACES.&lt;br /&gt;&lt;br /&gt;      APPEND ftab_long_line.&lt;br /&gt;&lt;br /&gt;      CLEAR: ftab_long_line-code, ftab_long_line-start.&lt;br /&gt;&lt;br /&gt;*     Don`t clear out fstr_long_line-end yet.  It is used to calc&lt;br /&gt;*     fstr_long_line-start.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.         " LOOP AT FTAB_OLD_PROG&lt;br /&gt;ENDFORM.    " FORM CREATE_CONDENSED_TABLE&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM FORMAT_PROGRAM                                           *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM format_program.&lt;br /&gt;&lt;br /&gt;  DATA: lstr_old_prog LIKE LINE OF mtab_old_prog.&lt;br /&gt;&lt;br /&gt;  LOOP AT mtab_long_line.&lt;br /&gt;&lt;br /&gt;    TRANSLATE mtab_long_line-code TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;    IF mtab_long_line-code(1) EQ `*`.  " Do not modify Comment Lines&lt;br /&gt;&lt;br /&gt;      LOOP AT mtab_old_prog FROM mtab_long_line-start&lt;br /&gt;                            TO   mtab_long_line-end.&lt;br /&gt;&lt;br /&gt;        mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;&lt;br /&gt;        APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.     " LOOP AT MTAB_OLD_PROG&lt;br /&gt;&lt;br /&gt;    ELSEIF mtab_long_line-code(6) EQ `TABLES`.&lt;br /&gt;&lt;br /&gt;*     Reformat any TABLES statements.  Will only reformat when TABLES&lt;br /&gt;*     is at the start of the statement.  Will not try to get table&lt;br /&gt;*     descriptions for CALL FUNCTIONS or FORM/PERFORMs&lt;br /&gt;&lt;br /&gt;*     Get the table names from mstr_long_line.&lt;br /&gt;      PERFORM get_table_names_from_statement TABLES mtab_tabname&lt;br /&gt;                                             USING mtab_long_line-code.&lt;br /&gt;*     Find the descriptions for each table&lt;br /&gt;      PERFORM get_table_descriptions TABLES mtab_tabname.&lt;br /&gt;&lt;br /&gt;*     create the new statement&lt;br /&gt;      PERFORM build_new_tables_statement USING mtab_long_line.&lt;br /&gt;&lt;br /&gt;    ELSE. " All other modifications to the code handled here&lt;br /&gt;&lt;br /&gt;      LOOP AT mtab_old_prog FROM mtab_long_line-start&lt;br /&gt;                            TO   mtab_long_line-end.&lt;br /&gt;&lt;br /&gt;*       Remove extra spaces from line for comparisons&lt;br /&gt;        lstr_old_prog-line = mtab_old_prog-line.&lt;br /&gt;        CONDENSE lstr_old_prog-line.&lt;br /&gt;        TRANSLATE lstr_old_prog-line TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;        IF lstr_old_prog-line CS `"`.  " Comments&lt;br /&gt;          mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;        ELSE.&lt;br /&gt;          IF lstr_old_prog-line CS ` LIKE ` OR&lt;br /&gt;             lstr_old_prog-line CS ` TYPE ` OR&lt;br /&gt;             lstr_old_prog-line CS ` FOR `  OR&lt;br /&gt;             lstr_old_prog-line CS `~`.            "jnc OpenSQL &lt;/span&gt;&lt;/pre&gt;  &lt;pre&gt;&lt;span style="color:#000000;"&gt;table~column&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            PERFORM get_for_like_comment USING mtab_old_prog&lt;br /&gt;                                         CHANGING mtab_new_prog.&lt;br /&gt;&lt;br /&gt;          ELSEIF lstr_old_prog-line(8) = 'LOOP AT'.&lt;br /&gt;&lt;br /&gt;*     save table name into a queue&lt;br /&gt;            PERFORM enqueue_itab_name USING mtab_long_line-code.&lt;br /&gt;            mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;&lt;br /&gt;          ELSEIF lstr_old_prog-line(7) = `ENDLOOP`.&lt;br /&gt;&lt;br /&gt;*     get name off of queue and add it as a comment to the ENDLOOP line&lt;br /&gt;            PERFORM add_comment_to_endloop USING mtab_old_prog-line&lt;br /&gt;                                           CHANGING mtab_new_prog-line.&lt;br /&gt;&lt;br /&gt;          ELSEIF lstr_old_prog-line(7) EQ 'SELECT' AND&lt;br /&gt;                 lstr_old_prog-line(13) NE 'SELECT SINGLE'.&lt;br /&gt;&lt;br /&gt;*     save table name into a queue&lt;br /&gt;            PERFORM enqueue_tab_name USING mtab_old_prog-line.&lt;br /&gt;            mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;          ELSEIF lstr_old_prog-line(9) = `ENDSELECT`.&lt;br /&gt;&lt;br /&gt;*     get name off of queue and add it as a comment to the ENDSELECT&lt;br /&gt;            PERFORM add_comment_to_select USING mtab_old_prog-line&lt;br /&gt;                                          CHANGING mtab_new_prog-line.&lt;br /&gt;&lt;br /&gt;          ELSEIF lstr_old_prog-line(5) = 'FORM'.&lt;br /&gt;&lt;br /&gt;*         save form name into a queue&lt;br /&gt;            PERFORM enqueue_form_name USING mtab_old_prog-line.&lt;br /&gt;            mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;&lt;br /&gt;          ELSEIF lstr_old_prog-line(7) = `ENDFORM`.&lt;br /&gt;&lt;br /&gt;*         get name off of queue and add it as a comment to the ENDFORM&lt;br /&gt;            PERFORM add_comment_to_endform USING mtab_old_prog-line&lt;br /&gt;                                           CHANGING mtab_new_prog-line.&lt;br /&gt;          ELSE.    " Any other lines&lt;br /&gt;            mtab_new_prog-line = mtab_old_prog-line.&lt;br /&gt;          ENDIF.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;        APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.     " LOOP AT MTAB_OLD_PROG&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDLOOP.         " LOOP AT MTAB_LONG_LINE&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM FORMAT_PROGRAM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM GET_TABLE_NAMES_FROM_STATEMENT                           *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM get_table_names_from_statement TABLES ftab_tabname&lt;br /&gt;                                    STRUCTURE mtab_tabname&lt;br /&gt;                                    USING  fc_statement.&lt;br /&gt;&lt;br /&gt;  CLEAR ftab_tabname.&lt;br /&gt;  REFRESH ftab_tabname.&lt;br /&gt;&lt;br /&gt;  REPLACE `TABLES` WITH space INTO fc_statement.&lt;br /&gt;  TRANSLATE fc_statement USING `. `.   " Replace periods&lt;br /&gt;  TRANSLATE fc_statement USING `, `.   " Replace commas&lt;br /&gt;  TRANSLATE fc_statement USING `: `.   " Replace colons&lt;br /&gt;&lt;br /&gt;  CONDENSE fc_statement.               " Remove all extra spaces&lt;br /&gt;&lt;br /&gt;  SPLIT fc_statement AT space INTO TABLE ftab_tabname.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_NAMES_FROM_STATEMENT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM GET_TABLE_DESCRIPTIONS                                   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM get_table_descriptions TABLES ftab_tabname STRUCTURE mtab_tabname.&lt;br /&gt;&lt;br /&gt;  LOOP AT ftab_tabname.&lt;br /&gt;    SELECT SINGLE * FROM  dd02t&lt;br /&gt;           WHERE  tabname     = ftab_tabname-tabname&lt;br /&gt;           AND    ddlanguage  = sy-langu.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      ftab_tabname-tabdesc = dd02t-ddtext.&lt;br /&gt;      MODIFY ftab_tabname.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.         " LOOP AT FTAB_TABNAME&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM BUILD_NEW_TABLES_STATEMENT                               *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM build_new_tables_statement USING fstr_long_line LIKE&lt;br /&gt;mtab_long_line.&lt;br /&gt;&lt;br /&gt;  DATA: lc_sep(1)   TYPE c,&lt;br /&gt;        li_rows     TYPE i,&lt;br /&gt;        wordlen     TYPE i.&lt;br /&gt;&lt;br /&gt;  DESCRIBE TABLE mtab_tabname LINES li_rows.&lt;br /&gt;&lt;br /&gt;  mtab_new_prog-line = `TABLES:`.&lt;br /&gt;  APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;  LOOP AT mtab_tabname.&lt;br /&gt;    IF sy-tabix = li_rows.&lt;br /&gt;      lc_sep = `.`.&lt;br /&gt;    ELSE.&lt;br /&gt;      lc_sep = `,`.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    wordlen = STRLEN( mtab_tabname-tabname ).&lt;br /&gt;&lt;br /&gt;    IF wordlen &lt; 12.&lt;br /&gt;      wordlen = 12 - wordlen.&lt;br /&gt;    ELSE.&lt;br /&gt;      wordlen = 1.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    CONCATENATE `^^` mtab_tabname-tabname lc_sep myhats+0(wordlen) ` "&lt;br /&gt;`  mtab_tabname-tabdesc&lt;br /&gt;                                          INTO mtab_new_prog.&lt;br /&gt;&lt;br /&gt;    TRANSLATE mtab_new_prog USING `^ `.&lt;br /&gt;&lt;br /&gt;    APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.         " LOOP AT MTAB_TABNAME&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM GET_FOR/LIKE_COMMENT                                     *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM get_for_like_comment USING value(f_old_prog) LIKE mtab_old_prog&lt;br /&gt;                          CHANGING f_new_prog     LIKE mtab_new_prog&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;  DATA:&lt;br /&gt;    lc_dummy(1)    TYPE c,&lt;br /&gt;    lc_tabname(40) TYPE c,&lt;br /&gt;    wordlen        TYPE i,&lt;br /&gt;    ltab_nametab   LIKE dntab OCCURS 0 WITH HEADER LINE,&lt;br /&gt;    lstr_old_prog  LIKE LINE OF mtab_old_prog,&lt;br /&gt;&lt;br /&gt;    BEGIN OF lstr_field,&lt;br /&gt;      tabname      LIKE dd02t-tabname, " Table name&lt;br /&gt;      fldname      LIKE dd02t-tabname, " Table name&lt;br /&gt;    END OF lstr_field.&lt;br /&gt;&lt;br /&gt;  lstr_old_prog-line = f_old_prog.  " SAVE input&lt;br /&gt;&lt;br /&gt;  TRANSLATE f_old_prog TO UPPER CASE.&lt;br /&gt;  CONDENSE f_old_prog.&lt;br /&gt;&lt;br /&gt;  IF f_old_prog-line   CA `"` OR       " Line already commented&lt;br /&gt;     f_old_prog-line(1) = `*`.&lt;br /&gt;    f_new_prog = f_old_prog.&lt;br /&gt;    RETURN.&lt;br /&gt;&lt;br /&gt;  ELSEIF f_old_prog CS ` LIKE `.&lt;br /&gt;    SPLIT f_old_prog AT ` LIKE ` INTO lc_dummy lc_tabname.&lt;br /&gt;&lt;br /&gt;  ELSEIF f_old_prog CS ` TYPE `.&lt;br /&gt;    SPLIT f_old_prog AT ` TYPE ` INTO lc_dummy lc_tabname.&lt;br /&gt;&lt;br /&gt;  ELSEIF f_old_prog CS ` FOR `.&lt;br /&gt;    SPLIT f_old_prog AT ` FOR ` INTO lc_dummy  lc_tabname.&lt;br /&gt;&lt;br /&gt;  ELSEIF f_old_prog CS `~`.&lt;br /&gt;    MOVE f_old_prog TO lc_tabname.&lt;br /&gt;    CONDENSE lc_tabname.&lt;br /&gt;    SPLIT lc_tabname AT `~` INTO lstr_field-tabname lstr_field-fldname.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;    f_new_prog = lstr_old_prog-line.&lt;br /&gt;    RETURN.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* If there is anything following the table-field in a LIKE or FOR&lt;br /&gt;clause&lt;br /&gt;* it will be removed so that only the table-field remains&lt;br /&gt;  IF NOT f_old_prog CS `~`.&lt;br /&gt;    CONDENSE lc_tabname.&lt;br /&gt;&lt;br /&gt;    TRANSLATE lc_tabname USING `. `.     " Remove periods&lt;br /&gt;    TRANSLATE lc_tabname USING `, `.     " Remove commas&lt;br /&gt;    CONDENSE lc_tabname.                 " Remove extra white space&lt;br /&gt;&lt;br /&gt;    SPLIT lc_tabname AT `-` INTO lstr_field-tabname lstr_field-fldname.&lt;br /&gt;&lt;br /&gt;* The system variables are actually defined in DDIC structure SYST&lt;br /&gt;    IF lstr_field-tabname = `SY`.&lt;br /&gt;      lstr_field-tabname = `SYST`.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  TRANSLATE lstr_field-tabname TO UPPER CASE.&lt;br /&gt;  TRANSLATE lstr_field-fldname TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'NAMETAB_GET'&lt;br /&gt;    EXPORTING&lt;br /&gt;      tabname             = lstr_field-tabname&lt;br /&gt;    TABLES&lt;br /&gt;      nametab             = ltab_nametab&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      internal_error      = 1&lt;br /&gt;      table_has_no_fields = 2&lt;br /&gt;      table_not_activ     = 3&lt;br /&gt;      no_texts_found      = 4&lt;br /&gt;      OTHERS              = 5.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;br /&gt;*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  READ TABLE ltab_nametab&lt;br /&gt;       WITH KEY tabname   = lstr_field-tabname&lt;br /&gt;                fieldname = lstr_field-fldname.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    wordlen = STRLEN( lstr_old_prog-line ).&lt;br /&gt;&lt;br /&gt;    IF wordlen &lt; 45.&lt;br /&gt;      wordlen = 45 - wordlen.&lt;br /&gt;    ELSE.&lt;br /&gt;      wordlen = 1.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    CONCATENATE lstr_old_prog-line  myhats+0(wordlen) ` " ` ltab_nametab-fieldtext&lt;br /&gt;                            INTO f_new_prog.&lt;br /&gt;&lt;br /&gt;    TRANSLATE mtab_new_prog USING `^ `.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;    f_new_prog = lstr_old_prog-line.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ENQUEUE_ITAB_NAME                                        *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM enqueue_itab_name USING value(f_line) LIKE mtab_long_line-code.&lt;br /&gt;&lt;br /&gt;  DATA:&lt;br /&gt;    lc_dummy(1) TYPE c,&lt;br /&gt;    lc_itab(40) TYPE c.&lt;br /&gt;&lt;br /&gt;  TRANSLATE f_line TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;  SPLIT f_line AT `LOOP AT ` INTO lc_dummy lc_itab.&lt;br /&gt;&lt;br /&gt;  SPLIT lc_itab AT space INTO lc_itab lc_dummy.&lt;br /&gt;&lt;br /&gt;  TRANSLATE lc_itab USING `. `.&lt;br /&gt;  CONDENSE lc_itab.&lt;br /&gt;&lt;br /&gt;  mtab_itab_names = lc_itab.&lt;br /&gt;&lt;br /&gt;* Always have the most recent LOOP AT table as the first entry in the&lt;br /&gt;* queue&lt;br /&gt;  INSERT mtab_itab_names INDEX 1.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ADD_COMMENT_TO_ENDLOOP                                   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM add_comment_to_endloop USING fstr_long_line LIKE mtab_old_prog-line&lt;br /&gt;                            CHANGING f_prog_line LIKE mtab_new_prog-line&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;  IF mtab_old_prog-line NA `"`.        " No comments&lt;br /&gt;*     Get the internal table from the queue&lt;br /&gt;    READ TABLE mtab_itab_names INDEX 1.&lt;br /&gt;    CONCATENATE mtab_old_prog-line `    "` `LOOP AT`  mtab_itab_names-tabname&lt;br /&gt;                                   INTO f_prog_line SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;*     Dequeue the itab name&lt;br /&gt;    DELETE mtab_itab_names INDEX 1.&lt;br /&gt;  ELSE.&lt;br /&gt;    f_prog_line = mtab_old_prog-line.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ENQUEUE_TAB_NAME                                         *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM enqueue_tab_name USING  f_line LIKE mtab_old_prog-line.&lt;br /&gt;&lt;br /&gt;  DATA:&lt;br /&gt;    lc_dummy(1) TYPE c,&lt;br /&gt;    lc_tab(40) TYPE c.&lt;br /&gt;&lt;br /&gt;  TRANSLATE f_line TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;  SPLIT f_line AT ` FROM ` INTO lc_dummy lc_tab.&lt;br /&gt;&lt;br /&gt;  CONDENSE lc_tab. " Remove leading/trailing extra spaces&lt;br /&gt;&lt;br /&gt;  SPLIT lc_tab AT space INTO lc_tab lc_dummy.&lt;br /&gt;&lt;br /&gt;  TRANSLATE lc_tab USING `. `.&lt;br /&gt;  CONDENSE lc_tab.&lt;br /&gt;&lt;br /&gt;  mtab_tab_names = lc_tab.&lt;br /&gt;&lt;br /&gt;* Always have the most recent LOOP AT table as the first entry in the&lt;br /&gt;* queue&lt;br /&gt;  INSERT mtab_tab_names INDEX 1.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ADD_COMMENT_TO_SELECT                                    *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM add_comment_to_select USING fstr_long_line LIKE mtab_old_prog-line&lt;br /&gt;    CHANGING f_prog_line.&lt;br /&gt;&lt;br /&gt;  IF mtab_old_prog-line NA `"`.        " No comments&lt;br /&gt;*     Get the table from the queue&lt;br /&gt;    READ TABLE mtab_tab_names INDEX 1.&lt;br /&gt;    CONCATENATE mtab_old_prog-line  `    "` `SELECT FROM`&lt;br /&gt;mtab_tab_names-tabname&lt;br /&gt;                                    INTO f_prog_line SEPARATED BY&lt;br /&gt;space.&lt;br /&gt;&lt;br /&gt;*     Dequeue the tab name&lt;br /&gt;    DELETE mtab_tab_names INDEX 1.&lt;br /&gt;  ELSE.&lt;br /&gt;    f_prog_line = mtab_old_prog-line.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ADD_COMMENT_TO_ENDFORM                                   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM add_comment_to_endform USING fstr_long_line LIKE&lt;br /&gt;mtab_old_prog-line&lt;br /&gt;                            CHANGING f_prog_line.&lt;br /&gt;&lt;br /&gt;  IF mtab_old_prog-line NA `"`.        " No comments&lt;br /&gt;*     Get the table from the queue&lt;br /&gt;    READ TABLE mtab_form_names INDEX 1.&lt;br /&gt;    CONCATENATE mtab_old_prog-line `   "` `FORM`  mtab_form_names-tabname&lt;br /&gt;                                   INTO f_prog_line SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;*     Dequeue the form name&lt;br /&gt;    DELETE mtab_form_names INDEX 1.&lt;br /&gt;  ELSE.&lt;br /&gt;    f_prog_line = mtab_old_prog-line.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM GET_TABLE_DESCRIPTIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM ENQUEUE_FORM_NAME                                        *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM enqueue_form_name USING f_line.&lt;br /&gt;&lt;br /&gt;  DATA:&lt;br /&gt;    lc_dummy(1) TYPE c,&lt;br /&gt;    lc_tab(40) TYPE c.&lt;br /&gt;&lt;br /&gt;  TRANSLATE f_line TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;  SPLIT f_line AT `FORM ` INTO lc_dummy&lt;br /&gt;           lc_tab.&lt;br /&gt;&lt;br /&gt;  CONDENSE lc_tab. " Remove leading/trailing extra spaces&lt;br /&gt;&lt;br /&gt;  SPLIT lc_tab AT space INTO lc_tab lc_dummy.&lt;br /&gt;&lt;br /&gt;  TRANSLATE lc_tab USING `. `.&lt;br /&gt;  CONDENSE lc_tab.&lt;br /&gt;&lt;br /&gt;  mtab_form_names = lc_tab.&lt;br /&gt;&lt;br /&gt;* Always have the most recent LOOP AT table as the first entry in the&lt;br /&gt;* queue&lt;br /&gt;  INSERT mtab_form_names INDEX 1.&lt;br /&gt;&lt;br /&gt;ENDFORM.    " FORM ENQUEUE_FORM_NAME&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;     Beautify ABAP Code Via Clip                                    &lt;br /&gt;*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;* This program takes Structure &amp;amp; internal table declarations in ClipBoard,&lt;br /&gt;* and does prefect alignment as possible&lt;br /&gt;* Returns Modified Code Via ClipBoard&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;REPORT  yclip2jnc.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_old_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_old_prog.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_new_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_new_prog.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_words OCCURS 0,&lt;br /&gt;        word(172) TYPE c,&lt;br /&gt;      END OF i_words.&lt;br /&gt;&lt;br /&gt;DATA: wordlen  TYPE i,&lt;br /&gt;      saveix   TYPE i,&lt;br /&gt;      maxlen1  TYPE i,&lt;br /&gt;      maxlen2  TYPE i,&lt;br /&gt;      maxlen3  TYPE i,&lt;br /&gt;      wordoff  TYPE i,&lt;br /&gt;      colnum   TYPE i,&lt;br /&gt;      mylength TYPE i,&lt;br /&gt;      diff     TYPE i,&lt;br /&gt;      myrc     TYPE i,&lt;br /&gt;      workline(172).&lt;br /&gt;&lt;br /&gt;CONSTANTS: myhats(40) VALUE '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'.&lt;br /&gt;&lt;br /&gt;* Read the program code in ClipBoard into an internal table&lt;br /&gt;CALL METHOD cl_gui_frontend_services=&gt;clipboard_import&lt;br /&gt;  IMPORTING&lt;br /&gt;    data   = mtab_old_prog[]&lt;br /&gt;    length = mylength.&lt;br /&gt;&lt;br /&gt;IF sy-subrc NE 0.&lt;br /&gt;  WRITE: / `Unable to read ClipBoard`.&lt;br /&gt;  WRITE: / `Exiting program`.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;* SAP pads non-displayable characters in last few lines&lt;br /&gt;LOOP AT  mtab_old_prog.&lt;br /&gt;  MOVE sy-tabix TO saveix.&lt;br /&gt;&lt;br /&gt;  CONDENSE mtab_old_prog-line.&lt;br /&gt;  REPLACE ALL OCCURRENCES OF ' ,' IN mtab_old_prog-line WITH ','.&lt;br /&gt;&lt;br /&gt;  SPLIT mtab_old_prog-line AT space INTO TABLE i_words.&lt;br /&gt;&lt;br /&gt;  LOOP AT i_words.&lt;br /&gt;    wordlen = STRLEN( i_words-word ).&lt;br /&gt;    IF wordlen &gt; 60&lt;br /&gt;    OR i_words-word+0(1) &lt; space&lt;br /&gt;    OR i_words-word+0(1) &gt; '~'.&lt;br /&gt;      DELETE mtab_old_prog INDEX saveix.&lt;br /&gt;      EXIT.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;LOOP AT  mtab_old_prog.&lt;br /&gt;  CONDENSE mtab_old_prog-line.&lt;br /&gt;  REPLACE ALL OCCURRENCES OF ' ,' IN mtab_old_prog-line WITH ','.&lt;br /&gt;&lt;br /&gt;  SPLIT mtab_old_prog-line AT space INTO TABLE i_words.&lt;br /&gt;&lt;br /&gt;  MOVE 1 TO colnum.&lt;br /&gt;  LOOP AT i_words.&lt;br /&gt;    wordlen = STRLEN( i_words-word ).&lt;br /&gt;    CASE colnum.&lt;br /&gt;      WHEN 1.&lt;br /&gt;        IF  wordlen &gt; maxlen1.&lt;br /&gt;          MOVE wordlen TO maxlen1.&lt;br /&gt;        ENDIF.&lt;br /&gt;      WHEN 2.&lt;br /&gt;        IF  wordlen &gt; maxlen2.&lt;br /&gt;          MOVE wordlen TO maxlen2.&lt;br /&gt;        ENDIF.&lt;br /&gt;      WHEN 3.&lt;br /&gt;        IF  wordlen &gt; maxlen3.&lt;br /&gt;          MOVE wordlen TO maxlen3.&lt;br /&gt;        ENDIF.&lt;br /&gt;    ENDCASE.&lt;br /&gt;    ADD 1 TO colnum.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LOOP AT  mtab_old_prog.&lt;br /&gt;  workline = mtab_old_prog-line.&lt;br /&gt;  CONDENSE workline.&lt;br /&gt;  REPLACE ALL OCCURRENCES OF ' ,' IN mtab_old_prog-line WITH ','.&lt;br /&gt;&lt;br /&gt;  SPLIT workline AT space INTO TABLE i_words.&lt;br /&gt;&lt;br /&gt;  LOOP AT i_words.&lt;br /&gt;    FIND i_words-word IN mtab_old_prog-line MATCH OFFSET wordoff.&lt;br /&gt;    EXIT.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;  EXIT.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;LOOP AT  mtab_old_prog.&lt;br /&gt;  CONDENSE mtab_old_prog-line.&lt;br /&gt;  REPLACE ALL OCCURRENCES OF ' ,' IN mtab_old_prog-line WITH ','.&lt;br /&gt;&lt;br /&gt;  SPLIT mtab_old_prog-line AT space INTO TABLE i_words.&lt;br /&gt;&lt;br /&gt;  MOVE 1 TO colnum.&lt;br /&gt;  LOOP AT i_words.&lt;br /&gt;    wordlen = STRLEN( i_words-word ).&lt;br /&gt;    CASE colnum.&lt;br /&gt;      WHEN 1.&lt;br /&gt;        PERFORM f_diff_calc USING maxlen1  wordlen&lt;br /&gt;                            CHANGING diff.&lt;br /&gt;        CONCATENATE myhats+0(wordoff) i_words-word myhats+0(diff) INTO&lt;br /&gt;mtab_new_prog-line.&lt;br /&gt;      WHEN 2.&lt;br /&gt;        PERFORM f_diff_calc USING maxlen2  wordlen&lt;br /&gt;                            CHANGING diff.&lt;br /&gt;        CONCATENATE mtab_new_prog-line i_words-word myhats+0(diff) INTO&lt;br /&gt;mtab_new_prog-line.&lt;br /&gt;      WHEN 3.&lt;br /&gt;        PERFORM f_diff_calc USING maxlen3  wordlen&lt;br /&gt;                            CHANGING diff.&lt;br /&gt;        CONCATENATE mtab_new_prog-line i_words-word myhats+0(diff) INTO mtab_new_prog-line.&lt;br /&gt;      WHEN OTHERS.&lt;br /&gt;        CONCATENATE mtab_new_prog-line ` ` i_words-word INTO mtab_new_prog-line.&lt;br /&gt;    ENDCASE.&lt;br /&gt;    ADD 1 TO colnum.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;  TRANSLATE mtab_new_prog-line USING `^ `.&lt;br /&gt;  APPEND mtab_new_prog.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;* Write the beautiful program code to ClipBoard from internal table&lt;br /&gt;CALL METHOD cl_gui_frontend_services=&gt;clipboard_export&lt;br /&gt;  IMPORTING&lt;br /&gt;    data = mtab_new_prog[]&lt;br /&gt;  CHANGING&lt;br /&gt;    rc   = myrc.&lt;br /&gt;&lt;br /&gt;LOOP AT mtab_new_prog.&lt;br /&gt;  IF mtab_new_prog = space.&lt;br /&gt;    SKIP 1.&lt;br /&gt;  ENDIF.&lt;br /&gt;  WRITE: / mtab_new_prog.&lt;br /&gt;ENDLOOP.         " LOOP AT MTAB_NEW_PROG&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_diff_calc&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM f_diff_calc USING    value(maxlen)  TYPE i&lt;br /&gt;                          value(wordlen) TYPE i&lt;br /&gt;                 CHANGING diff TYPE i.&lt;br /&gt;&lt;br /&gt;  COMPUTE diff = maxlen - wordlen + 4.&lt;br /&gt;  IF diff &gt; 40.&lt;br /&gt;    diff = 40.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.                    "f_diff_calc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;     Beautiful Function Module Call via clipboard                   &lt;br /&gt;*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;* This program takes a parameter as a Function Module Name&lt;br /&gt;* and does a documented "pattern paste"&lt;br /&gt;* Returns pattern Code Via ClipBoard&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;PROGRAM yclip3jnc.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS : slis.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_func LIKE fupararef-funcname.     " Name of Function Module&lt;br /&gt;&lt;br /&gt;DATA : BEGIN OF i_tab OCCURS 0,&lt;br /&gt;        funcname      LIKE    fupararef-funcname,       " Name of Function Module&lt;br /&gt;        paramtype     LIKE    fupararef-paramtype,      " Parameter type&lt;br /&gt;        pposition     LIKE    fupararef-pposition,      " Internal Table, Current Line Index&lt;br /&gt;        optional      LIKE    fupararef-optional,       " Optional parameters&lt;br /&gt;        parameter     LIKE    fupararef-parameter,      " Parameter name&lt;br /&gt;        defaultval    LIKE    fupararef-defaultval,     " Default value for import parameter&lt;br /&gt;        structure     LIKE    fupararef-structure,      " Associated&lt;br /&gt;Type of an Interface Parameter&lt;br /&gt;        stext         LIKE    funct-stext,              " Short text&lt;br /&gt;    END OF i_tab.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF mtab_new_prog OCCURS 0,&lt;br /&gt;        line(172) TYPE c,&lt;br /&gt;      END OF mtab_new_prog.&lt;br /&gt;&lt;br /&gt;DATA: funcdesc LIKE tftit-stext,     " Short text for function module&lt;br /&gt;      mylen    TYPE i,&lt;br /&gt;      myrc     TYPE i.&lt;br /&gt;&lt;br /&gt;CONSTANTS: myhats(40) VALUE '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'.&lt;br /&gt;&lt;br /&gt;TRANSLATE p_func TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;SELECT SINGLE&lt;br /&gt;       tftit~stext     " Short text for function module&lt;br /&gt;  INTO funcdesc&lt;br /&gt;  FROM tftit&lt;br /&gt; WHERE tftit~funcname = p_func&lt;br /&gt;   AND tftit~spras    = sy-langu.&lt;br /&gt;&lt;br /&gt;TRANSLATE p_func TO LOWER CASE.&lt;br /&gt;&lt;br /&gt;CONCATENATE  `CALL FUNCTION ` p_func  `   " ` funcdesc INTO mtab_new_prog-line.&lt;br /&gt;APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;TRANSLATE p_func TO UPPER CASE.&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;       fupararef~funcname      " Name of Function Module&lt;br /&gt;       fupararef~paramtype     " Parameter type&lt;br /&gt;       fupararef~pposition     " Internal Table, Current Line Index&lt;br /&gt;       fupararef~optional      " Optional parameters&lt;br /&gt;       fupararef~parameter     " Parameter name&lt;br /&gt;       fupararef~defaultval    " Default value for import parameter&lt;br /&gt;       fupararef~structure     " Associated Type of an Interface&lt;br /&gt;Parameter&lt;br /&gt;       funct~stext             " Short text&lt;br /&gt;  INTO TABLE i_tab&lt;br /&gt;  FROM fupararef&lt;br /&gt;       INNER JOIN funct&lt;br /&gt;       ON  fupararef~funcname  = funct~funcname&lt;br /&gt;       AND fupararef~parameter = funct~parameter&lt;br /&gt;       AND funct~spras = sy-langu&lt;br /&gt; WHERE fupararef~funcname = p_func&lt;br /&gt; AND fupararef~r3state = 'A'&lt;br /&gt; ORDER BY fupararef~paramtype&lt;br /&gt;          fupararef~pposition.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LOOP AT i_tab.&lt;br /&gt;  AT NEW paramtype.&lt;br /&gt;    CASE i_tab-paramtype.&lt;br /&gt;      WHEN 'C'.&lt;br /&gt;        MOVE '  CHANGING' TO mtab_new_prog-line.&lt;br /&gt;      WHEN 'E'.&lt;br /&gt;        MOVE '  IMPORTING' TO mtab_new_prog-line.&lt;br /&gt;      WHEN 'I'.&lt;br /&gt;        MOVE '  EXPORTING' TO mtab_new_prog-line.&lt;br /&gt;      WHEN 'T'.&lt;br /&gt;        MOVE '  TABLES' TO mtab_new_prog-line.&lt;br /&gt;      WHEN 'X'.&lt;br /&gt;        MOVE '  EXCEPTIONS' TO mtab_new_prog-line.&lt;br /&gt;    ENDCASE.&lt;br /&gt;    APPEND mtab_new_prog.&lt;br /&gt;  ENDAT.&lt;br /&gt;&lt;br /&gt;  IF i_tab-optional = 'X'.&lt;br /&gt;    mtab_new_prog-line = `*^^^`.&lt;br /&gt;  ELSE.&lt;br /&gt;    mtab_new_prog-line = `^^^^`.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF i_tab-paramtype = 'X'.&lt;br /&gt;    MOVE i_tab-pposition TO i_tab-defaultval.&lt;br /&gt;    CONDENSE i_tab-defaultval.&lt;br /&gt;  ELSE.&lt;br /&gt;    TRANSLATE i_tab-parameter TO LOWER CASE.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CONCATENATE mtab_new_prog-line i_tab-parameter '^=^' INTO mtab_new_prog-line.&lt;br /&gt;&lt;br /&gt;  IF i_tab-defaultval IS NOT INITIAL.&lt;br /&gt;    CONCATENATE mtab_new_prog-line i_tab-defaultval  INTO mtab_new_prog-line.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  mylen = STRLEN( mtab_new_prog-line ).&lt;br /&gt;&lt;br /&gt;  IF mylen &lt; 31.&lt;br /&gt;    COMPUTE mylen = 31 - mylen.&lt;br /&gt;  ELSE.&lt;br /&gt;    MOVE 1 TO mylen.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  TRANSLATE i_tab-structure TO LOWER CASE.&lt;br /&gt;&lt;br /&gt;  CONCATENATE mtab_new_prog-line myhats+0(mylen) ` " ` i_tab-structure INTO mtab_new_prog-line.&lt;br /&gt;&lt;br /&gt;  mylen = STRLEN( mtab_new_prog-line ).&lt;br /&gt;&lt;br /&gt;  IF mylen &lt; 47.&lt;br /&gt;    COMPUTE mylen = 47 - mylen.&lt;br /&gt;  ELSE.&lt;br /&gt;    MOVE 1 TO mylen.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CONCATENATE mtab_new_prog-line myhats+0(mylen) ` ` i_tab-stext INTO mtab_new_prog-line.&lt;br /&gt;&lt;br /&gt;  APPEND  mtab_new_prog.&lt;br /&gt;ENDLOOP.     " LOOP AT I_TAB&lt;br /&gt;&lt;br /&gt;CONCATENATE  `    .  "  ` p_func INTO mtab_new_prog-line.&lt;br /&gt;APPEND mtab_new_prog.&lt;br /&gt;&lt;br /&gt;LOOP AT mtab_new_prog.&lt;br /&gt;  TRANSLATE mtab_new_prog-line USING `^ `.&lt;br /&gt;  MODIFY mtab_new_prog.&lt;br /&gt;&lt;br /&gt;  IF mtab_new_prog = space.&lt;br /&gt;    SKIP 1.&lt;br /&gt;  ENDIF.&lt;br /&gt;  WRITE: / mtab_new_prog.&lt;br /&gt;ENDLOOP.         " LOOP AT MTAB_NEW_PROG&lt;br /&gt;&lt;br /&gt;* Write the beautiful program code to ClipBoard from internal table&lt;br /&gt;CALL METHOD cl_gui_frontend_services=&gt;clipboard_export&lt;br /&gt;  IMPORTING&lt;br /&gt;    data = mtab_new_prog[]&lt;br /&gt;  CHANGING&lt;br /&gt;    rc   = myrc.&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6088876794538065711?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6088876794538065711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6088876794538065711'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/abap-clipboard-utilities-for-beautiful.html' title='ABAP Clipboard Utilities for Beautiful Commented Code'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2028535684623079970</id><published>2008-12-29T01:56:00.000-08:00</published><updated>2008-12-29T01:57:46.787-08:00</updated><title type='text'>Recursion with Loop Checking in SAP</title><content type='html'>&lt;pre&gt;&lt;span style="color:#000000;"&gt; This program can be a model for any ABAP recursion.&lt;br /&gt;* This is often needed to navigate down hierarchical data.&lt;br /&gt;* One example is BOM.&lt;br /&gt;&lt;br /&gt;* Important point is to chack for stack overflow&lt;br /&gt;* and give RIGHT MESSAGE so that corrective action can be taken.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* Sample Program Showing Recursion in ABAP&lt;br /&gt;* Simple BOM Tree walking in ABAP&lt;br /&gt;* Takes Care of Diagnostics as well - detects Loops&lt;br /&gt;* Hence never experience Stack Overflow!&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* http://www.sap-img.com/abap/reincarnation-of-reuse-alv-fieldcatalog-merge.htm&lt;br /&gt;*     has INCLUDE zjncinclude with FORM zjnc_dump_list&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;REPORT zjncrecursion.&lt;br /&gt;&lt;br /&gt;INCLUDE zjncinclude. " From www.sap-img.com&lt;br /&gt;&lt;br /&gt;TABLES: makt.&lt;br /&gt;&lt;br /&gt;CONSTANTS: maxlevels TYPE i VALUE 10.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_usage,&lt;br /&gt;          parent  TYPE  makt-matnr,&lt;br /&gt;          child   TYPE  makt-matnr,&lt;br /&gt;          usage   TYPE  mseg-menge,&lt;br /&gt;       END OF ty_usage.&lt;br /&gt;&lt;br /&gt;DATA: wa_usage  TYPE ty_usage,&lt;br /&gt;      it_usage  TYPE STANDARD TABLE OF ty_usage.    " USAGE data&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_stack,&lt;br /&gt;          level   TYPE  h_level,&lt;br /&gt;          matnr   TYPE  makt-matnr,&lt;br /&gt;          menge   TYPE  mseg-menge,&lt;br /&gt;       END OF ty_stack.&lt;br /&gt;&lt;br /&gt;DATA: istackpos TYPE i,&lt;br /&gt;      wa_stack  TYPE ty_stack,&lt;br /&gt;      it_stack  TYPE STANDARD TABLE OF ty_stack.   "BOM Stack&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_reqd,&lt;br /&gt;          matnr   TYPE  makt-matnr,&lt;br /&gt;          menge   TYPE  mseg-menge,&lt;br /&gt;       END OF ty_reqd.&lt;br /&gt;&lt;br /&gt;DATA: wa_reqd   TYPE ty_reqd,&lt;br /&gt;      it_reqd   TYPE STANDARD TABLE OF ty_reqd.    "NET Requirement of&lt;br /&gt;RAW Material&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_build TYPE makt-matnr,    "Target   to Build&lt;br /&gt;            p_menge TYPE mseg-menge.    "Quantity to Build&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;  PERFORM f_usage_data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  istackpos = 0.&lt;br /&gt;&lt;br /&gt;  MOVE istackpos  TO wa_stack-level.&lt;br /&gt;  MOVE p_build    TO wa_stack-matnr.&lt;br /&gt;  MOVE p_menge    TO wa_stack-menge.&lt;br /&gt;  APPEND wa_stack TO it_stack.                              " 1st PUSH&lt;br /&gt;&lt;br /&gt;  PERFORM f_explode USING p_build.&lt;br /&gt;&lt;br /&gt;  SORT it_reqd BY matnr.&lt;br /&gt;&lt;br /&gt;  PERFORM zjnc_dump_list USING 'IT_REQD' 'WA_REQD' 'Net RAW&lt;br /&gt;Requirement'.&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_Explode&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM f_explode USING p_pmatnr.&lt;br /&gt;  DATA: icount   TYPE i,&lt;br /&gt;        totalreq TYPE mseg-menge.&lt;br /&gt;&lt;br /&gt;  istackpos = istackpos + 1.                          " PUSH&lt;br /&gt;&lt;br /&gt;  IF istackpos GE maxlevels.&lt;br /&gt;    PERFORM f_dumpstack.    " terminate&lt;br /&gt;    LEAVE PROGRAM.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  icount = 0.&lt;br /&gt;&lt;br /&gt;  LOOP AT it_usage INTO wa_usage WHERE parent = p_pmatnr.&lt;br /&gt;    icount = icount + 1.&lt;br /&gt;&lt;br /&gt;    MOVE istackpos      TO wa_stack-level.&lt;br /&gt;    MOVE wa_usage-child TO wa_stack-matnr.&lt;br /&gt;    MOVE wa_usage-usage TO wa_stack-menge.&lt;br /&gt;    APPEND wa_stack     TO it_stack.                  " PUSH&lt;br /&gt;&lt;br /&gt;    PERFORM f_explode USING wa_usage-child.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  IF icount = 0.                                  " then LEAF&lt;br /&gt;    totalreq = '1.0'.&lt;br /&gt;    LOOP AT it_stack INTO wa_stack.&lt;br /&gt;      totalreq = totalreq * wa_stack-menge.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;    MOVE p_pmatnr   TO wa_reqd-matnr.&lt;br /&gt;    MOVE totalreq   TO wa_reqd-menge.&lt;br /&gt;    COLLECT wa_reqd INTO it_reqd.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  DELETE it_stack INDEX istackpos.                      " POP&lt;br /&gt;&lt;br /&gt;  istackpos = istackpos - 1.                            " POP&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "f_Explode&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_dumpstack&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM f_dumpstack.&lt;br /&gt;&lt;br /&gt;  PERFORM zjnc_dump_list USING 'IT_STACK' 'WA_STACK' 'LOOP in BOM&lt;br /&gt;STACK'.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "f_dumpstack&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_usage_data for Hungry Bengali ABAPer in Kolkata&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM f_usage_data.&lt;br /&gt;  MOVE 'FISHCURRY'   TO wa_usage-parent.&lt;br /&gt;  MOVE 'SPICES'      TO wa_usage-child.&lt;br /&gt;  MOVE 10            TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;  MOVE 'FISHCURRY'   TO wa_usage-parent.&lt;br /&gt;  MOVE 'MIRCHI'      TO wa_usage-child.&lt;br /&gt;  MOVE 5             TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;  MOVE 'FISHCURRY'   TO wa_usage-parent.&lt;br /&gt;  MOVE 'ALOO'        TO wa_usage-child.&lt;br /&gt;  MOVE 8             TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;  MOVE 'SPICES'      TO wa_usage-parent.&lt;br /&gt;  MOVE 'MIRCHI'      TO wa_usage-child.&lt;br /&gt;  MOVE 2             TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;  MOVE 'SPICES'      TO wa_usage-parent.&lt;br /&gt;  MOVE 'JEERA'       TO wa_usage-child.&lt;br /&gt;  MOVE 3             TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;  MOVE 'SPICES'      TO wa_usage-parent.&lt;br /&gt;  MOVE 'HALUD'       TO wa_usage-child.&lt;br /&gt;  MOVE 7             TO wa_usage-usage.&lt;br /&gt;  APPEND wa_usage TO it_usage.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "f_usage_data&lt;/span&gt;&lt;/pre&gt; &lt;b&gt;&lt;span style="color:#000000;"&gt;ABAP Tips by : &lt;/span&gt;&lt;span style="color:#990000;"&gt; Jayanta Narayan Choudhuri&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Author Email: &lt;/b&gt;     &lt;a href="mailto:sss@cal.vsnl.net.in" target="_blank"&gt;sss@cal.vsnl.net.in&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Author Website:&lt;/b&gt;  &lt;a href="http://www.geocities.com/ojnc" target="_blank"&gt;http://www.geocities.com/ojnc&lt;/a&gt; &lt;center&gt; &lt;p&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=sapinformation0e&amp;amp;p=13&amp;amp;o=1&amp;amp;l=bn1&amp;amp;browse=17&amp;amp;mode=books&amp;amp;lt1=_blank&amp;amp;f=ifr" scrolling="no" width="468" frameborder="0" height="60"&gt;&amp;amp;lt;map NAME="boxmap-p13"&amp;amp;gt;&amp;amp;lt;area SHAPE="RECT" COORDS="379, 50, 460, 57" HREF="http://rcm.amazon.com/e/cm/privacy-policy.html?o=1" target=main&amp;amp;gt;&amp;amp;lt;area COORDS="0,0,10000,10000" HREF="http://www.amazon.com/exec/obidos/redirect-home/sapinformation0e" target=main&amp;amp;gt;&amp;amp;lt;/map&amp;amp;gt;&amp;amp;lt;img SRC="http://rcm-images.amazon.com/images/G/01/rcm/468x60.gif" ALT="Shop at Amazon.com" NOSAVE BORDER=0 usemap="#boxmap-p13" height=60 width=468&amp;amp;gt;&lt;/iframe&gt;&lt;/p&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2028535684623079970?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2028535684623079970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2028535684623079970'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/recursion-with-loop-checking-in-sap.html' title='Recursion with Loop Checking in SAP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1319329924141619148</id><published>2008-12-29T01:53:00.000-08:00</published><updated>2008-12-29T01:56:39.841-08:00</updated><title type='text'>Tree type report in ABAP</title><content type='html'>&lt;iframe name="google_ads_frame" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3687694581336538&amp;amp;dt=1261950983832&amp;amp;lmt=1134460800&amp;amp;format=728x90_as&amp;amp;output=html&amp;amp;correlator=1261950983832&amp;amp;url=http%3A%2F%2Fwww.sap-img.com%2Fabap%2Ftree-type-report-in-abap.htm&amp;amp;color_bg=FFFFFF&amp;amp;color_text=000000&amp;amp;color_link=0000FF&amp;amp;color_url=008000&amp;amp;color_border=FFFFFF&amp;amp;ad_type=text_image&amp;amp;eid=6083027&amp;amp;ea=0&amp;amp;ref=http%3A%2F%2Fwww.sap-img.com%2Fabap.htm&amp;amp;frm=0&amp;amp;ga_vid=1635931654.1261950984&amp;amp;ga_sid=1261950984&amp;amp;ga_hid=1674613606&amp;amp;flash=0&amp;amp;u_h=768&amp;amp;u_w=1024&amp;amp;u_ah=738&amp;amp;u_aw=1024&amp;amp;u_cd=32&amp;amp;u_tz=330&amp;amp;u_his=3&amp;amp;u_nplug=5&amp;amp;u_nmime=13&amp;amp;dtd=439" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" width="728" frameborder="0" height="90"&gt;&lt;/iframe&gt;  &lt;b&gt;&lt;span style="color:#cc0000;"&gt;&lt;span style="font-size:+2;"&gt;Tree type report in ABAP&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;With Compliments from: &lt;span style="color:#990000;"&gt;Ravi&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;pre&gt;REPORT ZRJNTRIAL_TREE LINE-COUNT 65&lt;br /&gt;LINE-SIZE 80&lt;br /&gt;                                               NO STANDARD PAGE&lt;br /&gt;HEADING.&lt;br /&gt;*********************************************************************&lt;br /&gt;DATA: BEGIN OF ITEMS OCCURS 100,&lt;br /&gt;         ID(10),&lt;br /&gt;         PARENT_ID(10),&lt;br /&gt;         TEXT(20),&lt;br /&gt;         SYMBOL,&lt;br /&gt;      END OF ITEMS,&lt;br /&gt;      TABIX_STACK LIKE SY-TABIX OCCURS 10 WITH HEADER LINE,&lt;br /&gt;      ITEMS_SHOW LIKE ITEMS OCCURS 100 WITH HEADER LINE.&lt;br /&gt;INCLUDE &lt;symbol&gt;.&lt;br /&gt;* append sample items (mixed order)&lt;br /&gt;PERFORM APPEND_ITEM USING:&lt;br /&gt;    '1'  ''        'Food',&lt;br /&gt;    '2'  ''        'Drinks',&lt;br /&gt;    '12' '9'       'Jack Daniels',&lt;br /&gt;    '17' '11'      'Bosch',&lt;br /&gt;    '3'  ''        'Tools',&lt;br /&gt;    '4'  '1'       'Meat',&lt;br /&gt;    '16' '11'      'Metabo',&lt;br /&gt;    '5'  '1'       'Chocolate',&lt;br /&gt;    '6'  '2'       'Alcoholic',&lt;br /&gt;    '8'  '4'       'Pork',&lt;br /&gt;    '10' '5'       'Milka',&lt;br /&gt;    '11' '3'       'Drills',&lt;br /&gt;    '13' '9'       'Jim Beam',&lt;br /&gt;    '7'  '4'       'Beef',&lt;br /&gt;    '14' '2'       'Non-alcoholic',&lt;br /&gt;    '35' '31'      'Teran',&lt;br /&gt;    '9'  '6'       'Whiskey',&lt;br /&gt;    '15' '14'      'Coca-cola',&lt;br /&gt;    '18' '6'       'Wine',&lt;br /&gt;    '28' '18'      'Croatia',&lt;br /&gt;    '33' '28'      'Slavonia',&lt;br /&gt;    '34' '28'      'Istria',&lt;br /&gt;    '29' '18'      'Hungary',&lt;br /&gt;    '30' '29'      'Tokaj',&lt;br /&gt;    '19' '33'      'Enjingi',&lt;br /&gt;    '20' '33'      'Zdjelarevic',&lt;br /&gt;    '22' '19'      'Riesling',&lt;br /&gt;    '23' '19'      'Chardonnay',&lt;br /&gt;    '24' '20'      'Riesling',&lt;br /&gt;    '32' '31'      'Malvazija',&lt;br /&gt;    '25' '20'      'Merlot',&lt;br /&gt;    '31' '34'      'Tomasevic'.&lt;br /&gt;&lt;br /&gt;* show initial list (items with level 0 - parentless items)&lt;br /&gt;LOOP AT ITEMS WHERE PARENT_ID = ''.&lt;br /&gt;  MOVE-CORRESPONDING ITEMS TO ITEMS_SHOW.&lt;br /&gt;  ITEMS_SHOW-SYMBOL = '+'.&lt;br /&gt;  APPEND ITEMS_SHOW.&lt;br /&gt;ENDLOOP.&lt;br /&gt;PERFORM PRINT_TREE TABLES ITEMS_SHOW.&lt;br /&gt;&lt;br /&gt;* at line-selection - when the node is opened/closed or item double-clk&lt;br /&gt;AT LINE-SELECTION.&lt;br /&gt;  READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS_SHOW-ID. "see 'hide'&lt;br /&gt;  IF SY-SUBRC = 0. "item has children - expand or collapse&lt;br /&gt;    SY-LSIND = 0.&lt;br /&gt;    PERFORM EXPAND_COLLAPSE USING ITEMS_SHOW-ID.&lt;br /&gt;    PERFORM PRINT_TREE TABLES ITEMS_SHOW.&lt;br /&gt;  ELSE.            "item has NO children - perform some action&lt;br /&gt;    READ TABLE ITEMS WITH KEY ID = ITEMS_SHOW-ID.&lt;br /&gt;    WRITE: 'Action performed on item "' NO-GAP, ITEMS-TEXT NO-GAP,&lt;br /&gt;           '", id.', ITEMS-ID.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* form print_tree&lt;br /&gt;FORM PRINT_TREE TABLES ITEMS STRUCTURE ITEMS.&lt;br /&gt;  DATA: V_TABIX LIKE SY-TABIX,&lt;br /&gt;        START_TABIX LIKE SY-TABIX,&lt;br /&gt;        V_LEVEL LIKE SY-TFILL,&lt;br /&gt;        V_OFFSET TYPE I,&lt;br /&gt;        V_ID LIKE ITEMS-ID,&lt;br /&gt;        V_PARENT_ID LIKE ITEMS-PARENT_ID,&lt;br /&gt;        V_PARENT_ID_FOR_VLINE LIKE ITEMS-PARENT_ID,&lt;br /&gt;        V_PREV_LEVEL TYPE I,&lt;br /&gt;        V_ITEMS_COUNT LIKE SY-TFILL,&lt;br /&gt;        V_VLINES_STRING(200).&lt;br /&gt;  CHECK NOT ITEMS[] IS INITIAL.&lt;br /&gt;  SORT ITEMS BY PARENT_ID ID.&lt;br /&gt;  READ TABLE ITEMS INDEX 1.&lt;br /&gt;  V_PARENT_ID = ITEMS-PARENT_ID.&lt;br /&gt;  START_TABIX = 1.&lt;br /&gt;  REFRESH TABIX_STACK.&lt;br /&gt;  DO.&lt;br /&gt;    LOOP AT ITEMS FROM START_TABIX.&lt;br /&gt;      V_TABIX = START_TABIX = SY-TABIX."remember current index&lt;br /&gt;      V_ID = ITEMS-ID.&lt;br /&gt;      V_PARENT_ID_FOR_VLINE = ITEMS-PARENT_ID.&lt;br /&gt;*     decrease level and exit loop if parent not the same as previous&lt;br /&gt;      IF ITEMS-PARENT_ID NE V_PARENT_ID.&lt;br /&gt;        PERFORM READ_FROM_STACK CHANGING START_TABIX. "level = NoOfRecs&lt;br /&gt;        READ TABLE ITEMS INDEX START_TABIX.&lt;br /&gt;        V_PARENT_ID = ITEMS-PARENT_ID.&lt;br /&gt;        ADD 1 TO START_TABIX.   "next loop starts from parent index + 1&lt;br /&gt;*        clear vline&lt;br /&gt;        IF V_LEVEL &gt; 1.&lt;br /&gt;          V_OFFSET = 2 + ( V_LEVEL - 2 ) * 3.&lt;br /&gt;          IF V_LEVEL = 1. V_OFFSET = 1. ENDIF.&lt;br /&gt;          V_VLINES_STRING+V_OFFSET = ' '.&lt;br /&gt;        ENDIF.&lt;br /&gt;        EXIT.&lt;br /&gt;      ENDIF.&lt;br /&gt;      V_PARENT_ID = ITEMS-PARENT_ID.&lt;br /&gt;*     write item&lt;br /&gt;      FORMAT COLOR OFF.&lt;br /&gt;      DESCRIBE TABLE TABIX_STACK LINES V_LEVEL."level is no of&lt;br /&gt;StackRecs&lt;br /&gt;      WRITE: / V_VLINES_STRING.&lt;br /&gt;      V_OFFSET = V_LEVEL * 3.&lt;br /&gt;      IF V_LEVEL NE 0.&lt;br /&gt;        IF V_PREV_LEVEL &lt; V_LEVEL.&lt;br /&gt;          WRITE: AT V_OFFSET '|', / ''.&lt;br /&gt;          WRITE: / V_VLINES_STRING.&lt;br /&gt;        ENDIF.&lt;br /&gt;        V_OFFSET = V_LEVEL * 3.&lt;br /&gt;        WRITE AT V_OFFSET '|--'.&lt;br /&gt;      ENDIF.&lt;br /&gt;      V_OFFSET = V_OFFSET + 3.&lt;br /&gt;      CASE ITEMS-SYMBOL.&lt;br /&gt;        WHEN '+'.&lt;br /&gt;          WRITE AT V_OFFSET SYM_PLUS_FOLDER AS SYMBOL&lt;br /&gt;                COLOR 4 INTENSIFIED HOTSPOT.&lt;br /&gt;        WHEN '-'.&lt;br /&gt;          WRITE AT V_OFFSET SYM_MINUS_FOLDER AS SYMBOL&lt;br /&gt;                COLOR 4 INTENSIFIED HOTSPOT.&lt;br /&gt;        WHEN OTHERS. FORMAT COLOR 5.&lt;br /&gt;      ENDCASE.&lt;br /&gt;      WRITE: ITEMS-TEXT.&lt;br /&gt;      V_PREV_LEVEL = V_LEVEL.&lt;br /&gt;      HIDE: ITEMS-ID.&lt;br /&gt;      ADD 1 TO V_ITEMS_COUNT.&lt;br /&gt;      READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS-ID.&lt;br /&gt;*     increase level and exit loop if item has children&lt;br /&gt;      IF SY-SUBRC = 0.&lt;br /&gt;        START_TABIX = SY-TABIX.&lt;br /&gt;        APPEND V_TABIX TO TABIX_STACK. "level is no of recs in stack&lt;br /&gt;        V_PARENT_ID = ITEMS-PARENT_ID.&lt;br /&gt;*        set vline&lt;br /&gt;        V_TABIX = V_TABIX + 1.&lt;br /&gt;        READ TABLE ITEMS INDEX V_TABIX.&lt;br /&gt;        V_OFFSET = 2 + ( V_LEVEL - 1 ) * 3.&lt;br /&gt;        IF V_LEVEL &gt; 0.&lt;br /&gt;          IF ITEMS-PARENT_ID = V_PARENT_ID_FOR_VLINE AND SY-SUBRC = 0.&lt;br /&gt;            V_VLINES_STRING+V_OFFSET = '|'.&lt;br /&gt;          ELSE.&lt;br /&gt;            V_VLINES_STRING+V_OFFSET = ' '.&lt;br /&gt;          ENDIF.&lt;br /&gt;        ENDIF.&lt;br /&gt;        EXIT.&lt;br /&gt;      ENDIF.&lt;br /&gt;*     at last - decrease level&lt;br /&gt;      AT LAST.&lt;br /&gt;*        clear vline&lt;br /&gt;        IF V_LEVEL &gt; 1.&lt;br /&gt;          V_OFFSET = 2 + ( V_LEVEL - 2 ) * 3.&lt;br /&gt;          IF V_LEVEL = 1. V_OFFSET = 1. ENDIF.&lt;br /&gt;          V_VLINES_STRING+V_OFFSET = ' '.&lt;br /&gt;        ENDIF.&lt;br /&gt;        " next loop starts from parent index, not parent index + 1&lt;br /&gt;        " because of different parents level will decrease anyway&lt;br /&gt;        PERFORM READ_FROM_STACK CHANGING START_TABIX.&lt;br /&gt;        APPEND START_TABIX TO TABIX_STACK. "must return index to stack&lt;br /&gt;      ENDAT.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;    DESCRIBE TABLE ITEMS.&lt;br /&gt;    IF START_TABIX &gt; SY-TFILL OR V_ITEMS_COUNT &gt;= SY-TFILL.&lt;br /&gt;      EXIT.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDDO.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;* form expand_collapse&lt;br /&gt;FORM EXPAND_COLLAPSE USING VALUE(V_ID).&lt;br /&gt;  DATA: V_NO_MORE_ORPHANS,&lt;br /&gt;        ITEMS_TEMP LIKE ITEMS OCCURS 100 WITH HEADER LINE.&lt;br /&gt;  DELETE ITEMS_SHOW WHERE PARENT_ID = V_ID. "try to collapse&lt;br /&gt;  IF SY-SUBRC = 0.                     "succesfull first collapse&lt;br /&gt;    DO.            "cascade collapse - delete 'orphans' that are left&lt;br /&gt;      REFRESH ITEMS_TEMP.&lt;br /&gt;      MOVE ITEMS_SHOW[] TO ITEMS_TEMP[].&lt;br /&gt;      SORT ITEMS_TEMP BY ID.&lt;br /&gt;      V_NO_MORE_ORPHANS = 'X'.&lt;br /&gt;      LOOP AT ITEMS_SHOW WHERE PARENT_ID NE ''.&lt;br /&gt;        READ TABLE ITEMS_TEMP WITH KEY ID = ITEMS_SHOW-PARENT_ID&lt;br /&gt;                               BINARY SEARCH TRANSPORTING NO FIELDS.&lt;br /&gt;        IF SY-SUBRC NE 0.              "no parent - it's an orphan&lt;br /&gt;          CLEAR V_NO_MORE_ORPHANS.&lt;br /&gt;          DELETE ITEMS_SHOW.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;      IF V_NO_MORE_ORPHANS = 'X'. EXIT. ENDIF.&lt;br /&gt;    ENDDO.&lt;br /&gt;    ITEMS_SHOW-SYMBOL = '+'.&lt;br /&gt;    MODIFY ITEMS_SHOW TRANSPORTING SYMBOL WHERE ID = V_ID.&lt;br /&gt;  ELSE.                                "unsuccessfull collapse - expand&lt;br /&gt;    ITEMS_SHOW-SYMBOL = '-'.&lt;br /&gt;    MODIFY ITEMS_SHOW TRANSPORTING SYMBOL WHERE ID = V_ID.&lt;br /&gt;    LOOP AT ITEMS WHERE PARENT_ID = V_ID.      "show children&lt;br /&gt;      APPEND ITEMS TO ITEMS_SHOW.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;    LOOP AT ITEMS_SHOW WHERE PARENT_ID = V_ID. "check grandchildren&lt;br /&gt;      READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS_SHOW-ID.&lt;br /&gt;      IF SY-SUBRC = 0.&lt;br /&gt;        ITEMS_SHOW-SYMBOL = '+'.&lt;br /&gt;      ELSE.&lt;br /&gt;        ITEMS_SHOW-SYMBOL = ''.&lt;br /&gt;      ENDIF.&lt;br /&gt;      MODIFY ITEMS_SHOW.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;* form append_item&lt;br /&gt;FORM APPEND_ITEM USING VALUE(ID) VALUE(PARENT_ID) VALUE(TEXT).&lt;br /&gt;  ITEMS-ID = ID.&lt;br /&gt;  ITEMS-PARENT_ID = PARENT_ID.&lt;br /&gt;  ITEMS-TEXT = TEXT.&lt;br /&gt;  APPEND ITEMS.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;* form read_from_stack&lt;br /&gt;FORM READ_FROM_STACK CHANGING TABIX LIKE SY-TABIX.&lt;br /&gt;  DESCRIBE TABLE TABIX_STACK.&lt;br /&gt;  CHECK SY-TFILL NE 0.&lt;br /&gt;  READ TABLE TABIX_STACK INDEX SY-TFILL.&lt;br /&gt;  TABIX = TABIX_STACK.&lt;br /&gt;  DELETE TABIX_STACK INDEX SY-TFILL.&lt;br /&gt;ENDFORM.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1319329924141619148?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1319329924141619148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1319329924141619148'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/tree-type-report-in-abap.html' title='Tree type report in ABAP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8137923726966460459</id><published>2008-12-29T01:52:00.000-08:00</published><updated>2008-12-29T01:53:25.440-08:00</updated><title type='text'>A demo program to create subscreen in your ABAP Program</title><content type='html'>A demo program to create subscreen in your ABAP Program&lt;br /&gt;*&lt;br /&gt;* This report will display the user last login date and time.&lt;br /&gt;*&lt;br /&gt;* Subscreen selection 1 : User Name&lt;br /&gt;*                                2 : Last Login Date&lt;br /&gt;*                                3 : Class Belong To&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*                    &lt;a href="http://www.sap-img.com/" target="_top"&gt;http://www.sap-img.com&lt;/a&gt;&lt;br /&gt;* &lt;pre&gt;REPORT ZSUBSCREEN.&lt;br /&gt;&lt;br /&gt;TABLES: USR02,       "Logon data&lt;br /&gt;        SSCRFIELDS.  "FIELDS ON SELECTION SCREENS&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;* SUBSCREEN 1&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.&lt;br /&gt;   SELECT-OPTIONS: USERNAME FOR USR02-BNAME.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 100.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;* SUBSCREEN 2&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.&lt;br /&gt;   SELECT-OPTIONS: LASTLOGI FOR USR02-TRDAT.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B2.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 200.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;* SUBSCREEN 3&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-030.&lt;br /&gt;   SELECT-OPTIONS: CLASSTYP FOR USR02-CLASS.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B3.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 300.&lt;br /&gt;&lt;br /&gt;* STANDARD SELECTION SCREEN FOR SCROLLING LEFT AND RIGHT&lt;br /&gt;SELECTION-SCREEN: FUNCTION KEY 1,&lt;br /&gt;                  FUNCTION KEY 2.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF TABBED BLOCK SUB FOR 15 LINES,&lt;br /&gt;                  END OF BLOCK SUB.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;    SELECT * FROM USR02 WHERE BNAME IN USERNAME&lt;br /&gt;                          AND ERDAT IN LASTLOGI&lt;br /&gt;                          AND CLASS IN CLASSTYP.&lt;br /&gt;       WRITE: / 'User ', USR02-BNAME,&lt;br /&gt;                'Last Login Date ', USR02-TRDAT,&lt;br /&gt;                'Last Login Time ', USR02-LTIME,&lt;br /&gt;                'CLASS ', USR02-CLASS.&lt;br /&gt;    ENDSELECT.&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;* SCREEN ICON LEFT AND RIGHT&lt;br /&gt;  SSCRFIELDS-FUNCTXT_01 = '@0D@'.&lt;br /&gt;  SSCRFIELDS-FUNCTXT_02 = '@0E@'.&lt;br /&gt;  SUB-PROG = SY-REPID.&lt;br /&gt;  SUB-DYNNR = 100.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN.&lt;br /&gt;  CASE SY-DYNNR.&lt;br /&gt;&lt;br /&gt;    WHEN 100.&lt;br /&gt;      IF SSCRFIELDS-UCOMM = 'FC01'.&lt;br /&gt;        SUB-DYNNR = 300.&lt;br /&gt;      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.&lt;br /&gt;        SUB-DYNNR = 200.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    WHEN 200.&lt;br /&gt;      IF SSCRFIELDS-UCOMM = 'FC01'.&lt;br /&gt;        SUB-DYNNR = 100.&lt;br /&gt;      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.&lt;br /&gt;        SUB-DYNNR = 300.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    WHEN 300.&lt;br /&gt;      IF SSCRFIELDS-UCOMM = 'FC01'.&lt;br /&gt;        SUB-DYNNR = 200.&lt;br /&gt;      ELSEIF SSCRFIELDS-UCOMM = 'FC02'.&lt;br /&gt;        SUB-DYNNR = 100.&lt;br /&gt;      ENDIF.&lt;br /&gt;  ENDCASE.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8137923726966460459?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8137923726966460459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8137923726966460459'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/demo-program-to-create-subscreen-in.html' title='A demo program to create subscreen in your ABAP Program'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8199561601335688355</id><published>2008-12-29T01:51:00.000-08:00</published><updated>2008-12-29T01:52:24.499-08:00</updated><title type='text'>TABStrips in ABAP</title><content type='html'>&lt;pre&gt; Different Selection Options separated by Tabstrips 1,2 and 3&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/index.htm" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;br /&gt;REPORT  ZTABSTRIPS  LINE-SIZE 120&lt;br /&gt;        NO STANDARD PAGE HEADING.&lt;br /&gt;&lt;br /&gt;TABLES: ekko, ekpo, eket, marc, t134h.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*   Tab Strips 1&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK vendor WITH FRAME TITLE text-t00.&lt;br /&gt;SELECT-OPTIONS vendor FOR ekko-lifnr.&lt;br /&gt;SELECTION-SCREEN SKIP.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;SELECTION-SCREEN COMMENT (10) text-m01.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN SKIP.&lt;br /&gt;SELECT-OPTIONS vplant FOR ekko-reswk.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK vendor.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 101.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*   Tab Strips 2&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 102 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK data1 WITH FRAME TITLE text-t02.&lt;br /&gt;SELECT-OPTIONS: busarea FOR t134h-gsber,&lt;br /&gt;                plant   FOR ekpo-werks,&lt;br /&gt;                puorg   FOR ekko-ekorg.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK data1.&lt;br /&gt;SELECTION-SCREEN SKIP.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK data2 WITH FRAME TITLE text-t03.&lt;br /&gt;SELECT-OPTIONS  sched   FOR ekko-ebeln.&lt;br /&gt;SELECT-OPTIONS  matl    FOR ekpo-matnr.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK data2.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 102.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*   Tab Strips 3&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 103 AS SUBSCREEN.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK rype WITH FRAME TITLE text-t04.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS del RADIOBUTTON GROUP one.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(35) text-c05 FOR FIELD del.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS fix RADIOBUTTON GROUP one.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(35) text-c06 FOR FIELD fix.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK rype.&lt;br /&gt;SELECTION-SCREEN SKIP.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK interval WITH FRAME TITLE text-t05.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS mon RADIOBUTTON GROUP two.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(15) text-c01 FOR FIELD mon.&lt;br /&gt;PARAMETERS evalmon TYPE spbup.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS wek RADIOBUTTON GROUP two.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(15) text-c02 FOR FIELD wek.&lt;br /&gt;PARAMETERS evalweek TYPE sptag.&lt;br /&gt;SELECTION-SCREEN COMMENT 35(30) text-i01.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK interval.&lt;br /&gt;SELECTION-SCREEN SKIP.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK type WITH FRAME TITLE text-t01.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS ext RADIOBUTTON GROUP thr.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(15) text-c08 FOR FIELD int.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS int RADIOBUTTON GROUP thr.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(15) text-c07 FOR FIELD ext.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK type.&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK pre WITH FRAME TITLE text-t06.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS vn RADIOBUTTON GROUP slv.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(15) text-c09 FOR FIELD vn.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;PARAMETERS bp RADIOBUTTON GROUP slv.&lt;br /&gt;SELECTION-SCREEN COMMENT 4(17) text-c10 FOR FIELD bp.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK pre.&lt;br /&gt;SELECTION-SCREEN END OF SCREEN 103.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF TABBED BLOCK uno FOR 20 LINES.&lt;br /&gt;SELECTION-SCREEN TAB (15) name1 USER-COMMAND ucomm1&lt;br /&gt;DEFAULT SCREEN 101.&lt;br /&gt;SELECTION-SCREEN TAB (17) name2 USER-COMMAND ucomm2&lt;br /&gt;DEFAULT SCREEN 102.&lt;br /&gt;SELECTION-SCREEN TAB (23) name3 USER-COMMAND ucomm3&lt;br /&gt;DEFAULT SCREEN 103.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK uno.&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;  name1 = text-n01.&lt;br /&gt;  name2 = text-n02.&lt;br /&gt;  name3 = text-n03.&lt;/pre&gt;  &lt;center&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=sapinformation0e&amp;amp;p=13&amp;amp;o=1&amp;amp;l=bn1&amp;amp;browse=17&amp;amp;mode=books&amp;amp;lt1=_blank&amp;amp;f=ifr" scrolling="no" width="468" frameborder="0" height="60"&gt;&amp;amp;lt;map NAME="boxmap-p13"&amp;amp;gt;&amp;amp;lt;area SHAPE="RECT" COORDS="379, 50, 460, 57" HREF="http://rcm.amazon.com/e/cm/privacy-policy.html?o=1" target=main&amp;amp;gt;&amp;amp;lt;area COORDS="0,0,10000,10000" HREF="http://www.amazon.com/exec/obidos/redirect-home/sapinformation0e" target=main&amp;amp;gt;&amp;amp;lt;/map&amp;amp;gt;&amp;amp;lt;img SRC="http://rcm-images.amazon.com/images/G/01/rcm/468x60.gif" ALT="Shop at Amazon.com" NOSAVE BORDER=0 usemap="#boxmap-p13" height=60 width=468&amp;amp;gt;&lt;/iframe&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8199561601335688355?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8199561601335688355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8199561601335688355'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/tabstrips-in-abap.html' title='TABStrips in ABAP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5955808569458471660</id><published>2008-12-29T01:48:00.000-08:00</published><updated>2008-12-29T01:51:03.286-08:00</updated><title type='text'>Example Code For Drill Down Report</title><content type='html'>&lt;pre&gt;REPORT  zmm_rept_purchorderkkb01 LINE-SIZE 80&lt;br /&gt;                                 LINE-COUNT 65(3)&lt;br /&gt;                                 MESSAGE-ID z_msg_class&lt;br /&gt;                                 NO STANDARD PAGE HEADING.&lt;br /&gt;&lt;br /&gt;*------------------DECLARING THE STANDARD TABLES---------------------*&lt;br /&gt;TABLES : ekko, "PURCHASE ORDER : HEADER&lt;br /&gt;         ekpo. "PURCHASE ORDER : ITEM&lt;br /&gt;&lt;br /&gt;*------------------DECLARING THE INTERNAL TABLE----------------------*&lt;br /&gt;DATA  : BEGIN OF it_ekko OCCURS 2,&lt;br /&gt;          ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER&lt;br /&gt;          bukrs LIKE ekko-bukrs, "COMPANY CODE&lt;br /&gt;          bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE&lt;br /&gt;          lifnr LIKE ekko-lifnr, "VENDOR&lt;br /&gt;          spras LIKE ekko-spras, "LANGUAGE KEY&lt;br /&gt;          zterm LIKE ekko-zterm, "PAYMENT TERMS KEY&lt;br /&gt;        end of it_ekko.&lt;br /&gt;&lt;br /&gt;DATA  : BEGIN OF it_ekpo OCCURS 2,&lt;br /&gt;          ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER&lt;br /&gt;          ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER&lt;br /&gt;          werks LIKE ekpo-werks, "PLANT&lt;br /&gt;          matnr LIKE ekpo-matnr, "MATERIAL NUMBER&lt;br /&gt;          matkl LIKE ekpo-matkl, "MATERIAL GROUP&lt;br /&gt;        END OF it_ekpo.&lt;br /&gt;&lt;br /&gt;DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;DATA: p_ebeln       TYPE i.&lt;br /&gt;&lt;br /&gt;*------------------Declaring the selection screen--------------------*&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.&lt;br /&gt;&lt;br /&gt;PARAMETER      : p_limit TYPE i.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN END OF BLOCK blk1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*INCLUDE z_incl_purorderkkb01_sub_f01.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*--------------------------------------------------------------------*&lt;br /&gt;*  Validation for  number of records to be printed                   *&lt;br /&gt;*--------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;*AT SELECTION-SCREEN ON p_limit.&lt;br /&gt;*  IF p_limit IS INITIAL.&lt;br /&gt;*    MESSAGE e011.&lt;br /&gt;*  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*  IF p_limit GT sy-linct.&lt;br /&gt;*    MESSAGE e010.&lt;br /&gt;*  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        Search help for purchase document number (s_ebeln-low)        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.&lt;br /&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;br /&gt;    EXPORTING&lt;br /&gt;      input  = s_ebeln-low&lt;br /&gt;    IMPORTING&lt;br /&gt;      output = s_ebeln-low.&lt;br /&gt;&lt;br /&gt;  perform form_search_help.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    CASE sy-subrc.&lt;br /&gt;      WHEN 2.&lt;br /&gt;        LEAVE TO SCREEN 1000.&lt;br /&gt;    ENDCASE.&lt;br /&gt;  ELSE.&lt;br /&gt;    LOOP AT it_ebeln.&lt;br /&gt;      IF sy-tabix = p_ebeln.&lt;br /&gt;        s_ebeln-low = it_ebeln.&lt;br /&gt;        EXIT.&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        Search help for purchase document number (s_ebeln-high)       *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.&lt;br /&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;br /&gt;    EXPORTING&lt;br /&gt;      input  = s_ebeln-high&lt;br /&gt;    IMPORTING&lt;br /&gt;      output = s_ebeln-high.&lt;br /&gt;&lt;br /&gt;  perform form_search_help.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    CASE sy-subrc.&lt;br /&gt;      WHEN 2.&lt;br /&gt;        LEAVE TO SCREEN 1000.&lt;br /&gt;    ENDCASE.&lt;br /&gt;  ELSE.&lt;br /&gt;    LOOP AT it_ebeln.&lt;br /&gt;      IF sy-tabix = p_ebeln.&lt;br /&gt;        s_ebeln-high = it_ebeln.&lt;br /&gt;        EXIT.&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                   Start-of-selection event                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;*----------------------To attach a user interface----------------------*&lt;br /&gt;SET PF-STATUS '0010'.&lt;br /&gt;&lt;br /&gt;*---------To fetch the data for the basic list-------------------------*&lt;br /&gt;    SELECT ebeln                   "PURCHASE ORDER NUMBER&lt;br /&gt;           bukrs                   "COMPANY CODE&lt;br /&gt;           bsart                   "PURCHASING DOCUMENT TYPE&lt;br /&gt;           lifnr                   "VENDOR&lt;br /&gt;           spras                   "LANGUAGE KEY&lt;br /&gt;           zterm                   "PAYMENT TERMS KEY&lt;br /&gt;     up to p_limit rows&lt;br /&gt;     into table it_ekko from ekko&lt;br /&gt;     where ebeln in s_ebeln.&lt;br /&gt;&lt;br /&gt;     REFRESH it_ekpo.&lt;br /&gt;&lt;br /&gt;*---------To fetch the data for the secondary list-----------------------*&lt;br /&gt;&lt;br /&gt;if it_ekpo is initial.&lt;br /&gt;&lt;br /&gt;    SELECT ebeln "PURCHASE ORDER NUMBER&lt;br /&gt;           ebelp "PURCHASING DOCUMENT TYPE&lt;br /&gt;           werks "PLANT&lt;br /&gt;           matnr "MATERIAL NUMBER&lt;br /&gt;           matkl "MATERIAL GROUP&lt;br /&gt;    FROM ekpo  INTO TABLE it_ekpo for all entries in it_ekko&lt;br /&gt;    WHERE ebeln EQ it_ekko-ebeln.&lt;br /&gt;&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                   End-of-selection event                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------To display the data for the basic list-----------------------*&lt;br /&gt;   format color 4 intensified off.&lt;br /&gt;  LOOP AT it_ekko.&lt;br /&gt;    WRITE :/ sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,&lt;br /&gt;                                                    "PURCHASE ORDER NUMBER&lt;br /&gt;                       it_ekko-bukrs UNDER text-003, 27 sy-vline,&lt;br /&gt;                                                    "COMPANY CODE&lt;br /&gt;                       it_ekko-bsart UNDER text-004, 38 sy-vline,&lt;br /&gt;                                                    "PURCHASING DOCUMENT TYPE&lt;br /&gt;                       it_ekko-lifnr UNDER text-005, 50 sy-vline,&lt;br /&gt;                                                    "VENDOR&lt;br /&gt;                       it_ekko-spras UNDER text-006, 62 sy-vline,&lt;br /&gt;                                                    "LANGUAGE KEY&lt;br /&gt;                       it_ekko-zterm UNDER text-007, 80 sy-vline.&lt;br /&gt;                                                    "PAYMENT TERMS KEY&lt;br /&gt;&lt;br /&gt;  hide : it_ekko-ebeln.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                To generate the detailed lists                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;AT LINE-SELECTION.&lt;br /&gt;  CASE sy-lsind.&lt;br /&gt;    WHEN 1.&lt;br /&gt;      SET PF-STATUS '0011'.&lt;br /&gt;&lt;br /&gt;*---------To display the data for the secondary list-----------------------*&lt;br /&gt;WINDOW STARTING AT 10 10&lt;br /&gt;       ENDING   AT 90 30.&lt;br /&gt;    format color 5 intensified off.&lt;br /&gt;  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .&lt;br /&gt;    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,&lt;br /&gt;                                                     "PURCHASE ORDER NUMBER&lt;br /&gt;                       it_ekpo-ebelp UNDER text-008, 30 sy-vline,&lt;br /&gt;                                                     "PO ITEM NUMBER&lt;br /&gt;                       it_ekpo-werks UNDER text-009, 45 sy-vline,&lt;br /&gt;                                                     "PLANT&lt;br /&gt;                       it_ekpo-matnr UNDER text-010, 60 sy-vline,&lt;br /&gt;                                                     "MATERIAL NUMBER&lt;br /&gt;                       it_ekpo-matkl UNDER text-011, 80 sy-vline.&lt;br /&gt;                                                     "MATERIAL GROUP&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;  CASE sy-ucomm.&lt;br /&gt;    WHEN 'EXIT' OR 'CANC' OR 'BACK'.&lt;br /&gt;       LEAVE TO SCREEN 0.&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                    At user-command event                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;AT USER-COMMAND.&lt;br /&gt;  CASE sy-ucomm.&lt;br /&gt;    WHEN 'SELE' OR 'LIST1'.&lt;br /&gt;      IF sy-lsind = 1.&lt;br /&gt;      SET PF-STATUS '0011'.&lt;br /&gt;&lt;br /&gt;*---------To display the data for the secondary list-----------------------*&lt;br /&gt;&lt;br /&gt;WINDOW STARTING AT 10 10&lt;br /&gt;       ENDING   AT 90 30.&lt;br /&gt;       format color 5 intensified off.&lt;br /&gt;&lt;br /&gt;  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .&lt;br /&gt;    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER&lt;br /&gt;                       it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER&lt;br /&gt;                       it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT&lt;br /&gt;                       it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER&lt;br /&gt;                       it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;  CASE sy-ucomm.&lt;br /&gt;    WHEN 'EXIT' OR 'CANC' OR 'BACK'.&lt;br /&gt;       LEAVE TO SCREEN 0.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                    Top-of-page for basic list                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;TOP-OF-PAGE.&lt;br /&gt;&lt;br /&gt; format color 3 intensified off.&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;  WRITE :/    sy-vline,&lt;br /&gt;           03 sy-repid,&lt;br /&gt;           60 text-015,&lt;br /&gt;              sy-uname,&lt;br /&gt;           80 sy-vline.&lt;br /&gt;  WRITE :/ sy-vline, 03 sy-datum,&lt;br /&gt;           35 text-012,&lt;br /&gt;           60 text-014,&lt;br /&gt;              sy-pagno,&lt;br /&gt;           80 sy-vline.&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;  WRITE :/ sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER&lt;br /&gt;                     text-003, 27 sy-vline, "COMPANY CODE&lt;br /&gt;                     text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE&lt;br /&gt;                     text-005, 50 sy-vline, "VENDOR&lt;br /&gt;                     text-006, 62 sy-vline, "LANGUAGE KEY&lt;br /&gt;                     text-007, 80 sy-vline. "PAYMENT TERMS KEY&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*              Top-of-page for secondary list                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;TOP-OF-PAGE DURING LINE-SELECTION.&lt;br /&gt;format color 2 intensified off.&lt;br /&gt;WINDOW STARTING AT 10 10&lt;br /&gt;       ENDING   AT 90 30.&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;  WRITE :/   sy-vline,&lt;br /&gt;          03 sy-repid,&lt;br /&gt;          60 text-015,&lt;br /&gt;             sy-uname,&lt;br /&gt;          80 sy-vline.&lt;br /&gt;&lt;br /&gt;  WRITE :/   sy-vline,&lt;br /&gt;          03 sy-datum,&lt;br /&gt;          35 text-013,&lt;br /&gt;          60 text-014,&lt;br /&gt;             sy-pagno,&lt;br /&gt;          80 sy-vline.&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER&lt;br /&gt;                     text-008, 30 sy-vline, "PO ITEM NUMBER&lt;br /&gt;                     text-009, 45 sy-vline, "PLANT&lt;br /&gt;                     text-010, 60 sy-vline, "MATERIAL NUMBER&lt;br /&gt;                     text-011, 80 sy-vline. "MATERIAL GROUP&lt;br /&gt;&lt;br /&gt;  WRITE :/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                    End-of-page event                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;END-OF-PAGE.&lt;br /&gt;  WRITE :/    sy-vline,&lt;br /&gt;           03 text-016,&lt;br /&gt;              p_limit,&lt;br /&gt;           60 text-014,&lt;br /&gt;              sy-pagno,&lt;br /&gt;           80 sy-vline.&lt;br /&gt;  write:/ sy-uline(80).&lt;br /&gt;&lt;br /&gt;INCLUDE Z_INCLUDE_PURCHORDERKKB01.&lt;br /&gt;form form_search_help .&lt;br /&gt;&lt;br /&gt;REFRESH it_ebeln.&lt;br /&gt;  CLEAR it_ebeln.&lt;br /&gt;  CLEAR P_ebeln.&lt;br /&gt;&lt;br /&gt;  SELECT ebeln FROM ekko INTO TABLE it_ebeln.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'&lt;br /&gt;    EXPORTING&lt;br /&gt;      endpos_col   = 21&lt;br /&gt;      endpos_row   = 35&lt;br /&gt;      startpos_col = 12&lt;br /&gt;      startpos_row = 1&lt;br /&gt;      titletext    = text-012&lt;br /&gt;&lt;br /&gt;    IMPORTING&lt;br /&gt;      choise       = P_ebeln&lt;br /&gt;&lt;br /&gt;    TABLES&lt;br /&gt;      valuetab     = it_ebeln&lt;br /&gt;&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      break_off    = 1&lt;br /&gt;      OTHERS       = 2.&lt;/pre&gt; &lt;b&gt;&lt;span style="color:#990000;"&gt;Tips By : Kavuri&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5955808569458471660?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5955808569458471660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5955808569458471660'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/example-code-for-drill-down-report.html' title='Example Code For Drill Down Report'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8309065056492136861</id><published>2008-12-29T01:46:00.000-08:00</published><updated>2008-12-29T01:48:39.404-08:00</updated><title type='text'>List Box in ABAP Report</title><content type='html'>&lt;pre&gt; List Box in ABAP Report&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/index.htm" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;br /&gt;REPORT ZLIST.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: VRM.&lt;br /&gt;&lt;br /&gt;DATA: NAME  TYPE VRM_ID,&lt;br /&gt;      LIST  TYPE VRM_VALUES,&lt;br /&gt;      VALUE LIKE LINE OF LIST.&lt;br /&gt;&lt;br /&gt;PARAMETERS: PS_PARM(10) AS LISTBOX VISIBLE LENGTH 10.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN OUTPUT.&lt;br /&gt;&lt;br /&gt;NAME = 'PS_PARM'.&lt;br /&gt;VALUE-KEY = '1'.&lt;br /&gt;&lt;br /&gt;VALUE-TEXT = 'LINE 1'.&lt;br /&gt;APPEND VALUE TO LIST. VALUE-KEY = '2'.&lt;br /&gt;&lt;br /&gt;VALUE-TEXT = 'LINE 2'.&lt;br /&gt;APPEND VALUE TO LIST.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'VRM_SET_VALUES' EXPORTING ID = NAME VALUES = LIST.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;WRITE: / 'PARAMETER:', PS_PARM.&lt;/pre&gt;  &lt;center&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=sapinformation0e&amp;amp;p=13&amp;amp;o=1&amp;amp;l=bn1&amp;amp;browse=404276&amp;amp;mode=dvd&amp;amp;lt1=_blank&amp;amp;f=ifr" scrolling="no" width="468" frameborder="0" height="60"&gt;&amp;amp;lt;map NAME="boxmap-p13"&amp;amp;gt;&amp;amp;lt;area SHAPE="RECT" COORDS="379, 50, 460, 57" HREF="http://rcm.amazon.com/e/cm/privacy-policy.html?o=1" target=main&amp;amp;gt;&amp;amp;lt;area COORDS="0,0,10000,10000" HREF="http://www.amazon.com/exec/obidos/redirect-home/sapinformation0e" target=main&amp;amp;gt;&amp;amp;lt;/map&amp;amp;gt;&amp;amp;lt;img SRC="http://rcm-images.amazon.com/images/G/01/rcm/468x60.gif" ALT="Shop at Amazon.com" NOSAVE BORDER=0 usemap="#boxmap-p13" height=60 width=468&amp;amp;gt;&lt;/iframe&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8309065056492136861?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8309065056492136861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8309065056492136861'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/list-box-in-abap-report.html' title='List Box in ABAP Report'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-4227354957604936407</id><published>2008-12-29T01:43:00.000-08:00</published><updated>2008-12-29T01:46:29.232-08:00</updated><title type='text'>ABAP Enhancement</title><content type='html'>&lt;b&gt;&lt;span style="color:#cc0000;"&gt;&lt;span style="font-size:+2;"&gt;General - Reporting Tree in ABAP&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;pre&gt; An ABAP reporting tree program that allows the user to press enter or double click on&lt;br /&gt;* any line. The report is updated with new internal table data and re-written. The cursor&lt;br /&gt;* and paging returns to the exact same line the user was on, even though the report was&lt;br /&gt;* re-written from the internal table. Input fields are filled with data based on ENTER of&lt;br /&gt;* DOUBLE CLICK. [+] and [-] is displayed on each line and changes if user selects to&lt;br /&gt;* expand/collapse.&lt;br /&gt;*&lt;br /&gt;* Create a gui status (8000) with Functions Keys&lt;br /&gt;*                                 ENTER        = ENTE&lt;br /&gt;*                                 BACK         = BACK&lt;br /&gt;*                                 EXIT         = %EX&lt;br /&gt;*                                 CANCEL       = RW&lt;br /&gt;*                                 PICK         = F2&lt;br /&gt;*                                 EXPAND ALL   = EXPA&lt;br /&gt;*                                 COLLAPSE ALL = COLA&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              &lt;a href="http://www.sap-img.com/index.htm" target="_top"&gt;http://www.sap-img.com&lt;br /&gt;&lt;/a&gt;*&lt;br /&gt;REPORT ZTREE NO STANDARD PAGE HEADING&lt;br /&gt;             LINE-COUNT 65&lt;br /&gt;             LINE-SIZE 80.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF IT_DATA OCCURS 0,&lt;br /&gt;        EXP(1) TYPE C,&lt;br /&gt;        WERKS LIKE T001W-WERKS,&lt;br /&gt;        MATNR LIKE MARA-MATNR,&lt;br /&gt;        VALUE1(13) TYPE C,&lt;br /&gt;        VALUE2(13) TYPE C,&lt;br /&gt;      END OF IT_DATA.&lt;br /&gt;&lt;br /&gt;DATA: W_MATNR LIKE MARA-MATNR,&lt;br /&gt;      W_COUNT TYPE I,&lt;br /&gt;      G_FIELD(40) TYPE C.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF PAGE,&lt;br /&gt;        SCRLLINE LIKE SYST-LILLI,      "scroll line to top of screen&lt;br /&gt;        CURSLINE LIKE SYST-LILLI,      "line to put cursor on&lt;br /&gt;        HDRLINES TYPE I,               "lines in header + 1&lt;br /&gt;        TWOHDRS TYPE I,                "two headers on screen&lt;br /&gt;        CPOSTOP TYPE I,                "position of cursor from top&lt;br /&gt;        CPOSBOT TYPE I,                "position of cursor from bottom&lt;br /&gt;        CPOSIT TYPE I,                 "position on the screen&lt;br /&gt;        PAGNO TYPE I,                  "pageno of line&lt;br /&gt;        PGELINES TYPE I,               "lines used so far&lt;br /&gt;      END OF PAGE.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;  PERFORM BUILD_IT_DATA.&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;  PERFORM WRITE_REPORT.&lt;br /&gt;&lt;br /&gt;TOP-OF-PAGE.&lt;br /&gt;  PERFORM TOP_OF_PAGE.&lt;br /&gt;&lt;br /&gt;TOP-OF-PAGE DURING LINE-SELECTION.&lt;br /&gt;  PERFORM TOP_OF_PAGE.&lt;br /&gt;&lt;br /&gt;AT LINE-SELECTION.&lt;br /&gt;  G_FIELD = SPACE.&lt;br /&gt;  GET CURSOR FIELD G_FIELD.&lt;br /&gt;  PERFORM LINE_SELECTION.&lt;br /&gt;&lt;br /&gt;AT USER-COMMAND.&lt;br /&gt;  G_FIELD = SPACE.&lt;br /&gt;  GET CURSOR FIELD G_FIELD.&lt;br /&gt;  PERFORM USER_COMMAND.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM BUILD_IT_DATA                                            *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_IT_DATA.&lt;br /&gt;  IT_DATA-WERKS = '0000'.&lt;br /&gt;  WHILE IT_DATA-WERKS &lt; '0100'.&lt;br /&gt;    ADD '10' TO IT_DATA-WERKS.&lt;br /&gt;    W_MATNR = 0.&lt;br /&gt;    WHILE W_MATNR &lt; 10.&lt;br /&gt;      ADD 1 TO W_MATNR.&lt;br /&gt;      IT_DATA-EXP = '+'.&lt;br /&gt;      WRITE W_MATNR TO IT_DATA-MATNR.&lt;br /&gt;      IF IT_DATA-WERKS = 10 AND W_MATNR = 1.&lt;br /&gt;            WRITE 'ZTEST2' TO IT_DATA-VALUE1.&lt;br /&gt;            WRITE 'Testing program 2' TO IT_DATA-VALUE2.&lt;br /&gt;      ELSE.&lt;br /&gt;            CLEAR: IT_DATA-VALUE1, IT_DATA-VALUE2.&lt;br /&gt;      ENDIF.&lt;br /&gt;      APPEND IT_DATA.&lt;br /&gt;    ENDWHILE.&lt;br /&gt;  ENDWHILE.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM WRITE_REPORT                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM WRITE_REPORT.&lt;br /&gt;  SET PF-STATUS '8000'.&lt;br /&gt;  SYST-LSIND = '0'.&lt;br /&gt;  LOOP AT IT_DATA.&lt;br /&gt;    AT NEW WERKS.&lt;br /&gt;      FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;br /&gt;      WRITE: /1 SYST-VLINE NO-GAP,&lt;br /&gt;                '[' NO-GAP,&lt;br /&gt;                IT_DATA-EXP NO-GAP HOTSPOT ON,&lt;br /&gt;                ']'.&lt;br /&gt;      FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;br /&gt;      WRITE:     IT_DATA-WERKS,&lt;br /&gt;              AT SYST-LINSZ SYST-VLINE.&lt;br /&gt;      PAGE-PAGNO = SYST-PAGNO.&lt;br /&gt;      HIDE: IT_DATA-WERKS, PAGE-PAGNO.&lt;br /&gt;    ENDAT.&lt;br /&gt;    IF IT_DATA-EXP = '-'.&lt;br /&gt;      FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;br /&gt;      WRITE: /1 SYST-VLINE,&lt;br /&gt;              8 IT_DATA-MATNR,&lt;br /&gt;                IT_DATA-VALUE1 INPUT ON,&lt;br /&gt;                IT_DATA-VALUE2 INPUT ON,&lt;br /&gt;             AT SYST-LINSZ SYST-VLINE.&lt;br /&gt;      HIDE: IT_DATA, PAGE-PAGNO.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;  ULINE.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM USER_COMMAND                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM USER_COMMAND.&lt;br /&gt;  PERFORM SET_SCROLL_LINE.&lt;br /&gt;  CASE SY-UCOMM.&lt;br /&gt;    WHEN 'ENTE'.&lt;br /&gt;      READ TABLE IT_DATA WITH KEY WERKS = IT_DATA-WERKS&lt;br /&gt;                                  MATNR = IT_DATA-MATNR.&lt;br /&gt;      IF SYST-SUBRC = 0.&lt;br /&gt;        CASE G_FIELD.&lt;br /&gt;          WHEN 'IT_DATA-VALUE1'.&lt;br /&gt;            IF IT_DATA-VALUE1 &lt;&gt; SPACE.&lt;br /&gt;               SUBMIT (IT_DATA-VALUE1) VIA SELECTION-SCREEN AND RETURN.&lt;br /&gt;            ELSE.&lt;br /&gt;               IT_DATA-VALUE1 = 'Enter 1 Press'(001).&lt;br /&gt;            ENDIF.&lt;br /&gt;          WHEN 'IT_DATA-VALUE2'.&lt;br /&gt;            IT_DATA-VALUE2 = 'Enter 2 Press'(001).&lt;br /&gt;        ENDCASE.&lt;br /&gt;        MODIFY IT_DATA INDEX SYST-TABIX.&lt;br /&gt;      ENDIF.&lt;br /&gt;      PERFORM WRITE_REPORT.&lt;br /&gt;      PERFORM POSITION_LIST.&lt;br /&gt;      CASE G_FIELD.&lt;br /&gt;        WHEN 'IT_DATA-EXP'.&lt;br /&gt;          ADD 1 TO PAGE-CURSLINE.&lt;br /&gt;          SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.&lt;br /&gt;        WHEN 'IT_DATA-VALUE1'.&lt;br /&gt;          SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.&lt;br /&gt;        WHEN 'IT_DATA-VALUE2'.&lt;br /&gt;          SET CURSOR FIELD 'IT_DATA-VALUE2' LINE PAGE-CURSLINE.&lt;br /&gt;      ENDCASE.&lt;br /&gt;    WHEN 'EXPA'.&lt;br /&gt;      PERFORM SET_EXPAND USING '-'.&lt;br /&gt;      PERFORM WRITE_REPORT.&lt;br /&gt;    WHEN 'COLA'.&lt;br /&gt;      PERFORM SET_EXPAND USING '+'.&lt;br /&gt;      PERFORM WRITE_REPORT.&lt;br /&gt;  ENDCASE.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM SET_EXPAND                                               *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM SET_EXPAND USING W_EXP.&lt;br /&gt;  LOOP AT IT_DATA.&lt;br /&gt;    IT_DATA-EXP = W_EXP.&lt;br /&gt;    MODIFY IT_DATA INDEX SYST-TABIX.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM LINE_SELECTION                                           *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM LINE_SELECTION.&lt;br /&gt;  PERFORM SET_SCROLL_LINE.&lt;br /&gt;  READ TABLE IT_DATA WITH KEY WERKS = IT_DATA-WERKS&lt;br /&gt;                              MATNR = IT_DATA-MATNR.&lt;br /&gt;  CASE G_FIELD.&lt;br /&gt;    WHEN 'IT_DATA-EXP'.&lt;br /&gt;      LOOP AT IT_DATA WHERE WERKS = IT_DATA-WERKS.&lt;br /&gt;        IF IT_DATA-EXP = '-'.&lt;br /&gt;          IT_DATA-EXP = '+'.&lt;br /&gt;        ELSE.&lt;br /&gt;          IT_DATA-EXP = '-'.&lt;br /&gt;        ENDIF.&lt;br /&gt;        MODIFY IT_DATA INDEX SYST-TABIX.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;    WHEN 'IT_DATA-VALUE1'.&lt;br /&gt;      IT_DATA-VALUE1 = 'Double Click'(004).&lt;br /&gt;      MODIFY IT_DATA INDEX SYST-TABIX.&lt;br /&gt;    WHEN 'IT_DATA-VALUE2'.&lt;br /&gt;      IT_DATA-VALUE2 = 'Double Click'(004).&lt;br /&gt;      MODIFY IT_DATA INDEX SYST-TABIX.&lt;br /&gt;  ENDCASE.&lt;br /&gt;  PERFORM WRITE_REPORT.&lt;br /&gt;  PERFORM POSITION_LIST.&lt;br /&gt;  CASE G_FIELD.&lt;br /&gt;    WHEN 'IT_DATA-EXP'.&lt;br /&gt;      ADD 1 TO PAGE-CURSLINE.&lt;br /&gt;      SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.&lt;br /&gt;    WHEN 'IT_DATA-VALUE1'.&lt;br /&gt;      SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.&lt;br /&gt;    WHEN 'IT_DATA-VALUE2'.&lt;br /&gt;      SET CURSOR FIELD 'IT_DATA-VALUE2' LINE PAGE-CURSLINE.&lt;br /&gt;  ENDCASE.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM SET_SCROLL_LINE                                          *&lt;br /&gt;* determine the correct line to scroll the re-written report to, so   *&lt;br /&gt;* that the user is returned to the same spot on the screen            *&lt;br /&gt;* if user is mid way between pages, ie two headers are visable on the *&lt;br /&gt;* screen, check if they are on the secondary page and adjust the      *&lt;br /&gt;* scroll variable accordingly so as not to jump up lines because the  *&lt;br /&gt;* scroll variable will be out by the number of lines in the extra hdr *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM SET_SCROLL_LINE.&lt;br /&gt;  PAGE-CURSLINE = SYST-LILLI.&lt;br /&gt;  PAGE-SCRLLINE = SYST-LILLI - ( SYST-CUROW - PAGE-HDRLINES ).&lt;br /&gt;  PAGE-PGELINES = ( PAGE-PAGNO - 1 ) * SYST-LINCT.&lt;br /&gt;  PAGE-CPOSTOP = ( PAGE-SCRLLINE + SYST-CUROW ) - PAGE-PGELINES.&lt;br /&gt;  PAGE-CPOSBOT = ( PAGE-SCRLLINE - SYST-CUROW ) - PAGE-PGELINES.&lt;br /&gt;  PAGE-CPOSIT = PAGE-CPOSTOP + PAGE-CPOSBOT.&lt;br /&gt;  PAGE-TWOHDRS = PAGE-HDRLINES * 2.&lt;br /&gt;  IF PAGE-CPOSIT LT PAGE-TWOHDRS.&lt;br /&gt;    PAGE-SCRLLINE = PAGE-SCRLLINE + 1.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM POSITION_LIST                                            *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM POSITION_LIST.&lt;br /&gt;  CALL FUNCTION 'LIST_SCROLL_LINE_TOPMOST'&lt;br /&gt;       EXPORTING&lt;br /&gt;            LIST_INDEX = 1&lt;br /&gt;            LIST_LINE  = PAGE-SCRLLINE&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            OTHERS     = 1.&lt;br /&gt;  CHECK SYST-SUBRC = 0.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM TOP_OF_PAGE                                              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM TOP_OF_PAGE.&lt;br /&gt;* set page-hdrlines = lines in header + 1 system generated blank line&lt;br /&gt;  PAGE-HDRLINES = 5.&lt;br /&gt;  ULINE.&lt;br /&gt;  WRITE : /1 SYST-VLINE, 'Header'(002), AT SYST-LINSZ SYST-VLINE.&lt;br /&gt;  WRITE : /1 SYST-VLINE, 'Lines'(003), AT SYST-LINSZ SYST-VLINE.&lt;br /&gt;  ULINE.&lt;br /&gt;ENDFORM.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-4227354957604936407?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4227354957604936407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/4227354957604936407'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/abap-enhancement.html' title='ABAP Enhancement'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-2073115650538858026</id><published>2008-12-29T01:38:00.000-08:00</published><updated>2008-12-29T01:41:56.766-08:00</updated><title type='text'>Internal table in ABAP</title><content type='html'>&lt;p&gt;&lt;span style="color:#000000;"&gt;*An internal table is a run time instance.  It get created when program starts execution.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;*It get destroyed when program terminates. it has two different parts.  HeaderLine(optional) &amp;amp; Body(Compulsory).&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;*Any value that comes to or goes from interanal table , that travels through headerline.\&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;*A related program is .&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;*declaration.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;data: begin of inernaltable occurs 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;         x type c,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;         y type i,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;      end of itab.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;*initializing headerline&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;   internaltable-x = 'd'.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;   internaltable-y = 34.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;*storing value into internal table&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;appene internaltable . &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;appene internaltable .&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;appene internaltable .&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;*reading internal table&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;loop at itab .&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;   write: / internaltable-x, internaltable-y.  "writes to output list&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;endloop.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;ABAP Tips by : &lt;/span&gt;&lt;span style="color:#990000;"&gt;Abdul Sayeed&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;Email : &lt;/b&gt;&lt;a href="mailto:sayeed_mail2005@yahoo.com" target="_top"&gt;sayeed_mail2005@yahoo.com&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#cc0000;"&gt;&lt;span style="font-size:+2;"&gt;Fields of Internal Tables&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;SY-TABIX &lt;/p&gt;&lt;p&gt;Current line of an internal table. SY-TABIX is set by the statements below, but only for index tables. The field is either not set or is set to 0 for hashed tables.  &lt;/p&gt;&lt;p&gt;APPEND sets SY-TABIX to the index of the last line of the table, that is, it contains the overall number of entries in the table.  &lt;/p&gt;&lt;p&gt;COLLECT sets SY-TABIX to the index of the existing or inserted line in the table. If the table has the type HASHED TABLE, SY-TABIX is set to 0. &lt;/p&gt;&lt;p&gt;LOOP AT sets SY-TABIX to the index of the current line at the beginning of each loop lass. At the end of the loop, SY-TABIX is reset to the value that it had before entering the loop. It is set to 0 if the table has the type HASHED TABLE.  &lt;/p&gt;&lt;p&gt;READ TABLE sets SY-TABIX to the index of the table line read. If you use a binary search, and the system does not find a line, SY-TABIX contains the total number of lines, or one more than the total number of lines. SY-INDEX is undefined if a linear search fails to return an entry.  &lt;/p&gt;&lt;p&gt;SEARCH &lt;itab&gt; FOR sets SY-TABIX to the index of the table line in which the search string is found. &lt;/p&gt;&lt;p&gt;SY-TFILL &lt;/p&gt;&lt;p&gt;After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TFILL contains the number of lines in the relevant internal table.  &lt;/p&gt;&lt;p&gt;SY-TLENG &lt;/p&gt;&lt;p&gt;After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the length of the lines in the relevant internal table.  &lt;/p&gt;&lt;p&gt;SY-TOCCU &lt;/p&gt;&lt;p&gt;After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the initial amount of memory allocated to the relevant internal table. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color:#009900;"&gt;Fast Links:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Get help for your ABAP problems&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/abap/abap-question.htm" target="_top"&gt;Do you have a ABAP Question?&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;SAP Books&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/sap-books.htm" target="_top"&gt;SAP Certification, Functional, Basis Administration and ABAP Programming Reference Books&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;ABAP Tips&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sap-img.com/abap.htm" target="_top"&gt;ABAP Forum for Discussion and Samples Program Codes for Abapers&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-2073115650538858026?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2073115650538858026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/2073115650538858026'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/internal-table-in-abap.html' title='Internal table in ABAP'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-6468604600611660332</id><published>2008-12-29T01:35:00.000-08:00</published><updated>2008-12-29T01:38:01.620-08:00</updated><title type='text'>Background Processing System Fields</title><content type='html'>&lt;p&gt;SY-BATCH &lt;/p&gt;&lt;p&gt;X   if the ABAP program is running in the background, otherwise space&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;Batch Input &lt;/p&gt;&lt;p&gt;SY-BINPT &lt;/p&gt;&lt;p&gt;X   while a batch input session is running and when an ABAP program is called using &lt;br /&gt;     CALL TRANSACTION USING, otherwise space.  &lt;/p&gt;&lt;p&gt;     OPTIONS FROM in the CALL TRANSACTION USING statement can set SY-BINPT to space either for&lt;br /&gt;     the entire duration of the program, or at the end of the BDC data. &lt;br /&gt;  &lt;/p&gt;     SY-BINPT is always space during a CATT procedure&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-6468604600611660332?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6468604600611660332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/6468604600611660332'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/background-processing-system-fields.html' title='Background Processing System Fields'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-8044596470766535139</id><published>2008-12-29T01:34:00.000-08:00</published><updated>2008-12-29T01:35:12.518-08:00</updated><title type='text'>System Fields for Current Date and Time</title><content type='html'>&lt;p&gt;The following system fields are always set automatically.  &lt;/p&gt;&lt;p&gt;The GET TIME statement synchronizes the time on the application server with the time on the database server and writes it to the field SY-UZEIT. SY-DATUM and the system fields for the local timezone (SY-TIMLO, SY-DATLO, and SY-ZONLO) are also reset.  &lt;/p&gt;&lt;p&gt;SY-DATLO &lt;/p&gt;&lt;p&gt;User’s local date, for example 19981129, 19990628, … &lt;/p&gt;&lt;p&gt;SY-DATUM &lt;/p&gt;&lt;p&gt;Current application server date, for example 19981130, 19990627, … &lt;/p&gt;&lt;p&gt;SY-DAYST &lt;/p&gt;&lt;p&gt;X during summertime, otherwise space.  &lt;/p&gt;&lt;p&gt;SY-FDAYW &lt;/p&gt;&lt;p&gt;Factory calendar day of the week: Monday = 1 … Friday = 5. &lt;/p&gt;&lt;p&gt;SY-TIMLO &lt;/p&gt;&lt;p&gt;User’s local time, for example 154353, 225312, … &lt;/p&gt;&lt;p&gt;SY-TZONE &lt;/p&gt;&lt;p&gt;Time difference in seconds between local time and Greenwich Mean Time (UTC), for example, &lt;br /&gt;360, 10800. &lt;/p&gt;&lt;p&gt;SY-UZEIT &lt;/p&gt;&lt;p&gt;Current application server time. for example 164353, 215312, … &lt;/p&gt;&lt;p&gt;SY-ZONLO &lt;/p&gt;&lt;p&gt;User’s time zone, for example, EST, UTC, … &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-8044596470766535139?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8044596470766535139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/8044596470766535139'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/system-fields-for-current-date-and-time.html' title='System Fields for Current Date and Time'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-5230597482842620909</id><published>2008-12-29T01:12:00.000-08:00</published><updated>2008-12-29T01:13:32.179-08:00</updated><title type='text'>ABAP Forum for Discussion and Samples Program Codes for Abapers</title><content type='html'>&lt;span style="color:#000000;"&gt;There are many Free ABAP Programming Goodies Stuff with examples and samples codes listed here.  It also contains many Questions and Answers that Abapers frequently asked.  ABAP is the official language used by SAP to write its application modules.  If you have any ABAP questions, please feel free to raise your ABAP queries in the ABAP forum.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-5230597482842620909?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5230597482842620909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/5230597482842620909'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/abap-forum-for-discussion-and-samples.html' title='ABAP Forum for Discussion and Samples Program Codes for Abapers'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4186975407487683030.post-1834949493987563975</id><published>2008-12-29T01:10:00.000-08:00</published><updated>2008-12-29T01:12:08.237-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sapabaptutorials'/><title type='text'>sapabaptutorials</title><content type='html'>sapabaptutorials&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186975407487683030-1834949493987563975?l=sapabaptutorials-1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1834949493987563975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186975407487683030/posts/default/1834949493987563975'/><link rel='alternate' type='text/html' href='http://sapabaptutorials-1.blogspot.com/2008/12/sapabaptutorials.html' title='sapabaptutorials'/><author><name>sap abap  tutorials</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
