Flexビジネス規則のステートメントおよびプロシージャの定義

Flex SQLステートメントを定義して、組織に固有の検証規則を定義します。挿入後イベントまたは更新後イベントに対して、処理するステートメントを1つ以上設定できます。

Flex SQL処理は、データ検索(選択)とデータ操作(挿入、更新、削除)のステートメントをサポートします。条件チェックを実行するには、selectステートメントを使用します。

SQLステートメントでは、大文字と小文字を使用できます。ただし、行識別トークンは大文字か小文字のどちらかにする必要があります(たとえば:ROWIDまたは:rowid)。

すべてのFlex SQLステートメントには、定義済みの:ROWIDトークンを使用する必要があります。このトークンは、指定したテーブル内で処理されるレコードに対するデータベース行識別を指します。ステートメントは、挿入または更新操作に影響されるテーブル内のレコードごとに実行されます。

ステートメントの最大文字数は4000文字です。ステートメント終了文字(;)は付けないようにします。

データ操作ステートメントは使用できますが、トリガステップの無限カスケードを開始しないようにしてください。たとえば、テーブルで識別される基本テーブルを更新するFlex SQLステートメントを作成することは、通常はお勧めしません。

Inforでは、Flex SQLプロシージャを定義する際、Infor EAMのコンサルタントと緊密に協力して行うことを推奨しています。

  1. [管理] > [画面構成] > [Flexビジネス規則]を選択します。
  2. Flex SQLステートメントとプロシージャを定義する[テーブル]を指定します。
  3. [Flex SQLの追加]をクリックします。
  4. 次の情報を指定します。
    順序番号
    Flex SQL処理の順番を指定します。
    トリガ
    イベントを示すデータベースの操作を指定します。挿入後トリガと更新後トリガはサポートされています。
    SQLステートメント
    指定した操作がテーブルで行われる時に実行するSQLステートメントを指定します。
    失敗メッセージ
    SQLステートメントに失敗した際に表示するメッセージを指定します。ステートメントがテーブルで1つ以上の行を処理すればFlex SQLステートメントは正常です。行を処理しないとFlex SQLステートメントは失敗です。失敗メッセージを使用中にするには、[不具合で中断]を選択します。
    コメント
    Flex SQLステートメントの目的の説明を指定します。
  5. 現行のステートメントが行を処理しない時、Flex SQL処理者が連続Flex SQLステートメントの処理を停止するには、必要に応じて[存在必須]チェックボックスを選択します。
  6. 必要に応じて、[不具合で中断]チェックボックスを選択し、失敗してエラーが出た時に現行の操作を中断します。
  7. 必要に応じて、[リバースリターンコード]チェックボックスを選択すると、現行のFlex SQLステートメントのリターンステータスコードを戻します。選択してステートメントが1つ以上の行を処理すると、プロセッサは「失敗」ステータスを返します。ステートメントが行を処理しないと、処理者が成功ステータスを戻します。
  8. 必要に応じて、[使用中]チェックボックスを選択してFlex SQLステートメントを有効にします。
  9. [Flex SQLをテスト]をクリックして、現行のFlex SQLステートメントが有効化どうか確認します。ステートメントにエラー(無効な構文など)がある場合、メッセージが表示されます。
  10. [送信]をクリックします。
    Flex SQL定義の次の例をご覧ください。
    例1
    標準Infor EAM処理を補うステートメントまたは編集の確認を指定します。たとえば、Infor EAMで購買要求を作成する際にコストコードの値を入力するのは任意です。勘定セグメント値に派生するコストコードの使用に依存して実行する場合、コストコードの値を入力しないと購買要求の更新または挿入ができないようにステートメント確認を定義する必要があります。

    Infor EAMで購買要求の作成を標準的な処理を補うステートメントの確認について次の例をご覧ください。

    • テーブル
      [購買要求]を指定します。
    • トリガ
      [POST-INSERT]を指定します。
    • 順序番号
      [10]を指定します。
    • SQLステートメント
      次の実行するSQLステートメントを指定します。
                           SELECT NULL
                           FROM R5REQUISITIONS
                           WHERE ROWID=:ROWID
                           AND REQ_COSTCODE IS NOT NULL
    • 失敗メッセージ
      [コストコードの値を入力します]を指定します。
    • [存在必須]を選択します。
    • [不具合で中断]を選択します。
    例2
    [Flex SQL]画面で、Infor EAMのR5ACCOUNTDETAILテーブルにあるOracle Financialsと連動する入力や処理に関する行を作成します。

    デフォルト定数値を使用して勘定詳細入力の行を作成する次の例をご覧ください。このステートメントでは、購買要求を作成する際にコストコードの値を入力するという前の例のステートメント確認に従います。順序番号でFlex SQLステートメントを実行する順番を確認します。

    • テーブル
      [購買要求]を指定します。
    • トリガ
      [POST-INSERT]を指定します。
    • 順序番号
      [20]を指定します。
    • SQLステートメント
      次の実行するSQLステートメントを指定します。
                           INSERT INTO R5ACCOUNTDETAIL
                           (ACD_CODE, ACD_RENTITY, ACD_SEGMENT1, ACD_SEGMENT2, ACD_SEGMENT3,
                           ACD_SEGMENT4)
                           SELECT REQ_ACD, 'REQ',
                           '01',
                           '000',
                           '000',
                           '0000'
                           FROM R5REQUISITIONS                      
                           WHERE ROWID=:ROWID
      
    • 失敗メッセージ
      [勘定詳細の作成中のエラー]を指定します。
    • [存在必須]を選択します。
    • [不具合で中断]を選択します。
    • [使用中]を選択します。

    上の例は、REQ_ACDを入力済みのR5ACCOUNTDETAILへの購買要求参照を示しています。Infor EAMは購買要求勘定詳細キーを自動的に生成します。Flex SQLで勘定詳細キー値を作成する必要はありません。

    Infor EAMで勘定詳細に使用するFlex SQLステートメントの定義を決めるのは、どのInfor EAMとERPモジュールを統合するかによります。まずは全体の調達処理の概要をまとめます。次に、各処理セットと照らし合わせて検証の必要性、勘定の生成を判断します。これらは各統合シナリオだけでなく、シナリオ内の各顧客にも特有の必要性です。そのため、全体を入念に処理しているか確認することが極めて重要です。