Ana içeriğe geç

Ayrıştırma

Girdiyi ayrıştırır ve karar tablosunu yürütmek için kullanılabilecek bir işlev döndürür.

$Decisions.Parse(input: ( string | Xml )):(input: any) => any (Xml)

Parametreler

( string | Xml ) input
    Bir XML düğümü nesnesi veya karar tablosu XML dizesi.

Döndürür

Verileri karar tablosuna göre değerlendirmek için kullanılabilecek bir işlev.

Açıklamalar

Ayrıştırma yalnızca bir XML dizesini veya Xmlkabul eder. Döndürülen işlev bir nesne, XML düğümü veya girdi olmadan çağrılabilir. Karar çıktısı JavaScript null biçimine eşlenir undefined; kimlikler, tarihler, diziler ve skaler değerler betik dilindeki karşılıklarına dönüştürülür.

Örnek karar tablosu XML'i

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  <MyDecisionTable HitPolicy="Any" Aggregation="">
    <OutputLabel>Discount by Customer Category</OutputLabel>
    <Inputs>
      <Input>
        <Label>Customer Category</Label>
        <Expression TypeRef="string">Customer.Category</Expression>
        <InputValues TypeRef="" />
      </Input>
      <Input>
        <Label>Order Size</Label>
        <Expression TypeRef="number">OrderSize</Expression>
        <InputValues TypeRef="" />
      </Input>
    </Inputs>
    <Outputs>
      <Output TypeRef="number" Name="Discount">
        <Label>Discount</Label>
        <OutputValues />
        <Default>0</Default>
      </Output>
    </Outputs>
    <Rules>
      <Rule>
        <Description />
        <Inputs>
          <Input>"Business"</Input>
          <Input><10</Input>
        </Inputs>
        <Outputs>
          <Output>0.10</Output>
        </Outputs>
      </Rule>
      <Rule>
        <Description />
        <Inputs>
          <Input>"Business"</Input>
          <Input>>=10</Input>
        </Inputs>
        <Outputs>
          <Output>0.15</Output>
        </Outputs>
      </Rule>
      <Rule>
        <Description />
        <Inputs>
          <Input>"Private"</Input>
          <Input />
        </Inputs>
        <Outputs>
          <Output>0.05</Output>
        </Outputs>
      </Rule>
    </Rules>
  </MyDecisionTable>

Karar tablosu XML'ini ayrıştırma

1
2
var decisionTableNode = $Xml.SelectSingle('MyDecisionTable');
var fn = $Decisions.Parse(decisionTableNode);

Değerlendirme için JSON sağlama

1
2
3
4
var result = fn({
    CustomerCategory: "Business",
    OrderSize: 10
});

Değerlendirme için XML Node nesnesi sağlama

1
2
var dataNode = $Xml.SelectSingle('MyDataInputs');
var result = fn(dataNode);

Ayrıca bkz.