ブール論理式の旧構文ルール 

ブール論理式を直接入力することによって ( すなわち、論理式ビルダを使用しないで ) リリース 4.0A のルールを登録する際は、 4.0A 以前のリリースで使われていた旧構文ルールを使ってください。

チェックと代入で、命令を直接または論理式ビルダのエキスパートモードを使って入力する際は、リリース 4.0A の新しい構文ルールを使用します。詳細は、 ブール論理式の構文ルールを参照してください。

ルールに命令を直接入力する場合は、次の構文ルールに従います。

  1. 命令にまずテーブル名を定義します。
  2. 命令は必ずテーブル名を参照しなければなりません。このテーブルには、命令で使われる次元が含まれます。

    テーブル名を中括弧で囲みます。

    <GLT0>

    <GLT1>

    <COBL>

    1 つの命令内では、新規のテーブルを入力するまでこのテーブル名が有効です。 1 つの命令で、複数のテーブルを参照することができます。

    命令にルールを入力する際は、ルール用のテーブル名を入力する必要はありません。ルールが使用するテーブル名は、ルールが定義された時点で入力されています。ルールについての詳細は、 ルールについてを参照してください。

    基本セットおよび単一次元セットについては、命令内のセット用にテーブル名を入力する必要はありません。

  3. 命令の各エレメントは、 1 つ以上の空白文字で区切ります。
  4. 命令で使う $ 符号と項目名を入力します。
  5. 項目名は、命令で参照する値を含む次元です。

    <GLT1> $RACCT

    <COBL> $BLART

    値の前に入力された次元に、値が存在するかどうかがチェックされます。値が次元にある場合は、命令は真となり、値が次元に ない場合は、命令は偽となります。

    また、項目値の一部だけをチェックするよう指示することもできます。このタイプの指示を入力するには、 $ 符号、項目名、コロン ( :) 、項目名の中のチェックする桁数、最後にコロン ( :) を入力します。 は、常に項目の最初の桁を表します。 ( 入力する数字は値そのものを表すのでは なく、項目列での値の位置を表します。 )

    <GLT1> $RACCT:1-3:

    条件が真かどうかを判断するのに、勘定項目の最初の 3 桁だけが検査されます。

    <GLT1> $RACCT:5-7:

    条件が真かどうかを判断するのに、勘定項目の 5 6 、および 7 桁目が検査されます。

    <GLT1> $RACCT:2-:

    条件が真かどうかを判断するのに、勘定項目の 2 桁目以降が検査されます。

  6. 特定値の両側に、一重引用符 ( ) を入力します。
  7. 命令にセット名を使う場合、セット名の両側には一重引用符を入力しません。

    <GLT1> $RACCT = 500000
    <COBL> $BLART =
    SA

  8. セット名を次のようにして入力します。
  9. a) キーワード IN

    b) セット名

    今回のリリースでも、セットが使用するテーブルは、セット名の前に入力することができます ( IN <table_name> set_name)

    次の例では、テーブル GLT1 に登録された基本セット ACCOUNTS を使用しています。

    IN ACCOUNTS

    IN <GLT1> ACCOUNTS ( 任意のテーブル名を使用 )

  10. それぞれの命令部分をまとめるには、括弧を使います。
  11. <COBL> ($HKONT = 500000 AND $HKONT = 600000 ) OR $KOSTL = 100

  12. 命令のコメントの両側には二重引用符 ( ) を付けます。
  13. 二重引用符内のテキストは処理されず、命令の説明のみに使われます。

  14. 論理演算子、 NOT AND OR NAND NOR --> 、および <-> を使います。
  15. 命令内に括弧が使われている場合を除き、演算子 NOT が最初に処理されます。

    NOT (A OR B)

    この例では、括弧内の命令がまず処理されます。その他の演算子は、命令の順に処理されます。

    詳細は、 真理値表でのブール演算子の使用を参照してください。

  16. 下の表に示す、標準数理演算子を使用します。

 

演算子

定義

<

より小さい

>

より大きい

<>

等しくない

=

等しい

<=

以下

>=

以上

 

  1. 命令にユーザ Exit を入力する場合は、以下を実行します。

    1. = を入力します。
    2. 文字 u ( ユーザ定義ユーザ Exit の場合 ) を入力するか、または s (SAP 標準ユーザ Exit の場合 ) を入力します。
    3. ユーザ Exit 番号 (3 ) を入力します ( 例、 =U123)

クライアント依存のユーザ Exit 用のテーブル (table T80D) にユーザ Exit を含む書式プールは、 特別目的元帳のカスタマイジングで基本設定→ユーザ Exit →クライアント依存ユーザ Exit 更新を選択することにより、設定することができます。システムのアップグレード時に上書きされないようにするため、書式プール名はユーザ命名規則 ( 文字 Z で始める ) に準拠しなければなりません。

  1. 数理処理を命令で使う場合、以下を実行します。

a) キーワード MATHS( を数式の前に入力します。

b) 数式の後に ) を入力します。

c) 下の表に示す、数理演算子を使用します。

 

記号

演算

+

加算

-

減算

*

乗算

/

除算

 

d) 数式が評価される順序を、括弧を使って定義します。

マトリクスチェックまたはマトリクス代入を登録している場合は、伝票明細のチェックまたは代入時に、下の表に示す演算子も使用できます。

 

演算子

説明

SUM( )

伝票の合計

AVG( )

伝票の平均合計

MAX( )

全伝票明細の最大値

MIN( )

全伝票明細の最小値

GROUP BY

1 つのグループ合計と別のグループ合計との比較

 

MATHS( SUM( $HSL ) < 50000 )

この例では、伝票に国内通貨で 50000 を超える金額を転記することはできません。

MATHS( AVG( $FIELD1 ) GROUP BY $RYEAR $RVERS = AVG( $FIELD2 ) GROUP BY $RYEAR $RVERS )

この例では、 FIELD1 の年度 / バージョンの組合せの平均値が FIELD2 の年度 / バージョンの組合せの平均値と等しい場合に、命令が真となります。

数理処理を使う命令では、ルールも使用できます。

MATHS( SUM( $DMBTR ) WHERE &RULE_1 < SUM( $DMBTR ) WHERE &RULE_2 )

この例では、 RULE1 が真である伝票明細に対して国内通貨 (DMBTR) の合計が計算されます。次に、 RULE2 が真である伝票明細に対して国内通貨の合計が計算されます。最初の合計が2番目の合計よりも小さい場合、命令は真です。

  1. TRUE または FALSE を入力して、命令を真または偽として入力することができます。
  2. ブール論理式に通貨タイプを入力する場合、通貨コードを括弧で囲みます。

通貨コードの小数点以下桁数が 2 桁以外の場合にのみ、ブール論理式で通貨コードを指定します。

<BSEG> $DMBTR < 10000 (BEF)