Access Sequence & Condition Table in SAP MM (V/05, M/03)

โšก Rรฉsumรฉ intelligent

Access Sequence and Condition Table in SAP decide where a price is searched for. The sequence lists accesses in priority order, each pointing at a condition table whose key fields identify the condition record.

  • ???? Objectif principal : An access sequence is the search strategy a condition type follows to find a valid price.
  • ๐Ÿชœ Exclusive Accesses: Searching stops at the first access that returns a record, so sequence order defines priority.
  • ๐Ÿงฉ Condition Table: Each access points at a table whose key fields form the combination being searched.
  • (I.e. Exigences : A requirement routine such as 35 skips an access entirely when its precondition is not met.
  • ๏ธ Field Attributes: Special value source, Init, Atyp, and Priority control how each key field behaves during the access.
  • (I.e. Creating Tables: M/03 creates a purchasing condition table, optionally copied from an existing one, and it must be generated.
  • ๐Ÿ“š Reuse First: SAP ships a large catalogue of tables, so new ones are rarely necessary.

Access sequence and condition table in SAP MM

What is an Access Sequence and Condition Table?

A condition type such as PB00 describes what kind of value a gross price is. It does not know where to find one. That is the job of the access sequence attached to it.

Two objects work together:

  • Condition table. A table whose key fields define one combination for which a price can be maintained, for example vendor plus material plus plant. Table 18 is the material info record combination used in the example below.
  • Access sequence. An ordered list of accesses, each pointing at one condition table. SAP tries them from the top and stops at the first that returns a record.

The order therefore expresses business priority. A price negotiated in a contract should beat a general info record price, so the contract access sits above it. Reversing the two would silently overwrite negotiated terms with a standard rate, which is why access sequence maintenance deserves care.

The chain is completed by the schรฉma de calcul, which decides in what order the condition types are applied once each has found its value.

Dรฉfinir la sรฉquence d'accรจs

Pour dรฉfinir et gรฉrer les sรฉquences d'accรจs, vous devez suivre quelques รฉtapes simples.

ร‰tape 1) Go to SPRO > Materials management > Purchasing > Conditions > Define price determination process > Define access sequences.

As shown below, you will find a dialog structure of Sรฉquences d'accรจs, Accรจs et Des champs.

  1. Choisissez la sรฉquence d'accรจs que vous souhaitez conserver (PB01 prix brut).
  2. Double cliquez sur le Accรจs dossier dans la structure de la boรฎte de dialogue.

Dรฉfinir la sรฉquence d'accรจs

ร‰tape 2) ร€ l'รฉtape suivante, vous dรฉfinissez les mรฉthodes d'accรจs pour la sรฉquence d'accรจs. Vous pouvez constater que plusieurs mรฉthodes d'accรจs sont prรฉsentes pour une sรฉquence.

Chacune d'elles est exclusive. Cela signifie que si un enregistrement est trouvรฉ lors du premier accรจs (Contracรฉlรฉment t), ce qui signifie que si le systรจme trouve une condition disponible auprรจs de la ContracSi l'รฉlรฉment est trouvรฉ, la recherche s'arrรชte lร  et cette valeur est utilisรฉe. Sinon, le systรจme explore les autres accรจs pour trouver l'entrรฉe appropriรฉe.

Vous pouvez รฉgalement dรฉfinir une exigence relative ร  l'utilisation d'une mรฉthode d'accรจs. Par exemple, il existe une exigence 35 assignรฉe ร  l'accรจs 10, qui utilise la table de conditions 17 โ€“ Fiche d'informations sur les matรฉriaux (spรฉcifique ร  l'usine).

Dรฉfinir la sรฉquence d'accรจs

Une exigence pour le numรฉro d'accรจs 10 est 35 โ€“ Fiche d'informations sur l'usine. S'il n'existe aucune fiche info installation pour la combinaison des valeurs du tableau 17, l'accรจs 10 n'est pas du tout utilisรฉ.

Dรฉfinir la sรฉquence d'accรจs

ร‰tape 3)

  1. Sรฉlectionnez l'accรจs que vous souhaitez modifier.
  2. Choisissez le dossier de niveau le plus bas dans la structure de la boรฎte de dialogue โ€“ Des champs.

Dรฉfinir la sรฉquence d'accรจs

ร‰tape 4)

  1. Vous pouvez voir que nous nous trouvons sur l'รฉcran de dรฉtails pour la sรฉquence d'accรจs PB01, l'accรจs 20 et le tableau 18.
  2. Les champs clรฉs d'une table de conditions utilisรฉe dans l'accรจs aux conditions sont affichรฉs ici.

La table de conditions se compose de champs de conditions auxquels certains attributs sont attribuรฉs. Lorsque le systรจme tente d'accรฉder ร  un enregistrement de condition, il utilise ces attributs.

Dรฉfinir la sรฉquence d'accรจs

  • Source de valeur spรฉciale โ€“ ce champ contient une valeur ร  utiliser par dรฉfaut lors de l'accรจs (par exemple en utilisant une catรฉgorie d'enregistrement d'informations fixe pour la sรฉquence d'accรจs)
  • Init โ€“ si cette case est cochรฉe, le systรจme autorisera la valeur initiale de ce champ lors de lโ€™accรจs ร  la table de conditions. Dans le cas contraire, le systรจme ne traitera pas la recherche dans la table de conditions.
  • atypique โ€“ type de traitement en accรจs. Vous pouvez spรฉcifier si le champ est pertinent pour l'accรจs conditionnel s'il fait partie d'un type de clรฉ libre ou fixe. La valeur par dรฉfaut est laissรฉe vide (type de clรฉ fixe).
  • Prioritรฉ โ€“ prioritรฉ d'un champ (caractรฉristique), elle peut รชtre rรฉglรฉe de 01 ร  99. La plupart du temps ce champ est laissรฉ vide.

Dรฉfinir des tables de conditions

Maintenant que nous savons ce qu'est une table de conditions, ร  quoi elle sert, nous pouvons voir oรน une table de conditions peut รชtre dรฉfinie et quelle option nous avons lors de sa crรฉation.

Comme vous l'avez vu dans la rubrique prรฉcรฉdente, nous avons utilisรฉ le tableau 18 โ€“ Enregistrement d'informations sur les articles dans notre exemple.

Voyons oรน et comment cela est dรฉfini.

Displaying an existing condition table

ร‰tape 1)

  1. Exรฉcuter le code de transaction V / 05 et sur l'รฉcran initial, entrez notre numรฉro de table - 18.
  2. Dans la section 2, vous pouvez voir la dรฉfinition de notre table, le numรฉro de la table, la description et deux options qui peuvent รชtre sรฉlectionnรฉes. Le premier signifie l'utilisation de la pรฉriode de validitรฉ (toujours recommandรฉe) et l'autre est une vรฉrification du statut de publication du dossier. Si cette case est cochรฉe, seules les fiches infos validรฉes seront prises en compte lors de la recherche de la condition.
  3. Voici la liste des champs que vous avez dรฉjร  vus dans la rubrique Dรฉfinir la sรฉquence d'accรจs.

You can see how the table is defined for later use in customizing the access sequence.

Dรฉfinir des tables de conditions

V / 05 La transaction est utilisรฉe pour afficher une table de conditions.

V / 04 La transaction est utilisรฉe pour modifier une table de conditions.

V / 03 La transaction est utilisรฉe pour crรฉer une table de conditions.

Creating a new condition table

Vous pouvez dรฉsormais dรฉfinir une nouvelle table de conditions si nรฉcessaire, in order to use it in the access sequence definition. Most of the time new condition tables are not required, because SAP delivers a large catalogue of predefined tables.

ร‰tape 1)

  1. Entrez le t-code M/03 et exรฉcutez-le.
  2. Choisissez votre nouveau numรฉro de table (doit รชtre inutilisรฉ, par exemple 818).
  3. Si vous souhaitez copier une table existante dans votre nouvelle table, vous pouvez sรฉlectionner la table source ici. Ceci est utile si votre table est similaire ร  une autre table existante et ne nรฉcessite qu'une simple modification pour rรฉpondre aux exigences.

Dรฉfinir des tables de conditions

ร‰tape 2) Sur l'รฉcran suivant, vous pouvez effectuer tous les rรฉglages d'une table de conditions et la gรฉnรฉrer.

  1. Cliquez sur ce bouton si vous souhaitez modifier la description.
  2. Choisissez si votre table doit vรฉrifier les pรฉriodes de validitรฉ et les statuts de version.
  3. Liste des champs actuels. Vous pouvez sรฉlectionner n'importe quel champ que vous souhaitez supprimer (en cliquant dessus) et choisir l'icรดne de suppression (icรดne de liste avec un signe moins rouge).
  4. Vous pouvez ajouter des champs du catalogue de champs en double-cliquant dessus.
  5. Vous devez gรฉnรฉrer le tableau pour qu'il puisse รชtre utilisรฉ par les fonctions de tarification.

Dรฉfinir des tables de conditions

Vous pouvez รฉgalement utiliser le clic droit pour supprimer ou ajouter un champ ร  votre table, ainsi que pour parcourir le catalogue de champs sur le cรดtรฉ droit de l'รฉcran. Tous les champs ne peuvent pas รชtre affichรฉs sur une seule page du catalogue de champs.

Aprรจs une crรฉation rรฉussie, vous serez invitรฉ ร  crรฉer une demande de modification et ensuite, un รฉcran de journal vous sera prรฉsentรฉ comme vous pouvez le voir sur l'รฉcran suivant.

Dรฉfinir des tables de conditions

You have successfully generated a condition table, letโ€™s see if we can see it in the access sequence maintenance screens.

Dรฉfinir des tables de conditions

Itโ€™s there, so now we can create an access using this table. We will not cover this in detail as it is an extremely straight forward process.

On the accesses node of our access sequence, choose New entries button. You can create an access like in the below screen for testing purposes.

Dรฉfinir des tables de conditions

Fields should also be assigned to our access PB01 โ€“ 96 in order for it to work properly.

Condition Table Transaction Codes: MM and SD

The transaction codes above deserve a note, because two parallel families exist and using the wrong one is a frequent source of confusion. The steps above use V/05 to display and M/03 to create, which reflects how many consultants actually work, but the families are not interchangeable.

Action Gestion des matiรจres Vente et de distribution
Create condition table M / 03 V / 03
Change condition table M / 04 V / 04
Display condition table M / 05 V / 05
Access sequence maintenance M / 07 V / 07
Condition type maintenance M / 06 V / 06

The M family belongs to purchasing and the V family to sales. Both read the same underlying table definitions, which is why V/05 will display a purchasing table, but always create in the family that matches the application so the field catalogue offered is the correct one. Sales side pricing is covered in the SAP SD training course.

โš ๏ธ Attention : A new condition table is unusable until it is generated. Saving the definition alone creates no database table, and the access sequence will simply not offer it. Always complete the generation step and check the log.

How Condition Records Are Found at Runtime

Configuration only makes sense once the runtime behaviour is clear. When a purchase order item is priced, SAP performs the following sequence for every condition type in the schema.

  1. Read the access sequence. The condition type names one sequence. A condition type without a sequence, such as PBXX, is skipped entirely and can only be entered by hand.
  2. Evaluate the requirement. Each access can carry a requirement routine. Requirement 35 in the example checks whether a plant specific info record exists. A failed requirement skips that access without any database read.
  3. Build the key. The key fields of the condition table are filled from the document. Vendor, material, plant, and purchasing organisation are taken from the order header and item.
  4. Read the condition table. If a record exists for that exact key and is valid on the pricing date, the value is taken and the search stops. This is what exclusive means.
  5. Fall through on no hit. If nothing is found, the next access is tried. When every access fails the condition simply carries no value, which on a mandatory condition raises an error.

This behaviour explains two common symptoms. A price that is stubbornly wrong usually means a higher access is matching a record nobody remembered, and the Analysis button on the item conditions screen names the access that won. A price that never appears usually means every access failed, most often because the fiche d'information sur l'achat validity period has expired. The determination of the whole schema is covered in defining schema groups.

FAQ

Yes, decisively. Accesses are exclusive, so the first one that finds a record wins and the rest are never read. The sequence therefore encodes which price source outranks another.

Rarement. SAP delivers a large catalogue covering most key combinations. Build one only when the required combination of fields genuinely does not exist, and always generate it afterwards.

AI reads the pricing analysis log and explains in plain language which access matched, which were skipped by a requirement, and which found no record, turning a cryptic trace into a diagnosis.

Yes. Counting how often each access actually returns a record across posted documents shows which ones never fire, so unused accesses can be retired and pricing runs faster.

It tests a precondition before the access runs. Requirement 35 checks for a plant specific info record; if none exists the access is skipped entirely rather than searched and failed.

Rรฉsumez cet article avec :