Why do certian UoMs come with decimals and some dont ?

For example , in this snapshot of the line-items in an order , UoM of EA has decimals whereas PC doesnt. The difference lies in the config of those units of measure in spro as shown below.

Where are SAP Office distribution lists maintained?

SO15

How to customize the incompletion log ?
Simple customizations possible in incompletion log are given below.

For full fledged SAP SD Training or for other SAP Training please visit Magna Training.

  1. I wanted to make the submitted date and time (Additional data B-> MAHDT(date) and BSTZD(time)) mandatory only for Quotations (ZQT) and sales orgs (USXX/CAYY). This cannot be achieved through incompletion log configuration. The core piece of code is highlighted. The rest of it is validations.
    1. The basic structure for customizing incompletion log is XVBUV
    2. The code is as follows in the user exit USEREXIT_CHECK_VBAK
    3. IF ( vbak-mahdt IS INITIAL
      OR vbak-bstzd IS INITIAL ).

      IF ( vbak-vkorg = 'USXX'
      OR vbak-vkorg = 'CAYY' )
      AND vbak-auart = 'ZQT'
      AND sy-tcode = 'VA21'.

      IF vbak-mahdt IS INITIAL.

      read table xvbuv with key fdnam = 'MAHDT'.

      if sy-subrc <> 0.
      XVBUV-MANDT = SY-MANDT.
      XVBUV-VBELN = VBAK-VBELN.
      XVBUV-POSNR = '000000'.
      XVBUV-ETENR = '0000'.
      XVBUV-TBNAM = 'VBAK'.
      XVBUV-FDNAM = 'MAHDT'.
      if vbak-auart = 'ZQT'.
      XVBUV-FEHGR = '90'.
      endif.

      XVBUV-STATG = '01'.
      XVBUV-FCODE = 'KZKU'.
      XVBUV-SORTF = '9999'.
      XVBUV-LFDNR = '0000'.
      APPEND XVBUV.
      FORCE_UPDATE = 'X'.
      endif.

      else.
      read table xvbuv with key fdnam = 'MAHDT'.

      if sy-subrc = 0.
      delete xvbuv where fdnam = 'MAHDT'.
      endif.

      endif.

      clear xvbuv.


      IF vbak-bstzd IS INITIAL.

      read table xvbuv with key fdnam = 'BSTZD'.

      if sy-subrc <> 0.
      XVBUV-MANDT = SY-MANDT.
      XVBUV-VBELN = VBAK-VBELN.
      XVBUV-POSNR = '000000'.
      XVBUV-ETENR = '0000'.
      XVBUV-TBNAM = 'VBAK'.
      XVBUV-FDNAM = 'BSTZD'.
      if vbak-auart = 'ZQT'.
      XVBUV-FEHGR = '90'.
      endif.

      XVBUV-STATG = '01'.
      XVBUV-FCODE = 'KZKU'.
      XVBUV-SORTF = '9999'.
      XVBUV-LFDNR = '0000'.
      APPEND XVBUV.
      FORCE_UPDATE = 'X'.

      endif.

      else.
      read table xvbuv with key fdnam = 'BSTZD'.

      if sy-subrc = 0.
      delete xvbuv where fdnam = 'BSTZD'.
      endif.

      endif.

      clear xvbuv.

      ELSE.
      ENDIF.

      ENDIF

How to create SAP GUI shortcuts with passwords ?

SAP generally does not suggest that passwords be stored in shortcuts. So it is disabled by default. On the windows GUI , here is a method to enable SAP passwords to be stored in shortcuts.

1. Log on to the GUI.
2. Click on the shortcut icon.
3. The password field of the shortcut is normally grayed out. To enable it go-to step 4.
4.
4.1 Register the parameter for the shortcut (sapshcut is available in the SAP GUI directory SAP\Frontend\SAPGUI in GUI 6.2 ).
sapshcut -register
4.2 In HKEY_CURRENT_USER->Software->SAP->SAPShortcut->Security
set the key "Enable Password" to "1"
4.3 Restart if required.


What is Item Category Usage ?

Text item

What is the role of "Parameter ID" in the user profile ?

Parameter IDs are a list of parameters that can stored in memory for a particular login. It can be used in multiple ways. One common use of it is to store commonly used fields in screens to be prefilled based on user preferences. Not all fields in SAP screens have a parameter ID.
[su3]>parameters tab

The correct parameter ID of a field in the SAP screen can be picked up as follows.
Whether a field in SAP is displayed based on the parameter ID of the user settings is based on the screenpainter settings of that screen. If the field is set to display the parameter ID , then it is displayed based on the settings in the user profile.

What are user status and system status ?

SAP SD Training

SAP Training
SAP Status Profile Tutorial

Both at the sales doc header level (Sales type) and item level (Item categlory) a status profile can be assigned. A status profile holds a set of statuses for a sales document. So a user can take a document header/line item through multiple statuses based on her role.

Lets start with status profile assignment at sales type and item category levels.

[VOV8]

If statuses are needed at item level , assign a status profile to the item category.
[VOV7]

Now lets start buy defining a status profile.
[spro]>IMG>S&D>Sales Documents>Define and Assign Status Profile.

1. Define Status Profile.
Each of the statuses are defined here. The first column is the status number . It defines the sequence in which the statuses can be set. It is definitely not necessary that the statuses go through that order all along. Whether a new status can be set in the order can be determined by

  1. The lowest and highest status number as defined for that status. Normally the initial status field(here ZSH1 is checked as the default status. That would be the status when the order is created by default). The highest status determines the status number line that the status can be changed to. For example if the status is currently set to status line ZRRR(which has a highest status of 40) a staus of ZERR(staus line 50) cannot be set becuase the highest status line that a status can be transitioned to is based on the highest status of the current status. Similarly the lowest status determines if the new status number is >= current statuses' lowest status. For example , if the current status is ZRRR , the status cannot be set to ZHLD (status line 20) since the lowest status of ZRRR is 30.
  2. User authorization code. Change of statuses can be restricted to be performed by a user based on authorization code. So in this case ZREL can only be set by a user with a REVREC auth code.
2 Assign status profiles created to sales document type or item categories or both as required.

There is another feature of a status profile. A status on a header or item level in a sales document can determine which transactions can be performed and which cannot. double click on status line 20 in the picture above and you will be taken to the transaction control of the status profile.
The business transactions are listed and for each of the transactions , the characterstics of the status is shown in the radio boxes.
  • No influence ( If the document is in that particular status , then there is no influence on that particular transaction)
  • Permitted ( If the document is in that particular status , then that business transaction is permitted)
  • Warning ( If the document is in that particular status , then when that business transaction is conducted a warning message is issued)
  • forbidden (If the document is in that particular status , then that business transaction is forbidden to be performed on that document)
  • No Action
  • Set (When that transaction is performed on the document , then that particular user status is set by default)

What is SAPConnect ?
SAPConnect is an inbuilt communication interface for external communication like email (SMTP server) , FAX , paging etc. In normally has generic RFC based interfaces for standard communication methods like emails , faxes etc.
SAPConnect as of Web AS 6.1+ offers a standard inbuilt SMTP plug-in ,standard FAX interface and a standard HTTP interface. It can also be used to interface with standard external FAX servers.
[SCOT] is the tcode for viewing SAPConnect screens.


[SCOT] > view > Routing will bring up the following screen. It will show all the communication methods used and any specific routing rules applied.


In the menu are also options to test and trace routing , view all sent/waiting/transmitted requests etc. There is also email blocking functionality. The blanked out emails in the picture are the only domains to which emails can be sent. This can be configured as shown below. Standard routing logic for smtp/fax etc need to be specified. For example, double-clicking on the SMTP button gives the following options where the routing needs to be configured


Outgoing communication statuses like those for emails /faxes can be monitored in the queue as shown below.

ABAP debugging for messages

Whenever a message(warning/error/message) appears on the bottom of the SAP GUI , and if it needs to be found out where/why the message is coming from in the code, instead of debugging from the very beginning , set a break-point on the statement "message" and continue processing the transaction.
When the appropriate message statement is encountered, the debugger automatically stops. This is a better and faster way of debugging when the actual statement at which the breakpoint needs to be set is known.

Generate Access for text determination
when any changes are made to the access sequence of the text determination procedure , do not forget to generate access again.

User Exits in Sales

Most of the user exits are in MV45AFZZ. This is one of the include programs in the main VA0x program SAPMV45A. The user exits and the corresponding explanations are given below.

  1. USEREXIT_DELETE_DOCUMENT ----> When a sales document is deleted , this is the call back where any side-kicks to the sales document can be deleted. For example a for every sales document created

How to find out the technical objects in a Transport Request ? or vice-versa ?

1.Enter the corresponding Transport Request in [SE01]>Display tab.
2. Click the display button



The opposite of it is a little tricky. ie.,We know an object has been changed-lets say a table , view , or the contents and we want to find out which transport request changed it.
[SE01]. Goto> Objects in Requests.Now the type of object that has been modified has to be idenfied first. It could be a table definition, table content , views,programs, functions..etc.
Once the right object type has been identified (for example table contents -- TABU , view data-- VIEW , table definition-- TABL) , enter that object in the object type along with the correct object type , specify any other restrictions like date range etc and F8.

What is tax classification ?

There are different kinds of taxes that are relevant for SD. The fundamental tax type that SD consultants need to worry abt is Sales Tax. There might also be further variations in Sales tax like VAT , state sales tax etc.

The basic premise for taxation is at the material and customer level. Certian materials might be tax-exempt. Certian customers might be tax-exempt(eg. resellers). Certian customers/materials might be partially taxable or with low-tax rates.

The tax category of the customer and material are set respectively in the customer/material master.

  1. Tax categories in Customer master
    1. The typical examples of tax classification are as 0- tax-exempt , 1- liable to taxes, etc
    2. The tax classification as computed in pricing(tax condition types with classification D or E)
  2. Tax Categories in Material master
For a sales order in most of the cases ,the tax calculations as done in the pricing procedure for condition types with classification-tax (eg , MWST , UTXJ,XR1..etc) is based on first determining the tax classification of the customer/material and the country codes of the customer and the delivering plant.
  1. The customers tax classification is trickled down to the sales document in the following order.
    1. Payer (if different from sold-to)
    2. Ship-to (if maintained)
    3. sold-to (if not maintained in ship-to)
  2. The material tax classification is straight forward.
  3. Tax classifications are also maintained at Country/Region(state) level.


So for example UTXJ tax condition type is based on the above combination of customer/material/country/region tax classifications.

How is the delivering plant in the sales document proposed ?
The default delivering plant in the sales document primarily comes from the following in that order
1. Customer Master of the goods recepient.
2. Delivering plant of the material in the Material Master

How to interpret Document flow ?

Document flow is represented in SAP in 2 forms
1. Textual
2. Graphic

1. Textual
2. Graphical document flow gives a much better picture of the whole document.

Why is it that some texts types (header level/item level) are directly editable and others not ?
If the text item is a formatted text , then its grayed out for direct editing.

When are output types triggered ?
The settings for when an output should be triggered are set at the following level
1. Manually do it in a sales document
Click on the output type for which the output settings need to be viewed/changed.
In the further data screen as shown below , there are 4 types of output triggers. The explanation is obvious as to what each type of trigger means. Each of them can be changed manually and a manually changed flag appears on the bottom of this screen.

The configuration for this comes from 2 areas.
1. Condition type description
In the general description of the condition type a number of options are available(eg, if an output can be fired multiple times etc)

The output triggering times are configured here.

2. The configuration at the configuration step of output types can be overrided at the condition record level for the corresponding output types.
Goto [VV13]

What are locks and how are they deleted ?
Since SAP works in a multi-user environment , SAP server locks certian tables in different modes depending on the transaction.
How to view locks based on table/user/lock argument ?
SM12

How to find out all the existing orders(at line-item level) that have a particular material ?

VAPMA

Where are the pricing relevant indicators for item category and where are they set ?

Is there a transaction to view all the general pricing configuration(condition tables, Access Sequences , condition types , pricing procedure , determination, deals, promos) in SD in a single screen ?
Yes. VOK0
similarly VOK2 is for viewing all the output con

What is an update error ?
When an update fails to happen, SAP sends an express email saying the update was terminated with contents similar to this

System ID.... D82
Client....... 500
User..... XXXXXX
Transaction.. VA02
Update key... 44DB4B8B86D81213E1000000A
Generated.... 14.08.2006, 11:38:43
Completed.... 14.08.2006, 11:38:44
Error info... TD 423: WRITE_FORM

A pop-up will also be displayed updating the user about an email sent to his inbox with the above data.
There are 2 ways to diagonize this.
1. SM13 (to analyze/view update requests)
specify the user id and the list of pending/failed updates will be shown.
check mark the line that suits the situation based on time-stamp or type of transaction or double click on the line.
double click on the errored out line.
click on the abap-code link as shown in graphic above. It will take you to the ABAP editor and point out exactly a couple of lines after the error has occured.
2. ST22 (to analyse core dumps)

What are the critical pieces of data in customer master ?
Master data in customer is very critical since that is one of the most important point of data origin for document flow further down the chain. Some of this data could be used for determinations -- shown in bold(transportation zone , shipping conditions , transport zone , calendar etc) while some of the data just flows across the document flow but can be used optionally if required for determinations(sales area , pricing group).

  1. General Data
    1. Address
    2. Transportation zone
    3. Juristriction zone
  2. Company Code Data
  3. Sales Area Data
    1. Sales
      1. Sales District (Optional in Pricing. Mostly used statistically)
      2. ABC Class (Optional)
      3. Product Attributes (1-10) (Optional in matching against prod. attr in Material Master)
      4. Price Group (Optional in Pricing)
      5. Customer Pricing Procedure (Mandatory in Pricing)
      6. Price List (Optional in Pricing)
      7. Customer Statistics Group (Optional in Pricing)
    2. Shipping
      1. Delivery Priority (Used mostly in collective delivery processing. Can be overridden at the customer-material info-record level)
      2. Shipping conditions (Shipping point and Route determination)
      3. Delivering Plant ()

    1. Billing
    2. Documents
    3. Partner Functions

What is Backorder Processing ?
In a sales order , Backorder Quantity = Confirmed Quantity - Delivered Quantity

Managing back order quantity manually for orders/materials is called backorder processing. An important note here is that backorder processing applies only to materials with individual requirements.

What is movement type ?
In SAP every movement of goods(physical/non-physical) needs to be documented.
The types of movement for which movement types are used are

  1. Good Reciept
    1. Vendor
    2. Production
  2. Goods Issue
    1. To Customer
    2. To Production
  3. Stock Transfer
    1. From one Storage Location (SL) to another within the same plant or different plants.
  4. Transfer Posting
    1. A generic terms for stock transfers(physical) or changes in stock type /category(non-physical) of a material. For example, from SAP's perspective one material could be converted to anothe , or material is released from quality to WH etc
All the goods movement types discussed above lead to one of the 2 types of documents described below. ( Its a generally accepted norm in accounting that all goods movement be documented)
  1. Material Document
  2. Accounting Document
    1. Created only when the corresponding movement type is associated with G/L A/c update.
    2. Multiple A/C documents can be created for a single material document(depending on the items and movement in the Mat. document).
Apart from creating the material and A/C documents , the stock quantities/stock values are updated and the appropriated G/L a/c's updated based on whether the goods movement is related to value updation of quantity updation. For each goods movement/special stock indicator combination , if value/quantity/both needs to be updated are specified in OMJJ.

Important notes on material/accounting documents
  1. Once posted they cannot be changed
  2. To modify a posting , another reverse posting has to be created.
It is done through material document(change/view through MB02/03. Created automatically via goods movement). There could be different types of movements possible and SAP defines pre-defined movement types and associate all the characterstics of the movement to the Movement Type. For example it can be specified it the type of movement is Stock transfer or inventory correction or returns..etc. Also the valuation changes (If the material is based on value, then the appropriate G/L A/Cs are updated becuase of the movement ) are posted automatically.
Tcode : OMJJ (spro>IMG>MM>Inventory Management & Physical Inventory>Movement Type> Copy change Movement Type)

what is a price list ?
A price list is just another name for the condition records of a particular condition type/access sequence.
What is the difference between the business term price-list and price-list types as used in SAP Pricing ?
Price List type is an field in the sales view of the customer master that can be used for pricing. It is available in the field catalog and hence can be used as one of the determining factors for pricing using condition technique.

How to consider cumulative quantities of multiple items in an sales document for pricing..?
When quantities of multiple line items in an order need to be added-up to calculate the scale for pricing/discounts , then Group Condition Routine can be used. In the condition type
1. check Group Condition.
2. In the Group condition routine specify the ABAP routine that calculates the sum for specific line-items with the property that needs to be grouped.

what kind of billing documents can be created before PGI is done..?
Proforma Invoices.

why is that when creating deliveries sometimes pick quantities can be updated and packing can be done and PGI done in that order whereas in some case pick quantity cannot be updated and hence PGI cannot be done without Transfer Order..?
Some materials are not pickable in the sense that they are managed by WMS. So instead of doing picking and packing , for materials managed by WMS , a transfer order is done and PGI done.
To make an item category relevant for picking goto IMG->LE->Shipping->Picking->Define Relevant Item Categories.

How to analyze core-dumps?

Tcode :: ST22
Description :: This program shows the run-time errors based on either time , host or user. Using the selection variants as required, create the report, find the record that is required and double-click on it. The ABAP run-time analysis describes the issue. If the exact code where the error has occured needs to be found out , click on the ABAP editor icon in the task bar. Divide by zero is an example. Mostly happens with output routines.

ABAP code comparision
Can ABAP code be compared between previous versions and across instances..?
Yes. different versions of ABAP code can be compared against each other in the same instance/client and also across instances.
For comparing code between different versions on the same instance, do the following
1. SE38
2. Enter the program name
3. Utilities-> Versions -> Version management
4. checkmark the 2 versions that need to be compared.
5. F8.

For comparing code between versions on different instances , do the following.
1. SE39
2. enter the name of the programs that need to be compared across instances.
3. click on "compare different systems" button on the top
4. Enter the RFC destination of the 2nd program. (if required login)

Can SAP provide for different pricing at both order and billing..?
Yes. Normally the same pricing procedure from order applies to billing with options to modify certian elements like freight or taxes. But if required a different pricing procedure can be assigned to a billing document type so that completely different pricing can be attained. Pricing is normally based on a combination of sales area + doc pricing procedure + cust pricing procedure. If a different pricing procedure is specified in the billing document types (VOFA) from the preceding sales document type(VOV8) , then a different pricing procedure applies at billing. (as opposed to a pricing procedure that applied at the order document level.