If your SAP system is configured as IS-Retail and you see such a message in purchase order that is one of the reasons you must configure assortments.
Theory
An assortment determines if a store, a distribution center or a customer can receive certain articles at a certain period of time. The assortment can therefore be used to check purchase orders and sales orders (in standard ECC there is listing procedure that can be used for this purpose).
By assigning articles to assortments, you determine which assortments and, therefore, which articles a store can buy and sell which means a site cannot buy or sell articles that are not included in any of its assortments. Assortment is managed on user level, which could be site (distribution center, store) or Customer.
A good example of usage of assortment would be a company that has a store chain but with different sizes of shops. That means not same assortment is offered to Customers in supermarket compared to small shop in city center. Similarly shop with sport equipment will offer different range of assortment if store is located at seacoast compared to mountain area.
Assortment consists of assortment module or multiple modules. Articles are assigned to assortment module either automatically or manually depending on type of assortment module used. The outcome of this assignment is creation of time dependent listing conditions (if assortment is valid to create listing conditions).
There are two type of assortments: local and general.
Local Assortments:
For local assortment two types are defined. Type A for stores and type B for distribution centers. When user creates a site (in other words, a store or distribution center), the system automatically creates a local assortment and then assigns it to the site. This local assortment is site-specific and cannot be assigned to another site. Each site has one local assortment created directly and can only be maintained in limited way in Assortment Processing transaction.
General Assortments:
General assortments are type C assortments. They can be assigned to any number of Customers, and every Customer can be assigned several general assortments. If multiple assignments parameter has been set in Customizing, user can also use assortments of this type to assign stores and distribution centers.
Mentioned multiple assignment parameter is one of the most important configuration of assortment in SAP.
- Parameter not set. This is a case of 1:1 assignment and every site has exactly one local assortment (automatically generated during creation of site) and no other assortment can be assigned to this site.
- Parameter set. In the case of n:m assignment is activated and every site still has a local assortment, but there is no limit to the number of general assortments that can be assigned to this site.
Quite interesting situation could be when we have almost the same assortment offered in most of the shops. Without activation of multiple assignment parameter, article needs to be assigned to every local assignment of each site. This would rather cause lot of extra work. To avoid it there are two option but each of them require set of multiple assignment parameter to on. First option is to create general assortment as then assign it to respective sites (in case if particular article is not offered in the store exclusion assortment module may be assigned). Second option is to user reference site and it's discussed later on.
Following assortment modules are delivered by SAP.
Automatic assignment of articles:
- Profile module is created automatically during the article maintenance for each assortment and merchandise category.
- Shelf modules is generated during the maintenance of layout modules that are assigned to the assortments.
- Promotion module contains the articles that are to be dealt with together in a promotion or a theme.
Manual assignment of articles:
- Standard module contains any articles from any merchandise categories. It contains the regular long-term rule assortment and is created manually.
- Local module is only valid for one site and is therefore the „local assortment”
- Exclusion module to exclude articles from the existing assortment for a certain period of time.
- Rack jobber modules are modules for which vendors deliver and present articles in stores themselves. This is related to PRICAT and VMI processing.
- Value contracts - you can also use these modules for assortment functions in Sales and Distribution in contracts processing.
Example of configuration:
For purpose of this article following merchandise categories have been created for single articles:
- ZFC_000 – Merchandise category 1
- Articles: 1131, 1132, 1133, 1134
- ZFC_001 – Merchandise category 2
- Articles: 1105, 1106, 1129, 1130
- ZFC_002 – Merchandise category 3
- Articles: 1135, 1136, 1137, 1138
To simplify the example following enterprise structure was introduced
- Distribution Center ZFD1 (Distribution chain: ZSH1/P9, Customer: 400068) listing procedure K1
- Shop ZFS1 ( Distribution chain: ZSH1/P8, Customer: 400067) listing procedure 02,
- Shop ZFS2 (Distribution chain: ZSH1/P8, Customer: 400068) listing procedure K1,
- Shop ZFS3 (Distribution chain: ZSH1/P8, Customer: 400069) listing procedure Z4.
Site master data configuration
In site master data besides listing procedure we find two more parameters:
Subsequent listing ind. only works with goods movements. This means that if article is not listed in particular shop and master data of it doesn't exist system will create one day entries in tables like Marc, Mard etc, for this particular site. This is valid only for goods movements not Purchase order creation. Second parameter Listing Basic Rule override SD listing procedure in Sales Orders and deliveries processing. Both of parameters have user exits where default behaviour is programmed and is assigned in SPRO in default settings fro IS-Retail
Listing procedure
For the purpose of this article new listing procedure has been created as a copy of K1. The only change compared to K1 procedure is Assotm.ListPro checked. Beside of that standard procedures like 02 -List all, K1 – No listing, B1 – material grade/assormtn and B2 – classification are used.
In Listing procedure very important parameter is Assortm.ListPro. Using it we can steer the system which listing procedure to choose during processing of automatic listing. If for example listing procedure for assortment is 02 – All and in the article master data there is entered procedure K1 – Never.
- Case 1: in K1 Assortm.Prio is X -> Material is assigned, because it will use listing procedure from assortment and there is assigned procedure 02 – All.
- Case 2: in K1 Assortm.Prio is blank -> Material is not assigned because article listing procedure takes precedence over listing procedure from assortment.
Beside of it you can also select which listing procedure to be defaulted (can be changed in each of respective objects) in case of allocation, promotion or layout operations. In processing control you can select which checks are executed and how they are connected in logical operation AND or OR. Rules section clearly indicates which function module is executed. Following logic has been implemented:
- Selecting parameter “Listing all” – function module in field Ext Listg.ALL is triggered. In standard assortment_version_list_all for list. proc 02 -All or assortment_version_list_never for list. proc K1 - Never
- Sequence M – function module from Exit listg. man. (standard: assortment_version_M)
- Sequence P – function module from Exit listg. man. (standard: assortment_version_P)
- Sequence K – function module from Exit listg. man. (standard: assortment_version_K)
- Sequence L – function module from Exit listg. man. (standard: assortment_version _L)
SAP delivers a number of listing procedures intended to simplify Customizing, which is otherwise rather complicated. The basic listing procedures are:
- Merchandise category/assortment grade check – this listing procedure check if for assortment has merchandise category assigned with corresponds to article merch. categ. This is the simples check but as well the most commonly used. You can always split your merch category by grades. With combination to listing algorithm you can select which grades are included. Listing grade is assigned in assortment with merchandise category and in article master data on listing tab. Additionally in listing procedure definition you assign listing algorithm and if grade should be checked. Small hint is that even if in assortment you assigned category but in listing tab of article it remains blank standard module ASSORTMENT_VERSION_P will accept it.
- Layout check - This procedure checks whether the article is assigned to a specific layout module and the layout module is assigned to a layout and subsequently to an assortment
- Classification listing procedure require that class type 047 is assigned to assortment and characteristics values are entered. Additionally same class needs to be assigned to merchandise category either directly or via characteristic profile. Value of characteristics are maintained in article master data and listing can be executed. In standard function module: ASSORTMENT_VERSION_C, program will allow listing even if values are blank and if maintained value comparison with values assigned to assortment is executed.
Hint: If in assortment creation transaction or in site maintenance you will uncheck listing condition, assortment creation then during automatic listing processing assortment is found, assortment module is created but no articles are assigned. I would say that this option can be used more for simulation purpose.
New Assortment type for general assortment
At the moment for this assortment type no layout management is foreseen so all checkboxes are not market.
As said before local assortments are always created automatically when new site is launched. In above case there is a new type of assortment for general purpose and needs to be created manually with transaction WSOA1.
For general assortment selection of listing procedure is important and in case of procedure material.grp/ assortment (as in above example) valid merchandise category must be assigned to mdse cat. Tab.
Don’t forget that local assortments are always assigned only to the site for which they were generated. Additionally sales org and distribution channel of assortment is equal to one defined in corresponding site. For general assortment even if article is assigned to assortment and listing conditions were generated user always needs to be linked to assortment to be able to fully use it.
Manual listing
As described before, there are listing procedure which creates assortment modules and assigns to it articles out of different listing procedures automatically. You can create some modules manually like standard module, assign articles and them use them in assortments.
Module creation (Tcode: WSO1) and article assignment
And assignment module to assortment
Article master data
In article master data you set listing procedures per distribution chain (Sales Org and distribution channel). It is important to remember that
it’s not site dependent. Whenever we run listing execution system will find all assortments with same distribution chain (required fields in assortment) and execute listing procedure (either set in article master data or in assortment, all depends on Assortm.Prio parameter set in listing procedure in article master data). In above example system will look for all general assortments where Sales org is ZSH1 and Dchl is P1. Due to listing procedure is set to Z4 where Assortm.ListPr is set to X, system will execute check with listing procedure of each found assortment.
Quite useful functionality in listing tab is to select checkbox local assortments also (these assortments with type A - DC or B - Store). Each site is assigned to distribution chain. Article listing view needs to be created for this distribution chain and listing procedures assigned. To determine listing procedure for local assignment system for article, system will find all assortments type A and B. Based on distribution chain from assortments system will read article listing view with mentioned dist. Chain and in case if dist chain is used for store listing procedure is read from store section and in case when distr. Chain is associated with assortment type DC then listing procedure from DC section is read. In this case my local assortments that need to be found is with S.Org ZSH1 and D.Chan P9 for DC and P8 for stores. Then system takes listing procedure for store:
And for DC (data for S.Org ZSH1 and D.Chan P9)
If you mark the checkbox by the ListSupplySite field, you can also list the supplying sites for all articles which can be procured via a warehouse/distribution center. Unfortunately to make this option working we need to have binding between merchandise group and site via assortment.
Reference site
In case if you have multiple sites with the same assortment there is always an option to create assortment for one of them – kind of template. Later on you only create a reference to it as presented below
In this case site ZFS1 can you all assortments of ZFS3. If ZFS3 offers to broad assortment despite of reference there is option to use exclusion module for ZFS1.
As you can see whole listing of articles is rather not easy topic that has a multiple of options and require number of configuration activities. For purpose I didn't discussed layout management as this will be part of other article.