Quantcast
Channel: SAP ERP - Logistics Materials Management (SAP MM)
Viewing all 133 articles
Browse latest View live

Cycle counting: Configuration, Process flow and Implementation

$
0
0

This is brief overview for implementing cycle counting process in inventory management (IM).


What is cycle counting?

Cycle counting is a method of physical inventory whereby inventory is counted at regular intervals within a fiscal year.  Physical inventory may be required by financial accounting rules or tax regulations. Cycle counting process is less disruptive to operations. This process can be integrated in daily operations, for e.g., count 200 materials at beginning of shift (20 people counts 10 materials each).

 

Cycle Counting allows you to count fast-moving items more frequently than slow-moving items.

 

Cycle counting process is fairly easy to implement. This process increases accuracy of inventory.



Configuration

Cycle count indicator

Follow this configuration path: IMG - Materials Management - Inventory management and Physical inventory - Physical inventory - Cycle counting (Tcode: OMCO)

Configure following parameters
1. Define the allowed cycle counting indicators in the plant.
2. Make the required settings for each indicator.

 

CC-IMG-Settings.png

No. of phys. inventories per fiscal year for cycle counting: Specifies how often during the fiscal year a physical inventory is to be carried out for a material subject to cycle counting. This parameter will convert count interval in work days.

 

Interval: The count interval is determined automatically on the basis of the number of physical inventories specified for the fiscal year.

Float time: Indicates the number of workdays by which the planned count date may vary from the current date.

 

For the plant 3000, the float time is five days. A physical inventory has been planned for a material belonging to category C for June, 1. On expiration of the float time (after June, 6), the physical inventory has not yet been carried out. Irrespective of the category, the material is parked for the next cycle counting run.

 

Percentage: Specifies the percentage allocation of the materials to the individual cycle counting categories. The percentage value is used for automatic assignment of the cycle counting indicator during ABC analysis.



Settings for physical inventory

 

This is more generic physical inventory settings, but it may impact cycle counting process
CC-IMG-Settings_for_PI-SR.png
  • Change documents are activated for physical inventory document.
  • The book inventory balance is adjusted in the physical inventory.
  • Serial number management is setup. In the above example, last five digits of serial numbers will be printed on physical inventory document.

 

 

 

Reason for movement

 

Follow this configuration path: IMG - Materials Management - Inventory management and Physical inventory - Movement type - Reason for movement (tcode: OMBS)

As per your business requirement configure reason code for movement type 701, 702

 

Master data

1.    Cycle counter indicator set for the material’s plant data 1 tab. (Tcode: MM02)

CC-MM02.png

This indicator is set if the material is to be cycle counted. It can also determine how the count is taken and how often. It groups the materials together into various cycle counting categories. Usually, these categories correspond to the ABC analysis of the materials. ABC analysis can be done via report MIBC (Program RMCBIN00).
2. Cycle counting indicator is fixed:

This means that the cycle counting indicator cannot be changed for cycle counting by an ABC analysis.



Execution / Process flow chart

Here is flow chart for cycle counting process

 

cc-flowchart.jpg

Assuming cycle count indicator is set on materials, first step in cycle count process is to create cycle counting documents.

MICN - Create Physical Inventory Documents for Cycle Counting

This report is to create batch input session’s physical inventory documents for the cycle counting physical inventory procedure.

Selection

Restrict selection based on Material number, storage location, Material group etc.

In addition to unrestricted-use stock, you can include stock in quality inspection and blocked stock in the selection.

By specifying a threshold value, you can define that only stocks above or up to a particular level are included.


Physical inventory number

You can setup batch job with different variants for generating cycle count sheets in MICN. You can use TVARV table to customize physical inventory number and/or physical inventory reference. For example: you want to have different reference numbers for each storage locations for ease of reporting. You can use above reference number in setting up next job for auto printing physical inventory document via MI21.

Posting block

 

Indicates that no goods movements involving the materials listed in the physical inventory document can be posted for the duration of a physical inventory count.

The indicator is set for the affected stocks in each case (storage location stock, batch stock, or special stock), for all associated stock types and is not cancelled until the count results are posted.

The blocking indicator can be setup in one of two ways:

•          Directly upon entry of the physical inventory document (if the count is to take place immediately).

•          Shortly before the count (if the count is to place later).

 

Freeze book inventory

 

It specifies the book inventory balances of those items in a physical inventory document that have not yet been counted and are frozen. This indicator has the effect that the current book inventory balance is recorded in the physical inventory document. The system compares the counted stock with the frozen book inventory balance to determine any inventory differences. If the count results are not entered immediately after the stock has been counted, it is useful to set this indicator so that any goods movements which may take place in the meantime will not change the book inventory balance relevant to the physical inventory.

For example: Business process is to count inventory before shift begins, and then after few hours inventory administrator enters counts. In this case do not set ‘Posting block’, as production will need to perform goods issue. In this case set ‘Freeze book inventory’, so inventory count will be measured against inventory at the time when physical inventory documents were created.

 

Output of MICN

 

Output will have all materials for which physical inventory documents can be created.

It then lists the stock management units for which a physical inventory is already active, but has not been completed within the predefined float time and therefore must be completed urgently. These stock management units are not included when the batch input session is created because active physical inventory documents already exist.

In addition, the list contains all materials for which cycle counting is required within the planned interval (specified interval for the planned count date). If a physical inventory had already been due prior to the planned interval, the planned count date would be highlighted.

The remaining steps are self-explanatory. Inventory reference number can be used for the rest of the transaction to complete cycle counting process.



MI21 – Print Physical inventory document

Here you can specify:
•    Grouping criteria e.g. Group by bin number
•    Sorting criteria for serial numbers

MI24 – Physical inventory list

This transaction can be used as working transaction for inventory administrators. User can use inventory reference number to group cycle counting document.

In this transaction user can enter count, monitor progress, run analysis and post counts.

 
CC-MI24.png

Integration

 

When the inventory differences are posted, the total stock is automatically adjusted to the counted quantity on the document. When the document is posted, the difference will correspond to either a goods receipt of goods issue. This affects following areas:

•          Material planning for production or sale orders

•          Stock value on balance sheet



Tips

1.    If there is any historical record for last cycle date, during cutover update field DLINL in MARD table to continue cycle counting process
2.    Refer to SAP note 518418 - FAQ: Cycle Counting
3.    Physical inventory can be counted for special stocks as well e.g. MIW1 – Consignment at Customer, MIO1 – Material provided to vendor

Source: help.sap.com
I welcome your comments/suggestions/insights.
Thanks,

Stock Cycle Optimization

$
0
0

1 Introduction :

 

Sourcing do often ends up with a situation where in the planned supplies will run either for a shortage or for an over run. This often leads to a short fall of the allocated budgets. In any industry inventories plays a major role for the current assets and will become dead capital once they are procured if not properly flown to the customer in the final form .At the same time under run of the inventories cause severe sale problems, leading to the loss of business.

 

A match for the flow of sale and in house inventory will always improve the over all budget plan, there by increase in the ROI.

 

Most often Maximization policies fail due to unforeseen issues, causing planning cycle to get distorted and a disruption in the flow of the process of industrial manufacturing cycle.

 

The inventory flow can be optimized by incorporating proper monitoring process and by incorporating the necessary tools so as to see that at any point of time neither too much capital is invested Nor shortfalls.

 

SAP offers such tools in its pack, and in the forth going paragraphs these tools are discussed briefly.

 

2. The Process:

 

The inventory optimization can be done on the basis of the effective implementation of the below tools coupled with proper master data maintenance

 

Normally in Logistics master data includes

 

Material master data which will be maintained at MM01,

Vendor Master Data at XK01,

Source list and Info Record and if necessary Quota Arrangement at ME01, and ME11 and MEQ1 respectively etc FROM Purchasing side and

 

Customer Master at XD01, Customer Contracts at VA41, Sales conditions at VK31 towards Sales etc and

 

Bill of materials (BOMS) at CS01, Work Centers CR01, Routings at CA01, MRP details towards Production,

 

Inspection Plan QP01, Material specisifications at QS61 etc towards Quality management

 

 

Once the master data is properly set the SAP system will be ready for utilization of various manufacturing process for use and the systematic application of the module processing of the tools will bring a systematic and scientific flow of processes which will provide a statistical analysis and decision process, leading to correctness in managerial decisions .

 

Below discussed tools will be extremely useful in attaining the goals.

 

Demand Planning

Materials Requirement planning

Safety stocks

Lot sizes

Production

Inventory Analysis:

 

2 A. Demand Planning :

 

Demand Planning is in turn finding out the demand for the sale .This can be done by using data available historically and by forecasting the requirements for a time span .The result of the demand planning can be utilized for Productional and Financial resources. If the variance between the forcast of sales and the actual customer demand is too big can cause stock outs.If the demand planning is is more than the actual customer requirement ,surplus inventoris can result .And hence accuracy of the demand plan lead to theefficiency of the stock management .

 

And hence the function of the Demand Management or Planning is to determine requirement quantities and delivery dates for finished products assemblies. Customer requirements are created in sales order management. To create a demand program, Demand Management uses planned independent requirements and customer requirements.In order to define the Demand Planning , we need to plan for Planning strategies which represent the methods for production planning or manufacturing or for procuring the product .The planning strategies in SAP like Make to Order or Make to stock Production or Planning with Final Assembly or Planning at Final Assemble level for the finished products are extreamly be useful for Demand Planning .

 

In Demand Management , one must need to think about the Planned Independent Requirements and Customer Requirement .

 

Planned Independent requirements are the results of the creation of planned quantities for a date or number of planned independent requirements for a schedule lines .In SAP these can be created at MD61.

 

Customer Requirements are  the sales orders in the system. A sales order is a contractual agreement between a sales organization and a sold-to party. A sales order contains information on the delivery of a quantity of materials (or service) for a certain date. Also these can be created manually at MD81.

 

2 B.Materials Requirement Planning:

 

MRP is one more important process in attaining the stock optimizing process .It focuses on the required materials for the planned and confirmed demand and plans for either internal or external procurement .The main fuction of this MRP is to gurantee the materials.availability .Diagramatically the process flow of MRP can be represent like this .

MRP.jpg

In order to find out the requirements and the procurement proposals various transaction codes can be used 

 

The following transaction codes are extremely useful for MRP.

Md01: For total planning

MD02: Multilevel Single-item planning

MD03: Single level single item planning

MD57: Planning table by MRP lists.

MD20: Create planning file entry

 

 

2 C.Safety Stock :

 

Safety Stock is one more concept in the stock optimizing cycle which will concentrate on the stock level to be kept as buffer so as to cover demand for the present as well as for future .Most often IM failes in the proper calculation of the safety stocks , there by increase in the Inventory or insufficient Inventory .The Lead Time will effect the safety stock .Normally the demand , lead time ,Invetory carriying costs and holding will be taken into consideration in finding out the safety stock .

 

In SAP , there is a concept of Minimum safety stock . The calcutaions for the safety stock is less than the minimum safety stock , system will consider the minimum safety stock maintained in the MRP 2 view of the material master .

 

2 D .Lot Sizes :

 

Lot Sizes play a good role in the optimizing the cycle.Lot sizes defined in the material master define optimized quantities for the procurement .In SAP , the provisions for Minimum Lot Size, Maximum Lot Size ,Rounding value are extreamly important for the procurement proposals . SAP will find the optimum lot size to propose for procurement during MRP .There are wide variety of Lot Sizes to get selected , for proper MRP run and for procurement proposals .

 

Lot Sizing Proposals include 1. Static Lot Sizing Proposals : In this the procurement quantity is calculated exclusively by means of the quantity specifications provided in the material master .These include Lot for lot order quantity ,Fixed lot size , Replenishment upto maximum stock level ,.

 

Lot Siizing Proposals Include 2. Period Lot Sizing procedures : In this the system groups several requirement which are there in a perticular period .like days ,Months etc.

 

Also the lot Sizing Proposals Include 3. Optimum Lot Sizing Proposals : In order to minimize the costs involved . system will find the shoratege quantity to represnt the minimum Order quantity ,and then adds successive shartage quantities to this lot size untill by means of the perticular cost Criterian , to estamiblish the optimum cost criteria .

 

There are many optimum lot sizing prosals are available like Part Period Balanacing ,Least Unit Cost procedure ,Dynamic Lot Sizing calculation ,Groff Reorder Point Calculation etc to get selected for the optimal lot size which will reduce the costs involved in procurement .

 

2 E .Production :

 

The logistics of production is a central functional area within the entire supply Chain. The largest portion of the value addition of a manufacturing company is generated within production logistics. All processes, such as procurement, and the process like distribution, are linked to production.

 

Products are produced and refined within Production. The value addition within production is what makes money. The essential goals of production are therefore short product lead times, low inventories, on-time deliveries, and a high degree of machine utilization and which has to lead to customer satisfaction.

 

Success factors that lead to a high degree of customer satisfaction are a long-term relationship with a customer through short delivery times and high delivery reliability. Short delivery times can be achieved by short product lead times, high delivery reliability, low scrap rates, and a high degree of capacity utilization. But, short product lead times and a high degree of capacity utilization are contradictory objectives.

 

The optimization of these goals is the focus of production planning and control. Production planning consists of all the essential planning tasks, such as the creation of

Master data, work scheduling, and the creation of a production program, as well as capacity leveling. Basically, production planning comprises all work that occurs prior to the actual production start. The production program determines the type and quantity of items to be produced. This applies to final products, semi finished products and subassemblies. The program is also used to define the most favorable production lots and procurement Quantities. The production dates (planned dates) and the order sequence are Defined in capacity scheduling.

 

2 F.Inventory Analysis:

 

With all the above tools the Generated inventories in the system needed to be classified and analyzed for their characteristics of mobility, consumption, cost etc. Proper analysis provides decisional data , which leads to a FEED BACK mechanism and  a corrective environment.

 

There are few tools available for the analysis.

ABC Analysis: The ABC analysis is an organizational procedure that can be used to classify large data quantities and values. The data can represent material or processes. In this method data is roughly divided into three classes A, B, and C.

Class A, Materials:The quantity portions of materials in Class Aare usually approximately 5-10%,  in the total utilization while the value represents approximately 70-80%. These materials are the most important ones and have the biggest potential for optimization.

Class B , Materials:The quantity portion of materials in Class Bis 15 -20%, and the value portion will be 15-20%.

Class C , Materials: Class C materials contains 70-80% of the total materials, and thus, C materials occur most Often. However, the value of 5-10% only is the smallest one. They mainly involve automatic processes in order to keep the costs as low as possible.

There are number of SAP Information System reports under Inventory Management provides environment for ABC analysis for its Graphical representation.

The broad classifications for such reports are

Material : MC.9,MC44,MC45 MC46 etc

Plant: MC.1, MC.2, MC.3, MC.4 etc

Storage Location: MC.5, MC.6, MC.7, MC.8 etc

MRP Controller: MC.D, MC.E, MC.F, MC.G etc

 

 

Conclusion:

 

The profitability of any firm is a proportion of a perfectly monitored system of the input and the process and the output .Through out the cycle of the process before the final product reaches the customer, is the Cost of Inventory which plays the role as being a current asset .Of course inventory will become a devil, if not controlled through proper controlling mechanism, and is a necessary evil which has to be Optimized.

 

Though the other modules of industry involves, too in optimizing, the points which are discussed above play a vital role in doing so.Using the SAP provided core modules effectively coupled with proper master data and thus the analysis of produced data with a proper decisive environment will lead to a Optimized Inventory reducing the costs and a proper flow of materials through out the manufacturing cycle.

 

This is a brief representation of a very vast subject of Stocks or Inventory Optimization .Optimization is a continuous process in any industry .

Work Flow Mail Generation for Release Procedure in Sourcing Module

$
0
0

Introduction:

 

In Sourcing it is regular to have the release process for the POs created by the Buyers. Approvers quiet often need to have the information of the Purchase Orders created for their approvals in a one way mode of communication say through a mail triggered to their Outlook through SAP so that they will have the information that a Purchase Document is on wait for his approval.

 

SAP has given a way to accomplish this through a process called workflow generation. The created workflow template based upon the release conditions will trigger a mail to the approver.

 

The Process:

 

Step 1: Create a Release Procedure

Step 2: Assign release characteristic values to the release to the release strategy Created.

Step 3: Create a workflow with the release conditions.

The process will be explained here for a single stage workflow mail to get triggered to the approver.

 

Step 1. Create a Release Procedure

 

Path: SPRO-->Materials Management -->Purchasing -->Purchase Order-->Release Procedure for Purchase Orders-->

 

Here create a). Characteristics (Transaction Code CT04)

 

1.jpeg.png

b) CLASS (Transaction Code CL02) Here we need to create a Class , which is the container of the characteristic and assign the Characteristic

 

2.png

 

C) Define Release Procedure for Purchase Orders

 

C.1) Define Release Group:

 

3.png

C.2) Define Release Codes: Define a Release code called Z1 for the release Group Z1.

 

4.png

C.3 ) In this step you define the  Release strategy for the Release Group and the Release code Created.

 

5.png

Step 2 :

 

Either at the CL20N Transaction code at the Classification Button in the above screen assign  the values for the Characteristics Assigned to the class so as to enable the release . Here in this case for the PO value say ‘>50000 USD.

 

6.png

Now the Release Procedure is ready.

 

With the above process created, now whenever a user creates a PO which is greater than 50 thousand US Dollars, the Release gets triggered to the PO.

 

Step 3 :

 

The approver can have a mail notification sent to his mail box through SAP

The below steps explains how this process can be made possible.

 

Use the Transaction code SWDD-->Create a workflow

 

In this Transaction code we need to use the standard template for the PO Release as Task TS90100059 (PO_ Release)

 

Select the Task to be Send Mail

 

7.png

 

8.png

 

Add a Binding with the Release Group and Strategy with the Release Indicator.

 

With this Binding we are telling to the system saying that an activity will be started when a PO is with the specified Release Group and Release strategy, system initiates a mail to the approver mail box, which is already indicated in the workflow.

 

Conclusion:

 

The process depicted above is a simple mail generation process for a single step approval .This process can be used for multi level approval too .

Obsceneness Prevention using Material Status (MARC-MMSTA)

$
0
0

IntroductionandPurpose of the Topic:

 

Generally every business keeps focus on continuous product development and keeps changing and improvising the product specifications and features. How ever, for the existing customers, who are using the earlier version of the product, companies are compelled support, service spares requirement. In terms of inventory management, this means that a material, which used to be procured / manufactured with a nominal control on inventory, face a risk of obsolescence over a period of time. This calls for a very cautious inventory management. Hence, when we have to support such situation, Sourcing and inventory managers like to monitor the procurement strictly against a confirmed requirement, rather than procuring to stock

 

In most of the cases Business often procures the materials for stock and Some times due to business difficulties the procured stock will not get utilized either for production internally or for a external sale, there by piling of the stock .If the procured stock is of chemical in nature, after its Shelf life gets expires and which requires a quality check for deciding over its further utilization either for a scrap or for extension of its shelf life. In both the cases the valuable time of the Business users will get wasted at the same the money.

 

In some of the cases some materials which belong to the material types other than the material type UNBW will be with a standard cost zero with a notation to the users these materials need to be procured for consumption/for account assignment. However users often create Pos with out account assignment..

 

If users are restricted to procure the material for stock rather for a purpose?

 

The forth going paragraphs will depict how this can be achieved.

 

 

How to Achieve the Purpose:

 

In SAP the Material Types Non stock materials (UNBW) and Non Valuated Materials (NLAG) will ask for a account assignment category during the creation of PO there by the Buyer to enter the same and during its Goods Receipt system posts the documents against the consumption account.

 

The same functionality has been utilized for the purpose to see that the costs are posted against the account assignment and no stocks are visible at MMBE there by causing problems at a later date.

 

Process of Achieving the Purpose:

 

Using these particular scenario users 1.Will be restricted to create the PO with account assignment for the materials in question, there by reducing the inventory related issues at a later date.

 

Let us now see how this particular purpose is achieved through the settings in SAP.

 

  1. Creation of a Material status.
  2. Insertion of the code in the function module MEX_PSTYP_KNTTP.

 

This piece of code will check for the new material status in the material master for the material which is being created for a PO and if the material status in the material is the new material status created , gives a error message for the user saying that ‘Account assignment Category is mandatory for the item’. And which will not allow saving the PO unless the Account Assignment category details are provided.

 

1.Creation of the material status.

At SPRO—Logistics General---Material Master---Settings for key fields—Define Material Status

 

9.png

 

Here a new material status will be created with no controlling functions .The following is the screen shot for the same.

 

2.Insertion Of the code in the function Module MEX_PSTYP_KNTTP

At SE37 for the above function module, the following code will be addedat the relevant place. The below code only provides a guide line for the logic .

 

Code Details:

 

               select single * from marc into wa_marc

                 where matnr = im_matnr and

                       werks = im_werks.

          if sy-subrc = 0.

            IF wa_marc-mmsta = '09'.

              MESSAGE E062(ME) with im_MATNR.

           

 

 

Result of the Code:

 

The above code during its execution while creation of the Purchase Order will check for the material status in the material and if it equals with the newly created material status defined for this purpose, it will initiates the error message to stop further creation of the PO and ‘save’ rather issue a Error Message ‘E062’ which is ‘Account Assignment Category is Mandatory for the material.

 

Users will need to enter the Account Assignment Category details for creating the PO.

 

Conclusion:

 

Basically the above process will restrict the users to create the Pos only with account assignment category to those materials which have been assigned with the material status and acts as a controlling and preventive mechanism for procurement of materials there by reducing the inventories and their costs and time.

Create a custom field in MM01 / MM02 / MM03 Material Master

$
0
0

Go to SE11 and open table MARC. Create a new append structure (YST_MARC_CUST) in MARC and add the field YYQTYMAX in it. Since this is a modification to SAP necessary requests need to be created.

 

image002.jpg

 

Go to SPRO and open IMG.

Navigate to Logistics – General > Material Master > Configuring Material Master > Define Structure of Data Screens for Each Screen Sequence

 

image004.jpg

 

Select screen sequence 21

 

image005.png

 

Double click on Data screens folder on the left and select screen 11

 

image008.jpg

 

Double click the subscreens folder on the left. Select subscreen 5.

 

image010.jpg

 

Click view subscreen to check whether this is the same subscreen. (view V_T133C)

 

image012.jpg

 

Go to SE80 and open function group MGD1 and subscreen 5802

 

image014.jpg

 

This is the subscreen we need to copy and then customize. In order to do so,  we create a new function group YFG_P2P_MGD1.  This has to be done using report COPYMGD1

 

image016.jpg

 

image018.jpg

 

We can also use the menu from the IMG for the same purpose

 

image020.jpg

 

Right click and copy the subscreen into the new function group

 

image022.jpg

 

Edit the layout and add a field MARC-YYQTYMAX in the marked area

 

image024.jpg

 

Write FIELD marc-yyqtymax. Somewhere in between get_daten_sub and set_daten_sub in the PAI so that changes to this field are recognised.

 

image026.jpg

 

Save and activate

Change SAPLMGD1 5802 to SAPLYFG_P2P_MGD1 5802 in the IMG and save to map the new subscreen.

 

image028.jpg

 

Open MM01/02/03 to check if the changes are reflected.

 

Capture.JPG

A Reusable BDC for Vendor Bank Details uploads:

$
0
0

Introduction :

 

Most of the times it will become imperative to upload the bank details for the vendor master , when vendors  exists in multiple company codes and when the vendors operate in multiple countries and multiple areas .

 

In such cases vendors will have multiple bank accounts and updating the Bank Details into the vendor master will become tedious job for a manual entry. In order to reduce the time involved in updating the details and to reduce the manual intervention, BDC program can be much useful with an input file.

 

Vendor Master will have details like

 

Country Key,

Bank Key,

Bank Account,

Account Holder,

Bank Control Key,

IBAN

Swift Code

IBAN Value

Partner Bank Type

Reference Details .

A Typical Bank Details SCREEN of Vendor looks like this.

 

10.png

 

The program can be provided with an authorization object to restrict the users.

 

The Program can be as follows

 

REPORT  Z_VENDOR_MASTER_BANK  NOSTANDARDPAGE HEADING
                                       
LINE-SIZE255
                                       
LINE-COUNT300.

TYPE-POOLS: TRUXS.

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&  Types  Declarations

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

TYPES : BEGINOF  TY_LFA1,
          VENDOR       
LIKE LFA1-LIFNR,
          COMP_ID      
LIKE LFB1-BUKRS,
          BANK_COUNTRY 
LIKE LFBK-BANKS,
          BANK_KEY     
LIKE LFBK-BANKL,
          BANK_ACC     
LIKE LFBK-BANKN,
          ACC_HOLDER   
LIKE LFBK-KOINH,

CRTL_KEY      LIKE LFBK-BKONT,
          IBAN         
LIKE TIBAN-IBAN,
          SWIFT_CODE   
LIKE BNKA-SWIFT,
          BANK_NAME    
LIKE BNKA-BANKA,
          PARTNER_TYPE 
LIKE LFBK-BVTYP,
          REF_DETAILS  
LIKE LFBK-BKREF,
          COLLECT_AUTH 
LIKE LFBK-XEZER,
       
ENDOF TY_LFA1.

TYPES : BEGINOF  TY_BNKA,
          VENDOR       
LIKE LFA1-LIFNR,
          COMP_ID      
LIKE LFB1-BUKRS,
          BANK_COUNTRY 
LIKE LFBK-BANKS,
          BANK_KEY     
LIKE LFBK-BANKL,
          BANK_ACC     
LIKE LFBK-BANKN,
          ACC_HOLDER   
LIKE LFBK-KOINH,
          CRTL_KEY     
LIKE LFBK-BKONT,
          IBAN         
LIKE TIBAN-IBAN,
          SWIFT_CODE   
LIKE BNKA-SWIFT,
          BANK_NAME    
LIKE BNKA-BANKA,
          PARTNER_TYPE 
LIKE LFBK-BVTYP,
          REF_DETAILS  
LIKE LFBK-BKREF,
          COLLECT_AUTH 
LIKE LFBK-XEZER,
       
ENDOF TY_BNKA.

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&  Data  Declarations

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

DATA: IN_LFA1 TYPE TY_LFA1 OCCURS0WITHHEADERLINE,
      IN_BNKA
TYPE TY_LFA1 OCCURS0WITHHEADERLINE.
DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.
DATA : BDCDATA LIKE BDCDATA OCCURS0WITHHEADERLINE,
       I_MSG 
LIKE BDCMSGCOLL OCCURS0WITHHEADERLINE,
       TEMP
TYPE STRING,
       I_RESULT
TYPE STRING.
DATA : CNT(4) TYPE N.

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&  SELECTION-SCREEN

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

SELECTION-SCREENBEGINOFBLOCK B1 WITHFRAMETITLETEXT-001.PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.PARAMETERS: P_MODE(1) DEFAULT'N'.
SELECTION-
SCREENENDOFBLOCK B1.

*&--------------------------------------------------------------------*

*&  INITIALIZATION

*&--------------------------------------------------------------------*

INITIALIZATION.

  AUTHORITY-
CHECK OBJECT 'Z_VEND_CHG'
              
ID'ACTVT'FIELD'16'.
 
IF SY-SUBRC <> 0.
   
MESSAGE E999(M02) WITH'You are not Authorized to run the program'.
   
LEAVEPROGRAM.
 
ENDIF.
*&--------------------------------------------------------------------**& AT SELECTION-SCREEN*&--------------------------------------------------------------------*
AT SELECTION-SCREENONVALUE-REQUEST FOR P_FILE.
 
CALLFUNCTION'F4_FILENAME'
   
IMPORTING
      FILE_NAME = P_FILE.

*&--------------------------------------------------------------------*

*&--------------------------------------------------------------------*

*& START-OF-SELECTION

*&--------------------------------------------------------------------*

*&--------------------------------------------------------------------*

START-OF-SELECTION.
 
PERFORM EXCEL_UPLOAD.
 
PERFORM SPLIT_DATA.
 
PERFORM POPULATE_BDCDATA.

*&---------------------------------------------------------------------*

*&      Form  EXCEL_UPLOAD

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

 

*  <--  p2        text

*----------------------------------------------------------------------*

FORM EXCEL_UPLOAD.

*--To upload data from excel sheet to internal table
 
CALLFUNCTION'TEXT_CONVERT_XLS_TO_SAP'
   
EXPORTING
      I_FIELD_SEPERATOR    =
'X'
      I_LINE_HEADER        =
'X'
      I_TAB_RAW_DATA       = IT_RAW
      I_FILENAME           = P_FILE
   
TABLES
      I_TAB_CONVERTED_DATA = IN_LFA1
   
EXCEPTIONS
      CONVERSION_FAILED    =
1
     
OTHERS               = 2.
 
IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 
ENDIF.


ENDFORM.                    " EXCEL_UPLOAD

*&---------------------------------------------------------------------*

*&      Form  POPULATE_BDCDATA*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM POPULATE_BDCDATA .

 

*--Populating internal table data to BDC
 
LOOPAT IN_LFA1.
   
REFRESH BDCDATA.
   
CLEAR BDCDATA.

*--Vendor data
   
PERFORM BDC_DYNPRO      USING'SAPMF02K''0101'.
   
PERFORM BDC_FIELD       USING'BDC_CURSOR'
                                 
'RF02K-D0130'.
   
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                 
'/00'.

   
PERFORM BDC_FIELD       USING'RF02K-LIFNR'
                                  IN_LFA1-VENDOR.          
"'111111'.
   
PERFORM BDC_FIELD       USING'RF02K-BUKRS'
                                  IN_LFA1-COMP_ID.         
"'0777'.

   
PERFORM BDC_FIELD       USING'RF02K-D0130'


*--For Bank data

PERFORM BDC_DYNPRO      USING'SAPMF02K''0130'.*    PERFORM BDC_FIELD       USING 'BDC_CURSOR'*                                'LFBK-XEZER(01)'.*    PERFORM BDC_FIELD       USING 'BDC_OKCODE'*                                 '=BANK'.
   
CNT = 0.
   
LOOPAT IN_BNKA  WHERE VENDOR = IN_LFA1-VENDOR.

     
CNT = CNT + 1.
* PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
     
CONCATENATE'LFBK-XEZER('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING'BDC_CURSOR'
                                  TEMP.
     
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                  
'=BANK'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BANKS('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-

BANKS(01)'
                                    IN_BNKA-BANK_COUNTRY.      
"'br'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BANKL('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-BANKL(01)'
                                    IN_BNKA-BANK_KEY.          
"'34173197'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BANKN('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                       "'LFBK-BANKN(01)'
                                    IN_BNKA-BANK_ACC.      
"'311-8'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-KOINH('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-KOINH(01)'
                                    IN_BNKA-ACC_HOLDER.        
"'XYZXYZ'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BKONT('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-BKONT(01)'
                                    IN_BNKA-CRTL_KEY.      
"'01'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BVTYP('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-BVTYP(01)'
                                    IN_BNKA-PARTNER_TYPE.      
"'PA'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-BKREF('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-BKREF(01)'
                                    IN_BNKA-REF_DETAILS.       
"'SSSSSSSSS'.
     
CLEAR TEMP.

     
CONCATENATE'LFBK-XEZER('CNT')'INTO TEMP.
     
PERFORM BDC_FIELD       USING TEMP                        "'LFBK-XEZER(01)'
                                    IN_BNKA-COLLECT_AUTH.      
"'X'.
     
CLEAR TEMP.

     
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                   
'=BANK'.

     
PERFORM BDC_DYNPRO      USING'SAPLBANK''0100'.
     
PERFORM BDC_FIELD       USING'BDC_CURSOR'
                                   
'BNKA-SWIFT'.
     
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                   
'=ENTR'.

     
PERFORM BDC_FIELD       USING'BNKA-BANKA'                "'BNKA-BANKA'
                                    IN_BNKA-BANK_NAME.         
"'Banco Itaú'.
     
CLEAR TEMP.

     
PERFORM BDC_FIELD       USING'BNKA-SWIFT'                "'BNKA-SWIFT'
                                    IN_BNKA-SWIFT_CODE.        
"'abcd3333'.
     
CLEAR TEMP.
     
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                   
'=ENTR'.
     
PERFORM BDC_DYNPRO      USING'SAPMF02K''0130'.*      PERFORM BDC_FIELD       USING 'BDC_CURSOR'*                                    'LFBK-BANKS'.               "'LFBK-BANKS(01)'.
*-- For records more than five entries
     
IFCNT = 5.
       
CNT = 0.
       
PERFORM BDC_FIELD    USING'BDC_CURSOR' TEMP.
       
PERFORM BDC_FIELD    USING'BDC_OKCODE'   '=P+'.
     
ENDIF.

   
ENDLOOP.
   
PERFORM BDC_FIELD       USING'BDC_OKCODE'
                                 
'=UPDA'.*--Updating data into SAP
   
CALLTRANSACTION'XK02'USING BDCDATA
                           
MODE  P_MODE
                            MESSAGES
INTO I_MSG.

 
ENDLOOP.

*--- Handling error records
 
LOOPAT I_MSG.

   
CALLFUNCTION'FORMAT_MESSAGE'
    
EXPORTING
      
ID              = I_MSG-MSGID*   LANG            = ' '
      
NO              = I_MSG-MSGNR
       V1              = I_MSG-MSGV1
       V2              = I_MSG-MSGV2
       V3              = I_MSG-MSGV3
       V4              = I_MSG-MSGV4
    
IMPORTING
       MSG             = I_RESULT* EXCEPTIONS*   NOT_FOUND       = 1

*   OTHERS          = 2.

IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   
ENDIF.

   
WRITE / I_RESULT.

 
ENDLOOP.
ENDFORM.                    " POPULATE_BDCDATA

*&      Form  SPLIT_DATA*&---------------------------------------------------------------------*

*       text*----------------------------------------------------------------------*

*  -->  p1     

text*  <-- 

p2   

    text*----------------------------------------------------------------------*

FORM SPLIT_DATA .

IN_BNKA[] = IN_LFA1[].

*--Intenal tables Sorting
 
SORT IN_LFA1 BY VENDOR COMP_ID DESCENDING.
 
SORT IN_BNKA BY VENDOR BANK_COUNTRY BANK_KEY BANK_ACC IBAN SWIFT_CODE BANK_NAME.
*--Deleting duplicated entries
 
DELETEADJACENTDUPLICATESFROM  IN_LFA1 COMPARING VENDOR COMP_ID.
 
DELETEADJACENTDUPLICATESFROM  IN_BNKA COMPARING VENDOR BANK_COUNTRY  BANK_KEY BANK_ACC IBAN SWIFT_CODE BANK_NAME.


ENDFORM.                    " SPLIT_DATA

*----------------------------------------------------------------------*

*        Start new screen                                              *

*----------------------------------------------------------------------*

FORM BDC_DYNPRO USINGPROGRAMDYNPRO.
 
CLEAR BDCDATA.
  BDCDATA-
PROGRAM  = PROGRAM.
  BDCDATA-
DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN =
'X'.
 
APPEND BDCDATA.ENDFORM.                    "BDC_DYNPRO


 

 

*----------------------------------------------------------------------*

*        Insert field                                                  *

*----------------------------------------------------------------------*

FORM BDC_FIELD USING FNAM FVAL.
 
CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
 
APPEND BDCDATA.ENDFORM.                    "BDC_FIELD

                             
                          

 

 

Conclusion :

 

It would be most useful , to create a BDC for an area , which is tedious to enter the master data for certain areas like Bank Data of vendor master . The above BDC program will update the bank data making sourcing consultant life easy .

LSMW migration with IDOC method and using IDOC as source Part1: Extract by ALE

$
0
0

In this blog I want to show one of my most used and preferred migration option using IDOC and LSMW

 

The business case: Data migration with a SAP legacy system. Many companies use already SAP for several years. Companies buy other companies. Both run SAP. The decision is taken to consolidate many SAP systems into just one.

 

Challenge: the legacy system has data for plants that were shut down, closed companies and abandoned purchasing and sales organisations.

 

 

The good thing: your company actually owns all systems and you can customize and develop in all those systems.

The bad thing: all love their data and want rescue as much as possible. While in many cases where the legacy system is not a SAP system you just get an Excel extract with maybe 20 or 30 fields, with SAP as legacy system you have to deal with several hundred fields for material, vendor and customer master migration.

 

Writing extract programs is a huge effort, downloading data from maybe 10 or more different tables not really less work and you still have to get the data together again.

 

This was the basis to search for a better option where I finally found a well known feature that saves us a lot of work, especially for the extract: ALE

 

ALE.JPG

In brief: I setup an ALE distribution in the legacy system to send e.g. vendors as IDOC  to a file. And in the target system I develop my LSMW object using this file as source file for my data migration.

 

 

I do not explain any single LSMW step in this blog in deep detail as I described it in in my other blogs:

http://scn.sap.com/community/erp/logistics-mm/blog/2012/12/27/lsmw-material-master-by-bapi-method--part-1
http://scn.sap.com/community/erp/logistics-mm/blog/2012/12/27/lsmw-material-master-by-bapi-method--part-2

 

So i am just focusing here on the difference to these other blogs and the specific setup of ALE distribution and IDOC import method

 

The homepage of LSMW can be found here in SCN at http://scn.sap.com/docs/DOC-26158

In that document you can find the links to the general documentation in help.sap.com too: SAP Library - Legacy System Migration Workbench

 


 

 

Setup ALE distribution in legacy system:


1)   Define Logical System

 

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) > Basic Settings > Logical systems > Define Logical System: 

name it ZFILESY  and enter Filesystem for IDocs as description

 


 

2)  Maintain ALE Port Definition

 

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) > Modelling and Implementing Business Processes > Configure Predefined ALE Business Processes > Logistics > Logistics <-> External Systems > External Transportation Planning Systems > Maintain ALE Port Definition (Transaction WE21) 

 

we21.JPG


The port need to be defined in  FILE  folder

Define Port: name it ZFILESY   enter a description:  IDOC to FILE in /DC_EX/M/

The IDOC record types for SAP Release 4.x need to be selected if you are in a system with release 4 or higher

The Unicode-Format field has to be activated if you are in a Unicode system

Enter physical directory /DC_EX/M/.   (I have to use a certain directory - this is due to a policy)

Select a Function module: I usually use EDI_PATH_CREATE_CLIENT_DOCNUM  , See F4 for alternatives

In order to prevent unprocessed files being overwritten, you use function modules which generate file or directory names dynamically, that is to say, at runtime.

Carry out an Access Test, this helps to identify wrongly entered directories and uncovers authorization issues.

 


3) Define Cross-System Company Codes

 

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) >  Modelling and Implementing Business Processes > Global Organizational Units > Cross-System Company Codes (Transaction OB72, SALE, OBB5)

 

a) Cross-System Company Codes

b) Assign Cross-System Company Code to Chart of Accounts

c) Assign Company Code to Cross-System Company Code

 

Cross-system company codes are used in the distribution in financial accounting. There is exactly one central system for each cross-system company code in the distributed environment. One company code has to be assigned to this cross-system company code on each system involved in the distribution.

When sending an IDoc with company code-dependent data, the company code is replaced with the cross-system company code in all company code fields.

Example:

Company Code

Migration

8740

8740

Company Code

Migration

4982

4982

Company Code

Migration

8787

8787

Company Code

Migration

8788

8788

 

 

 

4) Maintain Distribution Model

 

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) >  Modelling and Implementing Business Processes > Maintain Distribution Model and Distribute Views (Transaction BD64)

 

Here we need a distribution model

            Structure: model view (call it ZFILESY)

                                   Sending system (your choice)

                                               Receiving system  (ZFILESY)

!!! there is a valid from / valid to date – double click at distribution icon in front of the model!!!

 

Start with clicking the change icon, because this transaction starts as display

click Create Model view, enter technical name ZFILESY and a short text of your choice

BD64 Model view.JPG

 

then continue with Add message type, enter ZFILESY as Model view, you system as sender, ZFILESY as receiver and CREMAS as message type for vendor master distribution. Make use of F4, this helps to avoid typing mistakes

BD64 message type.JPG

 

Actually for customer and vendors you can generate the distribution model and do not need to add each message type manually in BD64

 

Just go to

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) >  Modelling and Implementing Business Processes > Configure Predefined ALE Business Processes > Logistics > Master Data Distribution > Proposal for distribution model: Customer and vendor masters (Transaction WYL2)


WYL2.JPG


 

5) Maintain ALE Partner Profiles

 

IMG > SAP NetWeaver > Application Server > IDoc Interface / Application Link Enabling (ALE) > Modelling and Implementing Business Processes > Configure Predefined ALE Business Processes > Logistics > Logistics <-> External Systems > External Transportation Planning Systems >  Maintain ALE Partner Profiles (Transaction WE20)

 

click the create button, then enter this data in the screen:


Partner profile type/Partner type: LS  logical system

Partner profile/Partner number: ZFILESY

 

Details at Post Processing agent

Typ: USuser

Agent: your user ID

Lang: EN

 

Now click the icon for create outbound parameter below the section for outbound parameters

in next screen enter Message type e.g. CREMAS for vendors 

enter Receiver Port ZFILESY and Basic type CREMAS03

Very important: set the radio button to Collect IDocs, and do not start subsystem, and flag the box for Cancel processing after Syntax error

WE20 Detail.JPG

 

 

 

 

 

 

Send data by ALE.


BD14 Send vendors

 

BD14.JPG

Enter the message type CREMAS  and your target system, the logical system ZFILESY

Enter 1, several or none account number of vendor for distribution. No entry means you send ALL vendors, this can take some time as SAP has to read the vendor master and create IDOCs.

 

After execution you get a pop-up telling you how much IDocs got created for your message type

 

BD14_a.JPG

after you click continue you get another pop-up telling you how much communication IDOCs got created:

 

BD14_b.JPG

 

The IDocs are still not send at this time, continue with transaction BD87

 

 

If this second Pop-up shows error B1039   0 communication IDocs generated, then you have done some setting wrong

  • Check if message type exists in a distribution model (BD64)
  • Check if the distribution model is avctive for the current date (BD64)
  • Make sure the message type is added to the partner profiles (WE20)

 

 

 


 

BD87 Status Monitor for ALE Messages

 

BD87 Selection.JPG

 

In the selection screen of BD87 just enter your partner system and execute to find all your IDOCs

 

BD87 b.JPG

 

SAP lists per status (e.g. yellow - ready for dispatch; green - successfully dispatched) each message type with its number of IDOCs

Place the cursor on a message type below the yellow status.

If you just have a few IDocs, then you can continue and click the Process button.

If you have more than 5000 IDocs and you want them all in one file (which makes most sense, especially if you use partner functions for vendors, then you should migrate all vendors in one shot) then choose from menu EDIT > Restrict and process.

Don't be confused with this name "restrict" as you actually want the contrary.

 

BD87 c.JPG

SAP has now taken all your IDOCs into the multiple selection. And the best part is, that this multiple selection can take hundred thousands while multiple selections in normal selection screen may only take 3000 vendor numbers until the application dumps.

You only need to extend the value of maximum numbers of IDocs  beyond the numbers of IDOCs you have. This ensures that all IDOCs are going into one file. Otherwise SAP would create several files.

 

Execute.

you get a pop-up telling you how much IDOCs got selected,  then choose from menu Program > Execute in Background

as it may take several hours to distribute those IDOCs

 

After the background job has finished, you can find the file with the IDOCs via AL11 transaction in the directory that you entered in your Port definition

Further it has the name that was automatically created via the function module entered in the port defintion.

AL11.JPG

 

The detail looks unstructured compared to normal flat files created from an Excel Spreadsheet:

AL11 detail.JPG

In the second part of this blog I will describe how to read this file as source file in LSMW.

Material master screen enhancement - How to transport T133D data rightly

$
0
0

I intended to create a new tab in material master (MM01/MM02/MM03). Some others had already created a new screen sequence so I just needed to create a tab and set up its subscreens. It also means all I need to do is creating a record in OMT3B and creating a new function group in OMT3C. After this, I put all the changed objects into a request and transported it into test system. The development system works fine, but not in test system. I checked all the data configuration. All of them are successfully transported. The only problem is I can't see the new tab name in OMT3R. But the sap system don't give a information let me transport this.

So I searched this and found there're notes 108059 and 108548 talking about this. It says when the screen sequence is changed the data in OMT3R are transported. Otherwise there's no information let you include them. I don't think this is right. Because maybe the configuration of development system is inconsistent with the one in test system. If you transport the whole screen sequence, maybe it will include the objects you don't want to transport.

For example, there're 2 tabs under screen sequence Z1: T1 and T2. The configuration of them are different between development and test system. Now you're going to create a tab T3 and transport it. If you include the Z1 into the request. The tab configuration of T1 and T2 will be overwritten. But if you don't include, it don't works.

I think it's a bug of SAP system. The error is SAP don't auto include the T133D data into the request.

 

I compared the data between development and test system and, found if you add a new tab, 2 configuration records will be created for the new tab in T133D, and 1 record will be modified its next tab. For example, before adding, the records are:

Tab     Its Next Tab

T1          T2

T2         

After adding:

Tab     Its Next Tab

T1          T2

T2          T3

T3

 

So all you need to do is run SM30, enter V_T133D, include the three new records into your request and transport it. Then you'll see your new tab in the test system!


RFQ-Making Purchasing Group optional ?

$
0
0

Hi,

  I found lot of messages/questions about making purchasing group as optional in Request for quotation (RFQ) Regarding this ,I would like to share some information about this. This is my first Blog in SDN.

 

Is it possible to make purchasing group as optional in RFQ (ME41)?.

The answer absolutely is NO.

RFQ.JPG

This is SAP Standard system behavior. The field 'purchasing group' is a compulsory field regardless of what is set in customizing(below)

RFQ.JPG

 

RFQ.JPG

 

This is hard-coded in program FMMEXE01(include FMMEXE01_EKGRP).  See no_input.

 

005510 * Pruefen Einkaufsgruppe

005520 *

005530 form ekgrp using ekg_ekgrp.

005540

005550 if ekg_ekgrp eq space.

005560 perform no_input using 'EKKO' 'EKGRP'.

005570 endif.

 

Conclusion:So,we we cannot make purchasing group field as optional in RFQ.

 

I welcome your comments and suggestions.

 

With Regards,

Jaheer Hussain,CRISTAL

Yanbu,KSA.

LSMW migration with IDOC method and using IDOC as source Part2: Import

$
0
0

This is the second part of my blog about LSMW migration with IDOC method

 

The first part can be found here: LSMW migration with IDOC method  and using IDOC as source  Part1: Extract by ALE

 

 

The business case: Data migration with SAP as legacy system. Many companies use already SAP for several years. Companies buy other companies. Both run SAP. The decision is taken to consolidate many SAP systems into just one. Example case: vendor master data

 

Challenge: the legacy system has data for plants that were shut down, closed companies and abandoned purchasing and sales organisations.

 

I do not explain any single LSMW step in this blog in deep detail as I described it in in my other blogs:

LSMW Material master by BAPI method - Part 1

 

LSMW Material master by BAPI method - Part 2

 

So i am just focusing here on the difference to these other blogs and the specific setup of ALE distribution and IDOC import method

 

The homepage of LSMW can be found here in SCN at http://scn.sap.com/docs/DOC-26158

In that document you can find the links to the general documentation in help.sap.com too: SAP Library - Legacy System Migration Workbench

 

 

 

Step 1 - Maintain object attributes

 

As this blog has the focus on IDOC import method put the radio button to IDOC and enter the same message type and Basic type that you used for your extract via ALE (see first part of this blog), Message type CREMAS with Basic type CREMAS05

You may get a warning message telling you that you have to activate IDOC inbound processing. I explained this activation in

LSMW Material master by BAPI method - Part 1

 

LSMW_V1.JPG

 

 

Step 2 - Maintain source structure

 

This is the painful part of this IDOC to IDOC method, as SAP does not give any entry aid or option to copy.

 

First open a new session and execute WE30 - enter your Basic type CREMAS05 as object name and click display

SAP presents the structure of this IDOC:

WE30_b.JPG


Now in LSMW step 2 click create icon and can copy and paste from this BD30 structure to your source structure definition. Just do not forget to add a Z in front of any segment name, to make the source name different from the target name.

 

LSMW_V2a.JPG

 

After the first segment is defined, put the cursor onto this segment and click again the NEW icon.

SAP answers with a pop-up asking you if the next segment is at the same level or lower level.

Make your choice and continue until the BD30 structure and your source structure look equal (except that your source structure has always a Z in the beginning of the name)

 

LSMW_V2b.JPG

 

 

Step 3 - Maintain source fields

 

In this step SAP helps you a lot, you can copy the fields from the repository

Place the cursor on a structure, then click the copy icon.

LSMW_V3a.JPG

 

Select Copy from Data Repository

LSMW_V3b.JPG

 

Enter the structure name (without Z) in the table name field and click continue

LSMW_V3c.JPG

SAP copied all fields with their definition to your source structure

LSMW_V3d.JPG

 

Now coming to the tricky part.

The IDOC has some overhead info in the beginning, before it comes to the fields MSGFN and LIFNR

Further, if you look at the IDOC, it is just a text file that looks chaotic, hence you have to tell your LSMW where it has to start to apply the mask.

Yes your read correctly,  your field definition is nothing else than a mask that is laid over the data in your source file

I circled the structure names that I could identify in the IDOC.

The IDOC (your source) is an outbound IDOC, because of that the structure name is slightly different, the second character in the structure name defines whether it is  inbound or outbound. The general data structure of a vendor master inbound is called E1LFA1M, while outbound is named E2LFA1M 

This E2LFA1M name is a good starting point for your mask

But directly after E2LFA1M the content in the IDOC is neither MSGFN  nor LIFNR.

The vendor number in this example is 520481, since the vendor number field is 10 long it is listed as 0000520481 in the file,

directly before LIFNR field is the MSGFN field (compare with your field definition above) this is the 005.

And all other data between E2LFA1M and 0050000520481 (marked yellow) is not needed for the migration.

IDOC.JPG

 

But how can we omit this data?

And how do we tell SAP that it shall start reading at E2LFA1M?

 

For this we have to define 2 more fields at the beginning of our source fields in each source structure

Let us call the first field IDENT, short for identifier. And the second FILLER, as it used to fill the space between our identifier and the MSGFN field.

 

Go into table maintenance, position the cursor at the first field and click 2 times insert line icon.

enter in the first line field name IDENT type C lenght 7, because the word E2LFA1M has 7 characters

in the second line enter FILLER with type C and a length of 56, which are the number of characters starting from the first position after E2LFA1M until  content 005 of field MSGFN begins.

If you have for example a segment name that is e.g. 11 characters long, then you define the IDENT field with 11 and the filler with only 52 characters.

 

Back on the overview of fields just double click the IDENT field to maintain further details, the "Identifying Field Content".

Here enter E2LFA1M, the segment name that could be found in the IDOC. SAP will read the content of the file until it finds the same word like maintained in  "Identifying Field Content". Then SAP will apply the mask with fields and move the the content to the xxx.READ file when executing the read step later.

LSMW_V3e.JPG


Now the field structure is like this one:

 

LSMW_V3f.JPG

 

you have to do the same for each segment in your structure, of course with the specific segment name, here an example from company code data segment:

LSMW_V3g.JPG

 


Step 4 - Maintain structure relations

 

Just a click step, assign all corresponding segments of your source structure to the target structure:

Place the cursor on the segment, then click Create Relationship icon. A pop-up displays your source structure, select the corresponding and continue.

 

LSMW_V4a.JPG

 

 

Step 5 - Maintain field mapping and conversion rules

 

The next fun part, because your field names in source and target structure equal, hence you can automatically map those fields in seconds.

Select from menu Extras > Auto-field Mapping

On the pop-up select "Match Fields with the same name" , apply the rule "Transfer MOVE" and select "No confirmation" , then execute.


LSMW_V5b.JPG

 

After that you can focus on the fields where you have to apply different rules and need to exchange values.

From my experience much easier to do this after having all fields mapped quickly, than doing it directly.

 

 

The challenging part (certainly not for Abapers) is to exclude the abandoned data and organisations from the migration. We could have done this already with filters in the ALE customizing. But I have seen to much scope changes in the past. Hence I try to avoid extra customizing in the source system and do all exclusion in my LSMW object in the target system....with a little coding in the field mapping.

 

Here an example for purchasing organisation

I have a subroutine called ZXXP04IDENT, it is just a name with some logic for myself, in which I read a mapping table.

If I do not find any entry in the mapping table, then it means that this purchasing organisation is not to be migrated.

In this case I process the SKIP_RECORD function, which will just forget what the program had just read and goes to the next record.

If  a mapping was found, then I check if the existing vendor master has already data for the mapped purchasing organisation. (missed to mention that we extend vendors that are already present in the target system).

If the existing vendor has already purchasing data for this purchasing organisation, then again doing the SKIP_RECORD function. along with writing a message into the conversion log.

If the purchasing organisation does not yet exist in an existing vendor, then the field content is moved.

 

LSMW_V5d.JPG

 

Similar checks are performed for company code  and deletion indicator (we migrate only undeleted vendor masters)

 

In this content I don't want to miss to tell you that a IDOC overwrites existing data. If you extend an existing vendor master, then you need to care that the general data is not overwritten. But you cannot just skip the segment as this will cause a Syntax error,

In that case the vendor number field LIFNR holds the vendor number of the target vendor, and all other fields in that segment have to contain a "/"  like in this example for NAME1 field:

 

LSMW_V5name1.JPG

 

 

Step 7 - Specify files

 

Special in this scenario is that our source file is located in the application server instead of your local drive.

Hence you select the entry Legacy data On the R/3 server  and click New entry

Here you enter the file name (including the directory if it is not your personal directory - I have a dedicated directory in this example), unfortunately there is no F4 help to search for the file name. (it is possible if you have only one application server, and even then the application server name has to be entered in a table that is not accessible through LSWM or any customizing path - so not really worth to talk about)

LSMW_V7.JPG

 

Select "No Separator" , an IDOC does not have separators. The IDOC does not have any field names, hence leave the box for "Field Names at start of file"  empty. As you defined the source fields from data repository, the field order matches with Source structure definition, so please activate this box. File type has a Record End Marker because it is a text file.

Set the Code page according to the code page that you have in the legacy system at the time you created the IDOCs by ALE.

 

 

Step 8 - Assign files

 

Assign your source file to each segment in the source structure

 

LSMW_V8.JPG


Continue with Read data,

verify that the data is in the correct fields in step "display read data"

then convert the data,

check the converted data.

then start IDOC generation

and process the IDOCs

All those steps are  explained in detail in my blog:LSMW Material master by BAPI method - Part 2

Nothing special for IDOC import method


Physical Inventory is more than just SAP - Legal Background and Preparation

$
0
0

In many discussions the physical inventory process is just reduced to a sequence of SAP transactions.

I often miss the reference to the reality,  what in reality has to happen to make a physical inventory a success instead of a show stopper for the business.

 

There is actually much more work outside SAP than with SAP.

 

And in this blog I would like to tell you how we used to organize a physical inventory to keep the impact on the daily business as minimal as possible.

 

 

The legal background

 

Why do we need to take a physical inventory?

It is a legal requirement in Germany (German commercial code §240 HGB) to do a physical inventory when you start a new business, then with each end of a fiscal year and when you shut down your business.  Similar laws can be found in other countries too.

 

How often do we need to take a physical inventory?

The law just requires to count the materials once at the end of a fiscal year.

But do you really only count your inventory because of the law, or do you benefit yourself by having an accurate quantity in your system?

Accurate quantity is needed for almost all activities in SAP to get better results in e.g. material requirements planning, in availability checks and less interruptions when fulfilling the demand.

Hence companies with low accuracy decide to count more often than legally required and use Cycle Counting to count important items more frequently than less important materials to reach a higher accuracy, while companies with high accuracy want count less and minimize the interruptions of usual business for the physical counts.

 

What inventory methods are allowed?

Even this is ruled by law. In general you have to count on the financial statement date, this method is known as annual inventory.

As this is not always practical some exceptional methods are allowed too.

Timely annual inventory allows to count the stock within 10 days before or after the financial statement date.

Advanced/postponed physical inventory allows to conduct the count within 3 months before or after the  financial statement date. The value at  financial statement date is then calculated based on the movements happened between counting date and  financial statement date.

Continuous inventory is allowed if each movement is properly maintained in a stock ledger.

Whatever method you use, you have to ensure that each item is counted once per year.

 

What to count?

in general the stock you own, raw materials, spare parts, operating supply, intermediates, work in process and finished materials.

 

Preparation of a physical count

The head of the physical inventory has to develop the physical inventory manual. The date(s) for the physical count has to be nominated. The auditors have to be informed and invited for those dates. The counting areas have to be identified and allocated to the counting teams. The inventory documents have to be prepared, will be filled with the counted quantities by the counting team, finally being signed by the counter and the auditors and kept for 10 years. 

 

 

 

Prepare counting

 

Determine Materials and Locations to count

Existing inventory reports like MB52 in inventory management and LX02 in Warehouse Management module are helpful to get an overview about the locations and materials that you have to count. So an estimate about the effort and needed resources can be made early.

In case of Cycle counting method you can use the ABC classification to assign counting intervals to your materials.

 

Schedule Physical Inventory

In case of annual inventory the date for the count is almost given with the legal requirements. In case of continuous inventory you are more free to decide about the counting dates yourself. So you probably count more in periods where you know from experience that you have less business, e.g. time of Summer holidays. However the schedule need to be communicated to auditors and all affected parties like Sales, Purchasing and Production etc. Sales and Purchasing departments may want to insert a standard text on orders informing customers and vendors about a plant shut down or possible delay because of physical inventory activities. All people who post movements have to be informed that all postings have to be as current as possible for an accurate inventory, you have to think about outstanding goods receipts, goods issues and stock transfers. This helps to minimize the inventory differences and of course the time for their analysis.

 

Organize Resources

Before performing the count you have to prepare and organize the resources. Plan sufficient time for this activity.Think about the availability of personnel and equipment. The resources needed may vary from the type of count and the materials to be counted.

About what resources we are talking here?

  • People: to create and print inventory documents, counters, re-counters, auditors, people to enter the count, difference approvers
  • Safety Eqipment: helmet, saftegy glasses, shoes, gloves, first aid kit
  • Tank specifications, conversion tables
  • Thermometers, Gauge poles,
  • tapes to mark materials/locations to be excluded from count (e.g. vendor consignment stock, already sold but not shipped materials)
  • tags to lable the counted materials to avoid double counting
  • pens, calculators to fill out the counting sheet
  • Flashlights
  • Scales to weigh e.g. partially filled drums who show an obviously wrong weight on the lable

 

 

 

As you could read there is a lot to be managed before you even start with creating physical inventory documents.

In a next blog I will specifically talk about organizing the count: Physical Inventory is more than just SAP - Strategic counting

Physical Inventory is more than just SAP - Strategic counting

$
0
0

In this blog I will continue with my thesis that Physical Inventory is more than just a sequence of SAP transactions, which I started in my previous blog: Physical Inventory is more than just SAP - Legal Background and Preparation

 

 

Creation of physical inventory documents and conducting the count

 

Hand in hand activities

I have read many questions asking "how to create automatically physical inventory documents" , in fact I could get 212 hits when using the SCN search with these key words: automatic creation "physical inventory"

Despite of having given technical instructions to achieve it I would not use it personally.

How can I know days or weeks in advance what situation I have in the morning of the counting day?

Are there already 20 trucks waiting to be be unloaded? Are all withdrawals and receipts posted? Have all transfer orders been confirmed? Is the staff available or do they suffer on yesterdays canteen food?

 

Creating and printing of physical inventory documents is not a long-running transaction. MI31 to create documents followed by MI21 to print the documents is done within 2 - 5 minutes.  I am not talking about newbies who do it for the first time and have not even made their selves familiar with the SAP transactions, physical inventory is an activity for professionals who got trained and executed the transactions in a test system too. Hence it can be executed manually in the morning (and later during the day) manually after the head of physical inventory has ensured that all postings are done. He may call the usual subjects who causing him headaches all over the year with delayed postings.

 

The physical inventory does not stop all business. It may interrupt it for a few hours. The art of physical count is to affect the normal business as less as possible.

To achieve this goal of minimal interruption we need to execute the physical inventory in a strategic way.

 

 

Let us have a Google Maps  view at one of our plants. I circled the areas in which we have items to count.

We have 3 large halls for materials that have to be protected from weather, which are rain and frost sensitive. Several open air storage areas for filled drums,  containers and empties. 5 tank farms, 4 production facilities and rail tracks with tank wagons.

 

inventur.JPG

 

 

There are 11 areas to be counted by warehouse personnel. The shop floor is counted by production personnel, the tank farms too.

Let's focus on the areas counted by the warehouse personnel.

We used to have 4 counting teams, each team is a party of 3, one who counts, one who writes the counted quantity into the form, and one with a forklift who can move pallets with material to enable counting in spaces where the goods are not stored accurate enough that people can free move in the aisles.

A few others who are not assigned to the counting teams can continue doing normal activities like loading and unloading trucks, receiving goods from production, moving raw materials to the shop floor.

 

The 4 teams have to count 11 areas in total, but can only count one area at a time, hence we only create inventory documents for 4 areas.

And which 4 areas  is determined right on time when we know where we currently have no receipts and issues.

 

Most areas are sub-divided into many sections (I try to avoid the words storage location and storage bin as these words are specific to a SAP module, and this blog is regardless of the module used). In the below picture I draw 4 lines to show that this area is actually 6 sections (storage locations or bins), which means that the counting team for this area gets 6 inventory counting documents then they start going there and count.

Of course they start in one corner and count through all items in sequence of their physical appearance. They do not jump based on the sequence in the counting document, because this way they could never find items which are not listed and not expected in that area

 

inventurHN1.JPG

 

While the teams are counting, the assistant in the office prepares the documents for the next area to be counted

When a team has finished their count, then they bring the counting sheets back to the office and get the next counting sheets in exchange.

The assistant is preparing the document for the next team  and starts entering the count in SAP for the documents brought back by team 1.

When the next team has finished they get the prepared inventory documents in exchange too.

 

Per inventory document we approximately have 20 to 40 items.

I think you can imagine that counting an area like shown in the picture above may take about 1 hour

Creating and printing of a physical inventory document  2 to 5 minutes

Entering a counting sheet about 2 - 5 minutes too.

So it is possible to have 1 or 2 persons in the office preparing the documents and entering the count while others count.

It is even already possible to create already difference lists directly after the count is entered and to determine the items that need a recount.

 

The first team that has finished their regular counting activities becomes the team for the recount (except on places where they did the original count )

The second finished team does then the recount on the remaining places where first team counted.

 

Once the recount is done and entered, the area is released for business again. Which means the third team that finishes with count will then start doing normal business activities in those areas.

 

The ramp where we store our receipts and the staging area for deliveries to the customers are kept open until all other areas are completely counted. Just for the unlikely event that a vendor delivers goods ignoring that he was informed with the purchase order about the physical inventory. Similar for a customer who might come along to pick up his order. Then these 2 spaces are counted as the final activities.

 

With our "strategic counting", everything goes hand in hand and we reach a minimal affect on usual business

In most cases we finished entering count, printing and posting differences within a quarter hourafter the last count was physically done.

 


Are you planning to change your pricing calculation schema?

$
0
0

If you are planning to make some modifications in your pricing calculation schema (transaction M/08), you should make sure that these changes do not lead to inconsistencies in purchasing documents that have already been created before the customizing is changed.

 

It is important that during this modification, the step and counter from already existing conditions are not changed, otherweise you might get error messages during goods receipt, invoicing and reversing already existing documents.

 

1.png

 

To achieve this you can:

  • Create a new calculation schema. Here you will play on the safe side. If you have to make many changes, this might be the most reasonable choice.
  • Change or add conditions to the actual calculation schema. In this case you have to make sure that you do not change the step and counter from already existing conditions.

 

Taking one of the above options, you should not get into trouble.

Having performance issues with reporting in purchasing with ME2* transactions?

$
0
0

In reporting transactions as e.g. ME2A, ME2M, ME2N,... the performance might not be as good as you expect.

 

The reason for this is that the selection criteria you use to execute the transaction is too wide and the main key, used while searching in the table, is not filled. Please note that all the reports search the database using a primary key.  All resulting datasets will be read by the system BEFORE further filtering by additional criteria takes place.

 

 

You should use the following keys for the different reporting transactions:

 

  • Performance issues in transaction ME2B:
    As transaction  ME2B is designed to report on purchasing documents per requirement tracking number, the performance of transaction ME2B can be improved by specifying the tracking number plus other selective criteria if possible.

 

  • Performance issues in transaction ME2C:
    As transaction  ME2C is designed to report on purchasing documents per material group, the performance of transaction ME2C can be improved by
    specifying a material group plus other selective criteria if possible.

 

  • Performance issues in transaction ME2K:
    As transaction ME2K is designed to report on purchasing documents per account  assignment, the way to improve the performance of transaction ME2L is to specify an account assignment plus other selective criteria if possible.

 

  • Performance issues in transaction ME2L:
    As transaction  ME2L is designed to report on purchasing documents per vendor,  the way to improve performance of transaction ME2L is to specify a vendor plus other selective criteria if possible.

 

  • Performance issues in transaction ME2M:
    As transaction  ME2M is designed to report on purchasing documents per  material, the way to improve performance of transaction ME2M is to
    specify material plus other selective criteria if possible.

 

  • Performance issues in transaction ME2N:
    As transaction ME2N is designed to report on purchasing documents per document  number, the way to improve performance of transaction ME2N is to specify the document number plus other selective criteria if possible.

 

  • Performance issues in transaction  ME2W:
    As transaction ME2W is designed to report on purchasing  documents per supplying plant, the way to improve performance
    of transaction ME2W is to specify the supplying plant plus other selective  criteria if possible.

How Find Path In SPRO With Tracking Code Transaction

$
0
0

How Find Path In SPRO With Tracking Code Transaction

 

 

We have transaction code for customizing like OMET but we
don't know where is  the path in SPRO transaction.
In some case in SPRO we can see tracking code in additional information column
but in more case does not show that code (you can active in menu Additional information- Display key-IMG activity).

picture1.png

 

 

Now we want to find path of tracking code like OMET in SPRO:

 

1-Run OMET transaction code

Picture2.png

 

 

2- from menu: select "table view" - print :

Picture3.png

 

 

3- we can See view "V_T160D" and remember that

Picture4.png

 

 

4- Now go to the SM30 transaction code , put View and select customizing :

Picture5.png

 

 

5- you can reach to path in customizing

Picture6.png

end


MRP Run for Selected Materials-Enhancement M61X0001

$
0
0

SAP standard provides MRP run for plant wise (MD01) or material wise (MD02/MD03).  Some industries /clients may require MRP run for a set of materials at once not for the complete plant. Requirement may be running MRP for one material type only which should include all materials in that material type.

How this can be done? It’s very simple. 

 

Using the enhancement M61X0001


For this SAP provides an enhancement called M61X0001. You can checkthis in transaction SMOD. Go to transaction SMOD and enter name of the enhancement.  You can read the documentation of the user exit which SAP has provided.  For implement user exit we need to get the help of an ABAPer.

 

 

Display the components of the enhancement.

 

 

This will show two function module exits.  EXIT_SAPLM61C_001 and EXIT_SAPMM61X_001. Double click one function module and display object list. (Ctrl+Shift+F5)

 

Inside EXIT_SAPMM61X_001 you will find the include ZXM61U01. This is where ABAPer should include the coding for material selection for MRP. 

 

Program LXM61F01 shows example coding material selection. You can check this program in SE38. If you have slight understanding about how to read an ABAP code you will understand how coding should be done for your own material selection. 

 

 

Creating the User Exit Key

You might have seen, above coding is based on a selection of a user key. In above example code MRP will run for the materials with FERT material type only when user has entered the key 001. Creating this key is a configuration and it should be done in OMIX transaction.

 

SPRO Path:

Production >Material Requirements Planning > Planning > User Exit: Material Selection for Planning Run

 

This key is just the reference for the ABAPer to write logic for material selection. You can have 3 letters for the key and put a meaningful description.

Once you create the User Exit Key it will appear in MD01 screen.

 

 

Now ask your ABAPer to write the ABAP code for material selection in MD01. You can link the user exit key with either material type, MRP controller etc. Just go through MT61D structure. You will see you can use MRP Controller, Material Group, Procurement Type etc as the basis of segregating materials.

 

Example:

I need to run MRP only for the materials with YENS material type when user has entered ESP with the plant. Below is the ABAP logic for my requirement.

when 'ESP'.

        if mt61d-mtart <> 'YENS'.

          no_planning = 'X'.

        endif.

 

Simple as that!

How to find ‘USER EXITS’ and BADI’S for a transaction code

$
0
0

Dear SAP Practitioners,

 

In this blog I would like to let you know the way to find an 'User Exist' & 'BADI' for a transaction code.

 

There are many ways to find user exists and below given method is one of them.

  • Finding user exist for MM01
    • Execute transaction code MM01
    • Go to Menu 'System' and click on Status
    • Double click on Program (SAPLMGMM)
    • Go to Menu 'Goto' and click on Object Directory Entry
    • Copy the Package name (MGA)

 

  • Now execute transaction code SE84
  • Expand Enhancement
  • Expand Customer Exits
  • Double click on Enhancements
  • In right hand side enter the Package name (MGA) and execute
  • You will get the relevant user exist for the transaction code.

 

  • Finding BADI for MM01
    • Execute transaction code MM01
    • Go to Menu 'System' and click on Status
    • Double click on Program (SAPLMGMM)
    • Go to Menu  ‘Goto’  and click on Object Directory Entry
    • Copy the Package name (MGA)
    • Now execute transaction code SE84
    • Expand Enhancement
    • Expand Business Add-ins
    • Double click on Definitions
    • In right hand side enter the Package name (MGA) and execute
    • You will get the relevant BADI’s for the transaction code.

 

Thanks & Regards,

Narayana N

How to Extend Material Master Views by Using MM50

$
0
0

Dear SAP Practitionars,

 

This blog would guide you how to extend material master to 'Material Master Sales View' by using transaction code MM50.

 

Prerequisites: If any view is not displaying when you go inside the transaction MM50 you need to make it to display by selecting the view in OMS2.

 

Example: for HALB material ‘Sales View’ wouldn’t be displaying to extend neither in MM01 nor in MM50, since generally people would’ve not selected the view in OMS2 for HALB material type. So we need to go to OMS2 -->double click on the respective material type (HALB) --> and select the view which you want to display.


Note: Material code should have already maintained for all of the basic settings and views, (Basic Data 1, Basic Data 2 and Label Data) which is required for a material.

 

  1. Take the list of materials and use that to limit the data.
  2. Choose the views that you want to extend, i.e., "V" is for sales.
  3. Execute the transaction

 

Step 1: Select maintenance status (v)--> enter material numbers--> execute

Picture1.png

 

Step 2: Click on select all button to select--> and click ‘Maintain Materials’ push button to proceed further.

 

Picture2.png

 

Step 3: Once you execute the below screen would get displayed, click on enter button--> since in Sales: Sales Org. 1 view – tax code is mandatory it would take you to a view, where you can maintain tax codes.

 

Picture3.png

 

Step 4: Fill in the tax classification as shown below and click on enter button to proceed further

 

Picture4.png

 

Step 5: Once you click on enter button it would take you to Sales: Sales Org. 2 view, here ‘Item category group’ is mandatory, so enter the same to proceed further.

Picture5.png

 

Step 6: In Sales: General/Plant view nothing is mandatory, so you just have to click on enter button to proceed further.

 

Picture6.png

Step 7: Next it would take you to Foreign trade export, even here also nothing is mandatory, so you just have to click on enter button to proceed further.

 

Picture7.png

Step 8: The enter button would take you to Sales text view; here you can enter the text and click on save button to save the material.     

 

Picture8.png

Step 9: Click on save button to save the material

 

Thanks & Regards,

Narayana N

GR Message to Buyer When Goods Received into Certain Plant & Storage location

$
0
0

Requirement : GR Message to Buyer when goods received in a Certain Plant and Storage Locaton.

 

Configuration Settings.

 

1) SPRO-Material Management-Inventory Management & Physical Inventory-Output Determination-Maintain Condition Tables

 

Define a Condition table say 914 as per below screen shot and click on Generate button.

 

UntitledA.JPG

 

Now Click on Technical View and Select the Footer boxes for fields Plant and Storage location and Save.

 

MLGR.jpg

2) SPRO-Material Management-Inventory Management & Physical Inventory-Output Determination-Maintain Access Sequence.

 

Here assign the condition table created 914 to the Access Sequence 0002  (which is for GR Mails) and Save.

 

UntitledB.JPG

 

3) SPRO-Material Management-Inventory Management & Physical Inventory-Output Determination-Maintain Output types.

 

Ensure the details are maintained as per below Screenshots.

 

U.JPG

 

UntitledD.JPG

 

You can maintain your own text (Buyer message) under Mail title and texts tab for your language.

 

UntitledE.JPG

 

Click on Text icon and maintain your text and Save.

 

UntitledF.JPG

 

4) SPRO-Material Management-Inventory Management & Physical Inventory-Output Determination-Maintain Output Determination Procedures.

 

Ensure the data has been maintained as per below screen shots.

 

UntitledG.JPG

 

UntitledH.JPG

 

5) Now Maintain the Condition record for MLGR condition type in transaction MN21 for your Key combination Plant / Storage Loc. / GR Message as per below screenshot and save.

 

UntitledI.JPG

 

UntitledK.JPG

 

Click on Communication tab and Maintain the entry as below. When you click on Communication tab system shows a Pop up that Dummy receipient will be assigned then click on Yes button. You can maintain the Purchase group user name or any other user name as required. If you want to receive Express mail then click on the “Express mail” checkbox and Save.

 

Receipients.jpg

 

6) Now create a Purchase order and ensure that the GR message is checked in Header under Delivery/invoice tab and save the document.

 

UntitledL.JPG

 

ME21N GR mess.jpg

 

7) Now Perform the Goods receipt for the Purchase order created in above step and Ensure the storage location is used same as the condition record and Post the document.

 

UntitledM.JPG

 

8) Now you can check in your Inbox through SBWP transaction or by clicking on SAP Business Workplace from your SAP Easy access screen and you can observe the message delivered in your Inbox.

 

UntitledO.JPG

 

I welcome Suggestions / Comments.

 

Thanks & Regards,

Ashok Kumar Telugu

Having actual event description at PO History tab of any Purchase Order display

$
0
0

Whenever business user trying to view the purchase order history standard system will show the line item historical events like below. System will show event short text only, but we can avail the facility of exact event text by using the layout functionality.

29-08-2013 14-48-03.png

This can be changed and actual event name can be brought by following way Select Change layout -->Select Tr./Ev. to Displayed columns and short text to column set like below

29-08-2013 14-55-30.png

Then Save the layout and make it as default like below and this will be applicable to all the users

29-08-2013 14-57-01.png

Then we will get the exact event description the same can be easily understand by the any user

 

29-08-2013 15-00-48.png

 

Provide your  feedback and suggestions on the same.

 

R,

Amala

Viewing all 133 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>