アナリティクス開発のベスト プラクティス

アナリティクスは、標準の Analytics スクリプトで使用できるコマンドのほとんどをサポートしています。開発者としては、アナリティクスがユーザーの操作なしに実行できるようにすると共に、アナリティクスが、展開環境でそれを処理するエンジンでサポートされていないコマンドを含まないようにする必要があります。

Analytics ではすべての Analytics  関数がサポートされます。

一般的なベストプラクティス

ロボットまたは分析アプリごとに 1 つの Analytics プロジェクトを使用する

ロボットまたは分析アプリごとに Analytics で新しい Analytics プロジェクトを作成します。プロジェクトには、ロボットまたは分析アプリを構成するすべてのアナリティクスと、サブスクリプトで必要となるすべてのが含まれている必要があります。分析アプリの場合、プロジェクトには、アナリティクスで必要となるすべてのデータ ファイルが含まれている必要があります。

ローカルでテストする

ターゲット環境にアナリティクスを展開する前に、すべてのアナリティクスをローカルでテストします。アナリティクスが想定通りに実行され、ユーザー操作が必要でないことを確認します。

詳細については、アナリティクスの開発を参照してください。

テストに安定したデータ接続を使用する

ODBC データ ソースを使用しているかどうかについてローカルでアナリティクスをテストするには、お使いのローカル コンピューター上で、アナリティクスが実行する環境の接続と一致する、 ODBC 接続を構成する必要があります。

分析アプリ ウィンドウで使用するために配布されたアナリティクスの場合、エンド ユーザーが自身のコンピューター上に等しい ODBC を構成する必要があります。

絶対ファイル パスの使用を避ける

アナリティクスが実行される環境に同一のファイル パスが存在していることが確実な場合以外、アナリティクスで絶対ファイル パス(C:\results など)を使用することは避けてください。

相対ファイル パス(\resultsなど)を使用すると、アナリティクスをローカルで開発してテストし、他の環境に同じディレクトリ構造がなくても、別の環境に展開できます。

SET を使って初期設定を行う

SET コマンドを使用して、アナリティクスで必要となるすべての初期設定を指定します。アナリティクスの初期設定をしない場合は、Analytics のデフォルトの初期設定が使用されます。アナリティクス ヘッダーの後ろ、アナリティクス ロジックの前に SET コマンドを置きます。

結果テーブルやデータ テーブルでは演算フィールドは使用禁止

アナリティクス スクリプトを実行するセッション以外のセッションでも保持したいテーブル内では、演算フィールドを使用しないでください。

解釈内での使用目的に、あるいは後続のスクリプトの入力として保持される結果テーブルやデータ テーブルが演算フィールドを含んでいる場合には、予期しない値が表示される可能性があります。演算値は初期設定ファイル(.prf)に定義されている設定によって決まるか、または SET コマンドを使って作成されるため、環境に応じて、出力される値が異なってきます。

演算フィールドの値を保持する必要がある場合は、EXTRACT コマンドを FIELDS または ALL オプションとともに使用することで、そのフィールドを結果テーブルやデータ テーブルの物理フィールドに変換します。詳細については、EXTRACT コマンドを参照してください。

データ接続のパスワードを暗号化する

アナリティクスにデータ ソースのパスワードをプレーン テキストで設定しないようにするには、PASSWORD アナリティクス タグを使用します。このタグは、アナリティクスを実行する前に、パスワードの入力をユーザーに求め、入力された値を暗号化します。

HighBond との間でインポートまたはエクスポートを行うときにパスワードを使用する

PASSWORD パラメーターは、HighBond との間でインポートまたはエクスポートを行うすべてのコマンドで必要です。

  • IMPORT GRCRESULTS
  • IMPORT GRCPROJECT
  • EXPORT... ACLGRC

PASSWORD パラメーターがない場合、ロボット、Analytics Exchange、または分析アプリ ウィンドウでコマンドが失敗します。

アナリティクス スクリプトで、PASSWORD パラメーターを使用するときには、アナリティクス ヘッダーで関連付けられたパスワード入力パラメーターも指定する必要があります。詳細については、PASSWORDを参照してください。

メモ

PASSWORD パラメーターは、Analytics でインポートおよびエクスポート コマンドを実行するときには不要です。現在のユーザーの HighBond アクセス トークンが自動的に使用されます。

ユーザー操作の回避

アナリティクスは、ユーザーの操作なしに実行できるようにしておく必要があります。コマンドがダイアログ ボックスを作成しようとすると、開発環境のエンジンがアナリティクスを停止し、エラーがログに記録されます。

ユーザー操作コマンドをアナリティクス タグに置き換える

ユーザー操作を必要とする Analytics コマンドを使用しないようにします。アナリティクス ヘッダーの同等のアナリティクス タグで置換します。アナリティクス タグでは、アナリティクスを実行する前に、ユーザーが入力値を指定できます。

使用しない 置換
DIALOG //TABLE, //FIELD, //PARAM
ACCEPT //TABLE, //FIELD, //PARAM
PASSWORD //PASSWORD
PAUSE 相当するオプションなし

ガイドライン

  • アナリティクス処理が失敗しないようにするには、すべての操作コマンドを削除する
  • 確認ダイアログ ボックスを表示しないで、必要に応じてファイルを上書きできるようにするため、アナリティクスの先頭に SET SAFETY OFF コマンドを追加すると共に、デフォルトの動作を復元するため、アナリティクスの終わりに SET SAFETY ON コマンドを追加する
  • 確認ダイアログによってアナリティクスがクラッシュしないようにするには、通常、確認ダイアログ ボックスを表示する以下のコマンドの後に OK パラメーターを追加します。
    • RENAME
    • DELETE

スクリプト構文を確認する

Analytics は、アナリティクスが失敗する原因となるスクリプト構文、またはローカル環境とアナリティクスが展開される環境との間で調整が必要になるスクリプト構文を検出するツールを提供しています。このツールでは警告のみが表示されます。警告のあるアナリティクス スクリプトでも、コミットまたはインポートできます。

ツールの確認機能

ツールは、次の項目について、プロジェクトのすべてのスクリプトを確認します。

  • ユーザー操作を必要とするコマンド
  • 絶対ファイル パス
  • 外部スクリプトの呼び出し

確認が実行されるタイミング

スクリプト構文確認は、スクリプトをロボットにコミットするときに、自動的に実行されます。

構文の確認はデフォルトで有効です。オフにする場合は、[オプション]ダイアログボックス([ツール > オプション > インターフェイス])で、[スクリプトをコミットする前に、スクリプト構文チェックを無効にする]を選択します。

確認を手動で実行する

スクリプト構文の確認を手動で実行できます。Analytics ツールバーにスクリプトの確認 ボタンを最初に追加しなければならない場合があります。

  1. 必要に応じて、[スクリプトの確認]ボタンを Analytics ツールバーに追加します。
    1. ツール バー上の何もない場所をダブルクリックすると、[ツール バーの変更]ダイアログ ボックスが開きます。
    2. 利用できるツール バー ボタン]リストで、[スクリプトの確認]を選択し、[追加]をクリックします。
    3. 現在のツール バー ボタン]リストで、[スクリプトの確認]ボタンを選択し、[上へ]または[下へ]をクリックして、ボタンの位置を変更します。

      上から下へのボタンの順序は、ツール バーの左から右への位置に対応しています。

    4. 閉じる]をクリックして、変更を保存します。

  2. ツールバーで、[スクリプトの確認 ]をクリックします。

    プロジェクトのスクリプト構文が有効であること、または1 つ以上の警告を示すメッセージが表示されます。

  3. 次のいずれかを実行します。
    • 警告があるスクリプト構文を修正し、[スクリプトの確認 ]をもう一度クリックして、警告が表示されないことを確認します。
    • 展開環境にディレクトリ構造、またはアナリティクスで指定されたパスまたは外部スクリプトと一致する外部スクリプトがあることを確認します。

AX Server でのアナリティクス実行のベスト プラクティス

Analytics を使用した開発

アナリティクスとそれらに関連するスクリプトをまず Analytics で開発してから、AX Server にインポートします。

便利な機能として、AX Client スクリプト エディターでは、新しいアナリティクスやサブスクリプトを追加したり、既存のアナリティクスやサブスクリプトを編集したりすることができます。この機能は、アナリティクスの動作を微調整する場合に便利です。Analytics にエクスポートして AX Server に再インポートする必要がなくなります。それどころか、微調整レベルを超えるアナリティクス開発作業でさえも Analytics では行いやすくなりました。

Analytics プロジェクトおよびその関連ファイルを保存する

データベース プロファイル ファイルなどの関連ファイルは Analytics プロジェクトと同じフォルダーに保存されますが、別途 AX Server にもインポートする必要があります。

AX Server でサポートされないコマンドの使用を避ける

  • Analytics Server Edition for z/OS にリンクされたデータベース サーバー テーブルへの直接アクセス
  • NOTIFY コマンドは、SMTP メッセージングのみサポートします。MAPI および VIM メール プロトコルはサポートされていない
  • PRINT または TO PRINT コマンドを使用する場合は、通常使うプリンターがサーバーに設定されている必要がある
  • SAVE GRAPH および PRINT GRAPH コマンドはサポートされていない
  • アナリティクス内で SET LEARN コマンドを使用することはできない

AX Server テーブル トランザクションを最小限度に抑える

AX Server のテーブルがアクセスされる回数を最小化することによって、アナリティクスのパフォーマンスを最適化します。

  1. FILTER コマンドを使用すると、必要なレコードを選択します。
  2. EXTRACT コマンドを使用すると、必須フィールドのみを抽出します。

最小限度のデータ セットが、AX Engine によってアナリティクスが実行されているサーバー上でローカルに処理されます。

データ ファイルが AX Server と同じサーバー上、つまり、アナリティクスを処理する AX Engine Node 上に置かれておらず、AX Server Configuration Web アプリケーションで[Copy analytic data]オプションが選択されていない場合には、このようにアナリティクスを最適化することが重要です。

非効率的なアナリティクスの例

OPEN LargeTable 
SET FILTER TO trans_date >= `20091201` AND trans_date < `20100101` 
COUNT 
TOTAL amount 
CLASSIFY ON account ACCUMULATE amount TO TransClassAccount

効率的なアナリティクスの例

OPEN LargeTable 
SET FILTER TO trans_date >= `20091201` AND trans_date < `20100101` 
EXTRACT FIELDS trans_date desc account type amount TO AnalysisTable 
OPEN AnalysisTable 
COUNT 
TOTAL amount 
CLASSIFY ON account ACCUMULATE amount TO TransClassAccount

バックグラウンド モードで SAP データにアクセスする

Direct Link を使用して SAP ERP システム内のデータにアクセスするには、Background モードを使用します。

ACL のスクリプト作成ガイド 14.1