# Define a configuration precondition

> Make a characteristic be asked only when another characteristic has a specific value — for example, Cabin Width and Length when the cabin is Custom Size.

URL: https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama

- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Yapılandırma (Master Data › Items › Item Master Data › item detail › Configuration)
- **Screen route:** `/erp/catalog/products/{id}?tab=yapilandirma`
- **Required permission:** `erp-catalog-items.edit`
- **Prerequisites:**
  - The item is configurable; both the condition characteristic (Seçim (Selection) or Evet/Hayır (Yes/No)) and the characteristic to be asked are configuration characteristics of the card.

A precondition answers the question "when is this characteristic asked?". Example: if the cabin has the standard
size, width and length are not asked; when **Özel Ölçü** (Custom Size) is selected, **Kabin Eni** (Cabin Width) and
**Kabin Boyu** (Cabin Length) are asked and become mandatory.

## Steps

1. On the item's **Yapılandırma** (Configuration) tab, click **İşlemler** (Actions) on the row of the characteristic to be asked (e.g. **Kabin Eni** (Cabin Width)).
   <!-- action: click · target: "İşlemler" -->
2. Select **Koşul** (Condition) from the menu.
   <!-- action: click · target: "Koşul" · expect: "The Koşul — Kabin Eni (Condition — Cabin Width) window; the card's selection and Yes/No characteristics are listed with their values" -->
3. Check the value for which the characteristic is to be asked (e.g. **Özel Ölçü (En x Boy)** (Custom Size, Width x Length) under **Kabin** (Cabin)). If several values of the same characteristic are checked, one of them is enough; if values of different characteristics are checked, all are required together.
   <!-- action: choose · target: "Özel Ölçü (En x Boy)" · expect: "At the bottom of the window: Sorulur: Kabin: Özel Ölçü (En x Boy) olduğunda. (Asked when: Kabin is Özel Ölçü (En x Boy).)" -->

   ![Condition dialog — characteristic is asked only when the condition holds](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/on-kosul-penceresi.png)
   1. Condition value — Cabinet Custom Size
   2. Readable form of the condition
   3. Remove Condition — always asked
   4. Save

4. Click **Kaydet** (Save). Set up the same condition for the other dependent characteristics as well (e.g. **Kabin Boyu** (Cabin Length)).
   <!-- action: click · target: "Kaydet" · expect: "The row shows the Koşullu (Conditional) badge and the text 'Koşul: … olduğunda sorulur' (Condition: asked when …)" -->

**Result:** The characteristic is asked on the sales line and in Configure and Test only when the condition is met; a characteristic that is not asked remains empty and its mandatory setting is not applied. Test the rules with [Configure and Test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme).

![Precondition — Width and Height are asked for Custom Size](https://erpdocs.corexlogic.com/en/en/img/screens/uretim/kosul-on-kosul-deneme.png)
1. Condition characteristic — Custom Size selected
2. Characteristics shown by the precondition
3. Required, asked and empty — the line cannot be saved
4. Condition reads a missing value — line does not come

## What you need to know

- The condition characteristic must be **Seçim** (Selection) or **Evet/Hayır** (Yes/No):
  `'…' koşul olamaz — yalnız seçim ve Evet/Hayır özellikleri koşul olur.` ('…' cannot be a condition — only selection
  and Yes/No characteristics can be conditions.)
- A characteristic cannot be its own condition (`Özellik kendisine koşul olamaz.` — A characteristic cannot be a
  condition for itself.); an indirect loop cannot be created
  (`Bu koşul döngü kurar: koşul özelliği dolaylı olarak bu özelliğe bağlı.` — This condition creates a loop: the
  condition characteristic depends indirectly on this characteristic.).
- On a restricted characteristic, the condition value must be allowed:
  `'…' '…' özelliğinin izinli değerlerinde değil.` ('…' is not among the allowed values of characteristic '…'.)
- A characteristic that has a value in an existing variant cannot be hidden:
  `'…' varyantı bu koşulla geçersiz kalır: …` (Variant '…' becomes invalid with this condition: …)
- **Koşulu Kaldır** (Remove Condition) makes the characteristic always asked again.
- If a value is given to a characteristic that is not asked, the sales line is rejected:
  `'Kabin Eni' yalnız Kabin: Özel Ölçü (En x Boy) olduğunda girilir.` ('Kabin Eni' is entered only when Kabin is Özel
  Ölçü (En x Boy).) If a mandatory characteristic that is asked is empty:
  `'Kabin Eni' özelliğinin değeri girilmemiş.` (No value has been entered for characteristic 'Kabin Eni'.)
- A characteristic that is not asked is **unknown** in BOM and routing rules; protect a formula that reads it with
  `EGER`: [Example 12](https://erpdocs.corexlogic.com/en/uretim/kosullar#ornek-12).
- In the import workbook, the **OnKosul** column: `KABIN = OZEL_OLCU`; values of the same characteristic are separated
  with `/`, different characteristics with `;`.

## Related

- [Conditions and formulas — precondition](https://erpdocs.corexlogic.com/en/uretim/kosullar#on-kosul)
- [Configurable items](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
