Aracılığıyla paylaş


Ürün yapılandırma modellerindeki ifade kısıtlamaları ve tablo kısıtlamaları

Bu makalede ifade kısıtlamalarının ve tablo kısıtlamalarının kullanımı açıklanmaktadır. Kısıtlamalar ürünleri satış siparişi, satış teklifi, satınalma siparişi veya üretim emri için yapılandırdığınızda, seçebileceğiniz öznitelik değerlerini denetler. Kısıtlamaları nasıl oluşturmayı tercih ettiğinizde bağlı olarak ifade kısıtlamalarını veya tablo kısıtlamalarını kullanabilirsiniz.

Kısıtlamalar ürünleri satış siparişi, satış teklifi, satınalma siparişi veya üretim emri için yapılandırdığınızda, seçebileceğiniz öznitelik değerlerini denetlemek için kullanılır. Kısıtlamaları nasıl oluşturmayı tercih ettiğinizde bağlı olarak ifade kısıtlamalarını veya tablo kısıtlamalarını kullanabilirsiniz.

İfade kısıtlamaları nelerdir?

İfade kısıtlamaları, aritmetik ve Boole işleçlerini ve işlevlerini kullanan bir ifade tarafından belirlenir. Bir ifade kısıtlaması, ürün yapılandırma modelinde belirli bir bileşen için yazılır. Başka bir bileşen tarafından yeniden kullanılamaz veya bir başka bileşenle paylaşılamaz. Ancak, bir bileşen için ifade kısıtlamaları, bileşenin alt bileşenlerinin özniteliklerini referans gösterebilir.

Tablo kısıtlamaları nelerdir?

Tablo kısıtlamaları, bir ürün yapılandırdığınızda öznitelikler için izin verilen değerlerin birleşimlerini listeler. Tablo kısıtlaması tanımları genel olarak kullanılabilir. Ürün yapılandırma modelinde bir bileşen için bir tablo kısıtlaması oluşturduğunuzda, tablo kısıtlaması tanımı seçersiniz. İzin verilen birleşimleri oluşturmak için belirli türdeki öznitelikleri bileşenlere eklersiniz. Her öznitelik türü belirli bir değere sahiptir.

Bir tablo kısıtlaması örneği.

Bu örnek, hoparlör yapılandırmasını belirli bir kabin rengi ve ön cephesiyle nasıl sınırlandırabileceğinizi gösterir. İlk tablo, yapılandırma için genelde kullanılabilir olan kabin rengini ve ön cepheyi gösterir. Değerler Kabin rengi ve Izgara rengi öznitelik türleri için tanımlanır.

Öznitelik türü Değerler
Kabin rengi Siyah, Meşe, Pelesenk, Beyaz,
Izgara rengi Siyah, Metal, Beyaz

Sonraki tablo, Renk ve kaplama tablo kısıtlamasıyla tanımlanan birleşimlerini gösterir. Bu tablo kısıtlamasını kullanarak bir hoparlörü meşe kaplamalı ve siyah ızgaralı, pelesenk kaplamalı ve beyaz ızgaralı ve benzeri şekilde yapılandırabilirsiniz.

Son Izgara
Meşe Siyah
Venge Beyaz
Beyaz Siyah
Beyaz Beyaz
Siyah Siyah
Siyah Metal

Sistem tanımlı ve kullanıcı tanımlı tablo kısıtlamaları oluşturabilirsiniz. Daha fazla bilgi için, Sistem tanımlı ve kullanıcı tanımlı tablo kısıtlamaları bölümüne bakın.

Kısıtlamaları yazmak için hangi sözdizimi kullanılmalıdır?

Kısıtlamaları yazarken En İyi Duruma Getirme Modelleme Dili (OML) sözdizimini kullanmalısınız. Sistem, kısıtlamaları çözümlemek için Microsoft Solver Foundation kısıtlama çözücüsünü kullanır.

Tablo kısıtlamaları veya ifade kısıtlamaları kullanmam gerekir mi?

Kısıtlamaları nasıl oluşturmayı tercih ettiğinizde bağlı olarak ifade kısıtlamalarını ya da tablo kısıtlamalarını kullanabilirsiniz. İfade kısıtlaması tek bir ifade olduğunda bir matris olarak tablo kısıtlaması oluşturursunuz. Bir ürünü yapılandırdığınızda, ne tür bir kısıtlama kullanıldığının önemi yoktur. Aşağıdaki örnekte iki yöntem arasındaki fark gösterilir.

Bir ürünü aşağıdaki kısıtlama ayarlarını kullanarak yapılandırdığınızda bu kombinasyonlara izin verilir:

  • Siyah renkte ve boyutu 30 veya 50 olan bir ürün
  • Kırmızı renkte ve boyutu 20 olan bir ürün

Tablo kısıtlaması ayarı

Renk Ebat
Siyah 30
Siyah 50
Kırmızı 20

İfade kısıtlaması ayarı

(Renk == "Siyah" & (boyut == "30" | boyut == "50")) | (renk == "Kırmızı" & boyut = "20")

İfade kısıtlamaları yazarken bir işleç ya da parantezli yazım kullanmam gerekir mi?

Önek operatörleri ya da parantezli yazım kullanarak bir ifade kısıtlaması yazabilirsiniz. Min, Mak ve Mutlak işleçleri için parantezli yazım kullanamazsınız. Bu işleçler, çoğu programlama dilinde standart işleçler olarak dahil edilir.

İfade kısıtlamaları yazarken hangi işleçleri ve parantezli yazımı kullanabilirim?

Aşağıdaki tablolarda, ürün yapılandırma modelinde bir bileşen için bir ifade kısıtlaması yazarken kullanabileceğiniz işleçler ve parantezli yazım listelenmiştir. İlk tablodaki örnekler parantezli yazım ya da işleçler kullanılarak bir ifadenin nasıl yazılacağını gösterir.

İşleç Açıklama Sözdizimi Örnekler
Gösterir Bir koşul doğruysa, sınırlama b'yi uygulayın. Implies[a, b], infix: a -: b
  • İşleç: Implies[x != 0, y >= 0]
  • Parantezli yazım: x != 0 -: y >= 0
Ve Koşulların tümü doğru ise bu doğrudur. Koşulların sayısı 0 (sıfır) ise, Doğru değeri çıkar. And[args], infix: a & b & ... & z
  • İşleç: And[x == 2, y <= 2]
  • Parantezli yazım: x == 2 & y <= 2
Veya Herhangi bir koşul doğru ise bu doğrudur. Koşulların sayısı 0 (sıfır) ise, Yanlış değeri çıkar. Or[args], infix: a | b | ... | z
  • İşleç: Or[x == 2, y <= 2]
  • Parantezli yazım: x == 2 | y <= 2
Artı Bu, koşullarını toplar. Koşulların sayısı 0 (sıfır) ise, 0 değeri çıkar. Plus[args], infix: a + b + ... + z
  • İşleç: Plus[x, y, 2] == z
  • Parantezli yazım: x + y + 2 == z
Eksi Bu, çıkarımı negatif hale getirir. Tek bir koşula sahip olması gerekir. Minus[expr], infix: -expr
  • İşleç: Minus[x] == y
  • Parantezli yazım: -x == y
Abs Bu, koşulunun mutlak değerini alır. Tek bir koşula sahip olması gerekir. Abs[expr] İşleç: Abs[x]
Zaman Bu, koşullarının ürününü alır. Koşulların sayısı 0 (sıfır) ise, 1 değeri çıkar. Times[args], infix: a * b * ... * z
  • İşleç: Times[x, y, 2] == z
  • Parantezli yazım: x * y * 2 == z
Güç Vu, üslü değer alır. Kuvveti sağdan sola uygular. (Diğer bir deyişle sağ ile ilişkilidir) Bu nedenle, Power[a, b, c], Power[a, Power[b, c]] ile eşdeğerdir. Power, üs yalnızca pozitif bir sabit sayı ise kullanılabilir. Power[args], infix: a ^ b ^ ... ^ z
  • İşleç: Power[x, 2] == y
  • Parantezli yazım: x ^ 2 == y
Maks Bu, en büyük koşulu oluşturur. Koşulların sayısı 0 (sıfır) ise, Sonsuzluk üretir. Max[args] İşleç: Max[x, y, 2] == z
Minimum Bu, en küçük koşulu oluşturur. Koşulların sayısı 0 (sıfır) ise, Sonsuzluk üretir. Min[args] İşleç: Min[x, y, 2] == z
Not Bu, koşulunun mantıksal tersini oluşturur. Tek bir koşula sahip olması gerekir. Not[expr], infix: !expr
  • İşleç: Not[x] & Not[y == 3]
  • Parantezli yazım: !x!(y == 3)

Sonraki tablodaki örnekler parantezli yazımın nasıl yazılacağını gösterir.

Parantezli yazım Açıklama
x + y + z Ekleme
x * y * z Çarpma
x - y İkili çıkarma, negatife düşmüş bir ikinci varsa ikili toplama ile aynı şekilde çevrilir.
x ^ y ^ z Sağa birleşimli üs
!x Boole değil
x -: y Boole çıkarım
x y
x & y & z Boole ve
x == y == z Denklik
x != y != z Benzersiz
x < y < z Küçüktür
x > y > z Büyüktür
x <= y <= z Küçüktür veya eşittir
x >= y >= z Büyüktür veya eşittir
(x) Parantezler varsayılan önceliği geçersiz kılar.

İfade kısıtlamalarım neden hatasız doğrulanmıyor?

Ayrılmış anahtar sözcükleri, öznitelikleri, bileşenleri veya ürün yapılandırma modelinde alt bileşenleri için çözücü ad olarak kullanamazsınız. Ayrılmış anahtar sözcüklerin bir listesi aşağıdadır:

  • Üst
  • Öğe
  • Eşit
  • Kat
  • Eğer
  • Küçüktür
  • Büyüktür
  • Gösterir
  • Hata İletileri
  • Maks.
  • Min.
  • Eksi
  • Artı
  • Güç
  • Zamanlar
  • Aralık
  • Model
  • Karar
  • Hedef

Ek kaynaklar

Bir ifade kısıtlaması oluşturma

Ürün yapılandırma modeline hesaplama ekleme