In an environment where product allocations are used to constrain the confirmation of sales orders, the use of a single product allocation procedure can make the check against product allocations inflexible and restrictive. The product allocation sequence functionality can help surmount such challenges.
Key Concept
The product allocation sequence limits the confirmation of sales orders based on product allocations. Generally, product allocations are used when a supply is limited to ensure that the total supply is distributed among customers, regions, and distribution channels. You can use multiple product allocation procedures in a product allocation sequence so that if the entire quantity cannot be confirmed based on the first allocation procedure, the system can check for product allocations with the next product allocation procedure that has been defined in the product allocation sequence.
Many times in a project implementation, companies rely on simple workarounds and quick fixes based on what has already been implemented rather than finding a new concept or solution available within the SAP system. This often leads to implementations that underutilize the SAP solution.
In one example, when the product closeout scenario was being discussed in the project implementation, the simple solution suggested was to use such manual workarounds. It was proposed to create another logical plant (plant B) that would be separate from where the inventory would reside when the products are received in the warehouse (plant A). When the sales orders come into the system they would have plant B as the delivering plant. However, by default there is no inventory in plant B. Inventory would be transferred to plant B from plant A depending on which sales orders the inventory planners chose to confirm.
After the inventory is transferred for the sales order quantity, a manual available-to-promise (ATP) check would be performed to confirm the specific sales order. This would have been a very manual process to handle product allocations, and would have created unnecessary master data due to using a new, fictitious plant.
Using a product allocation sequence allows an automated and flexible way to handle this process. The product allocation sequence functionality in SAP Advanced Planning & Optimization (SAP APO) allows the use of two or more product allocation procedures in determining the confirmed quantity within a sales order. I’ll describe the use of a product allocation sequence in a business context and how it is used to manage product allocations for models that are at the end of their product life cycle with the use of two product allocation procedures. You’ll see how to configure the product allocation sequence and see how the configuration relates to the demand planning books used for planning product allocations.
Modeling the Product Allocation Sequence
The product allocation sequence is functionality inside the Global Available-to-Promise (Global ATP) module in SAP APO version 3.0 and higher. The following two examples are from a production allocation sequence functionality implementation on which I was a team member.
Example 1: Dividing the Limited Supply
Modeling the product allocation method can be challenging. The first solution that comes to mind is to divide the available quantity (i.e., the one that you want to allocate) among the different values of your planning criteria (e.g., distribution channels, customer groups, and customers). However, from a practical standpoint, when the customer (sales) orders do not flow as expected, the product allocation environment can become reactive to your execution environment.
In this example, the product allocations were managed at a customer level. If the customer did not order exactly as per their allocations, the allocations had to be constantly adjusted to make sure that the customer order was confirmed (when the customer ordered more) or to avoid artificial shortages for the other customers when they ordered less (e.g., customer A bought less than his allocation, and customer B could take more but does not have the allocation). The product allocation sequence in Global ATP allows the use of multiple product allocation procedures to manage the product allocations, making it more flexible and versatile.
Example 2: Product Life Cycles
Product life cycles in the field of consumer electronics tend to be short due to constant innovation, leading to new products. In the case of laptops, the product life cycle is as little as three months. In the initial and mature stages of a product life cycle, the supply constraints and marketing strategy dictate that the product allocations are closely managed. This can often mean that the product allocations are managed at an individual customer level for a product. However, when the model approaches a discontinuation, there is less need to manage the product allocations except to ensure that the key customers have their own (minimum) allocation.
These short life cycles presented a challenge in modeling the business scenario for this Global ATP implementation. You could decide not to do a product allocation check on the model at all, but that does not protect the inventory for the key customers. A large sales order from any customer could grab the entire available inventory, preventing other customers from purchasing the product. Keeping with the status quo of managing product allocations for all customers at this stage of the product life cycle was too time- consuming and not in line with the product allocation strategy. To put it simply, this was a semi-allocated model. This is where my team and I successfully used the product allocation sequence functionality in Global ATP to solve the business need.
A two-step check for product allocations would also address the business need in these examples. The first step is to check for product allocations at a customer level for a model. The second step, if the entire quantity in a sales order cannot be confirmed, is to check for allocations at a customer group level. You can group customers based on certain criteria (e.g., retail or online). You can also define allocations by the group or by each individual customer belonging to that group.
In this scenario, you only maintain a certain minimum product allocation for your customer or you could use product allocations just for certain customers. You could maintain a product allocation for an aggregate (e.g., a customer group) so that all customers belonging to that customer group can be confirmed based on this allocation. Now let’s take a look at how to configure this in SAP APO.
Configuration of Product Allocation Sequence
Here I use the second example scenario to illustrate how we applied the product allocation sequence functionality.
The product allocation sequence was configured to perform the first check at a customer level and the second check at a customer group level for a particular model. To configure the product allocation sequence functionality, go to transaction SPRO and follow IMG menu path Advanced Planning and Optimization > Global Available-to-Promise (Global ATP) > Product Allocation > Maintain Sequence of Product Allocation Procedures.
Click the New Entries button and enter the name of the Procedure Seq as EOL_SEQUENCE with a Description as Sequence of PAL for EOL (Figure 1).

Figure 1
Define the product allocation sequence
Select the entry EOL_SEQUENCE and click Procedure List on the left side of the screen to define the procedures that will be part of the product allocation sequence. Click the New Entries button to enter the product allocation procedures. The Item field in Figure 2 defines the sequence in which the product allocation procedure is checked in the product allocation sequence. The first check is performed at the customer level with the Prod. Alloc. Procedure as CUSTOMER_PAL (Item as 1). If the entire quantity in the sales order cannot be confirmed, then the remaining quantity is checked with the CUSTOMER_GROUP_PAL (Item as 2) product allocation procedure.

Figure 2
Assign the product allocation procedure to the product allocation sequence
The product allocation group that is assigned to each of the procedures makes it clear that the associated characteristics are different. To look at the characteristics in the product allocation group CUST_AG that are associated with the CUSTOMER_GROUP_PAL product allocation procedure use transaction SPRO and follow IMG menu path Advanced Planning and Optimization > Global Available-to-Promise (Global ATP) > Product Allocation > Maintain Product Allocation Group.
Select the product allocation group CUST_AG and select the characteristics associated with the product allocation group. Only the Product (MATNR) and the customer group 1 (KVGR1) are involved here (Figure 3).

Figure 3
Characteristics of product allocation group CUST_AG
The CUSTOMER_PAL allocation procedure is associated with the CUSTOMER_AG product allocation group, which has the characteristics of customer (KUNNR) in addition to the customer group and the product.

Figure 4
Characteristics of product allocation group CUST_AG
Master Data Setup for Product Allocation Sequence Functionality
Once the product allocation procedure and sequence are defined, you manually assign them in the product location master in SAP APO in the ATP tab (Figure 5). The first check is performed using the product allocation procedure in the product master using the CUSTOMER_PAL procedure (the value assigned in the Loc.-dep.proced field in Figure 5). If there is still quantity to be confirmed in the sales order, then the system checks the product allocation procedure in the product allocation sequence EOL_SEQUENCE (assigned to the Loc.-dep. seq. field) and finds the CUSTOMER_GROUP_PAL (as shown in Figure 2) to perform the check. Note that the first procedure in the EOL_SEQUENCE (CUSTOMER_PAL) is the same as the product allocation procedure assigned in the product location master. The system ignores the redundant entry (i.e., it does not perform the check with the same product allocation procedure twice when the allocation check is performed for a sales order).

Figure 5
Assign the product allocation procedure and product allocation sequence in the product location master
Maintain the Allocation Planning Book
In this example, product allocations are maintained for 25 pieces for week (W) 24/2010 for the product VGCJS110J/S for the customer RETAILER X (Figure 6).

Figure 6
Product allocations maintained at a customer level
You also maintain a product allocation at the customer group RET and for the product VGCJS110J/S for 10 pieces in the key figure Product Allocation (EOL) as shown in Figure 7. Note that you can also see the 25 pieces of Product Allocation (Customer level) because you’re viewing the data at the customer group level (and customer RETAILER X belongs to the customer group RET).

Figure 7
Product allocations maintained at the customer group level
A sales order is manually created for the product VGCJS110J/S for 25 pieces. In this case, the sales order is confirmed for 25 pieces based on the Product Allocation (Customer level) of 25 pieces for the product and customer RETAILER X. For the remaining quantity of five pieces (not confirmed), it does not find enough product allocations for customer RETAILER X. A second product allocation procedure in the product allocation sequence CUSTOMER_GROUP_PAL performs the check and confirms the remaining five pieces against the product allocation quantity of the 10 pieces that are available.
The sales order shows the 25 pieces confirmed using the product allocation procedure CUSTOMER_PAL and the five pieces confirmed against CUSTOMER_GROUP_PAL. Click the Check Item Availability button on the sales order screen and then click the Product allocations button to see how the confirmed quantity in the sales order is determined using the product allocation procedure (Figure 8).

Once confirmed, the consumed quantity of 25 pieces is displayed in the planning book in the key figure Consumed Allocation for the product VGCJS110J/S and customer RETAILER X (Figure 9). The consumption of five pieces is seen in the key figure Consumed Allocation (EOL) for the product VGCJS110J/S and the customer group RET (Figure 10).


Figure 10
Consumption displayed in the planning book at a customer group level
In this example, the sales order was only confirmed for 25 pieces for the allocation at customer level. The use of the product allocation sequence allows the confirmation of all 30 pieces when it is able to confirm the balance of five pieces from allocations at the customer group level. With the product allocation sequence there are no precise allocations that you need to maintain at the customer level, so sales orders can flow through without manual intervention.
Additionally, as seen in the example, if the order first came in for another customer (before the order came in for RETAILER X) and it did not have a customer-specific allocation (e.g., for 20 pieces), that sales order could have been confirmed for 10 pieces based on the allocation at the customer group level. The order for RETAILER X, which came in second, would still have been confirmed for 25 pieces based on the allocation at the customer level. The example illustrates how an allocation at customer level protects the minimum allocation for important customers, but also allows a general pool at the customer group level where the sales orders can be confirmed on a first-come, first-served basis for that particular customer group.
Characteristic Value Combination Considerations
Companies form a business plan for demand based on certain characteristics such as sales organizations, distribution channels, customers, and product groups. The specific values for these characteristics are called characteristic value combinations (CVCs). You have to create CVCs for any planning object structure that you want to use within demand planning before entering any planning data.
In the second example scenario, you maintain CVCs for your most important customers. A minimum supply is assured through product allocations maintained specifically for them. You create CVCs for the product VGCJS110J/S and for customers RETAILER X, CUSTOMERA1, CUSTOMERB1, and CUSTOMERC1 (all belonging to customer group RET).
What would happen if a sales order for the product VGCJS110J/S for customer CUSTOMERD1 (belonging to the customer group RET) is received? The expectation would be that the system should be able to confirm based on the allocations maintained at customer group level (because the customer group is RET). However, you would see the CVC error shown in Figure 11.

Figure 11
CVC error for a customer for which CVC is not maintained
You can maintain the CVC for CUSTOMERD1 (even though you may not want any customer-specific allocations) to circumvent the error. However, maintaining CVCs for each customer is tedious and too master data intensive. Instead, allow the use of a wildcard entry for characteristics for the product allocation procedure and maintain the characteristics for product VGCJS110J/S (Table 1). Although from a processing point of view, no allocations are required for this wildcard customer, you need allocations to avoid the CVCs for the item not found in the error in the sales order Global ATP check. This illustrates how you can manage allocations only for the important customers at customer level and maintain an aggregate pool of product allocations at customer group level wherein any sales order for that customer group does not run into a characteristic combination error.

Tips on Backward/Forward Consumption with Product Allocation Sequence
Product allocations are defined across different time periods, so when a sales order comes in, you need to check the allocations in the correct time period. This time period depends on the check date defined within the configuration, such the delivery date, material availability date, or goods issue date in the sales order. However, if there are not enough allocations for that time period, you can define a time period both prior to (backward) or ahead of (forward) that time period from which allocations are checked.
When the product allocation procedure is used with backward and forward consumption, the system performs the allocation check (using the product allocation procedure defined for that step) for any step in the product allocation sequence. The system then performs the check with the next step defined in the product allocation sequence. When the system confirms a sales order requirement using an allocation in a future time horizon, the system performs forward scheduling, which may lead to a confirmation of the sales order at a later date than what the customer desired.
For example, if product allocations are maintained for customer RETAILER X in week 25 for 10 pieces, then the sales order is confirmed for 25 pieces in week 24 and for another five pieces in week 25 even though there were allocations at customer group level for 10 pieces in week 24. If there was no forward consumption defined the system would have confirmed the remaining five pieces using the second step in the sequence in week 24. The presence of an allocation for a future time horizon may lead to some potential delays in the delivery dates to the customer.
Ranjan Sinha
Ranjan Sinha is a senior managing consultant at IBM. He has vast experience implementing SAP APO functionality in various industries, including electronic and chemical.
You may contact the author at RSinha1152@yahoo.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.