Analytics Exchange のスクリプトの作成

Analytics スクリプトは Analytics 以外でも実行できます。アナリティクスに変換し、分析アプリでパッケージ化することで、Analytics Exchange でもスクリプトをスケジュールして実行できます。

要件

このようなクイック スタートを行うには、以下が必要です。

  • AX Server のインスタンスに接続して本番稼働できる AX Client のインストール
  • Analytics Exchange インストールと同じエディション(Unicode または非 Unicode)での Analytics のインストール
  • Analytics に同梱されているサンプル データへのアクセス許可

    メモ

    デフォルトでは、サンプル データ プロジェクトはローカル ファイル システムのC:\Users\username\Documents\ACL Data\Sample にインストールされます。

AX Server でのスクリプトの実行

Analytics Exchange は AX Engine を使用して、AX Server でアナリティクス スクリプトを実行します。スクリプトがアナリティクス スクリプトに変換され、サーバーにインポートされると、各アナリティクス スクリプト実行は固有の結果セットを含む単一のジョブを表します。

AX Server でアナリティクス スクリプトを実行するとき:

  1. 新しい一時フォルダーがジョブのサーバーで作成されます。
  2. アナリティクス スクリプトと関連付けられたテーブルは一時フォルダーで新しい Analytics プロジェクトにエクスポートされます。
  3. サーバーの AX Engine は Analytics プロジェクト開き、新しいコマンド ログを作成し、アナリティクス スクリプトを実行します。
  4. アナリティクス ヘッダーが指定するすべてのファイル、テーブル、またはログは、特定のジョブ実行に関連付けられた結果フォルダーに保持されます。
  5. 一時フォルダーとファイルはサーバーから削除されます。

ヒント

AX Engine は一時フォルダーでアナリティクス スクリプトを実行するため、相対パスを使用して、サーバーのフォルダーとファイルを参照します。

  • Analytics のスクリプトC:\ACL Data\MyProject\output\results
  • Analytics Exchange のスクリプトoutput\results

スクリプトのアナリティクス スクリプトへの変換

アナリティクス ヘッダーを追加し、AX Server で実行しない Analytics 機能を削除すると、標準のスクリプトをアナリティクス スクリプトに変換します。

次の Analytics スクリプトは ACL Analytics で実行され、次の処理を行います。

  1. IMPORT コマンドを使用して、ACL_Rockwood サンプル データの Pay_scales.xlsx ファイルのデータをインポートします。
  2. SORT コマンドを使用して、式でデータを並べ替えます。
  3. ACCEPT コマンドを使用して抽出する多数のレコードについてユーザーを確認します。
  4. EXTRACT コマンドを使用して並べ替えられたテーブルからユーザーが指定するレコード数を抽出します。
SET SAFETY OFF

EXCEL データをプロジェクトにインポートします
IMPORT EXCEL TO pay_scales "C:\Users\username\Documents\acl_working\pay_scales.fil" FROM "C:\Users\username\Documents\ACL Data\Sample Data Files\ACL_Rockwood\Pay_scales.xlsx" TABLE "Payscales$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

COMMENT インポートされたテーブルを開き、最大および最低時間給の差異で並べ替える
OPEN pay_scales
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "pay_scales_sorted" OPEN

COMMENT 並べられたテーブルから抽出するレコード数をユーザーに確認
ACCEPT "抽出するレコード数: " TO v_top

COMMENT 差異に基づいて上位 N レコードを抽出
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_top% TO "top_difference" OPEN

SET SAFETY ON

アナリティクス ヘッダーの追加

ファイルの最上部にアナリティクス ヘッダーを追加して、スクリプトをアナリティクス スクリプトに変換し始めます。

アナリティクス ヘッダーは、スクリプトの最初のコメント ブロックで囲まれた一連の宣言です。Analytics プロジェクトでスクリプトを作成およびテストした後に、アナリティクス ヘッダーを追加し、Analytics Exchange で実行されるアナリティクス スクリプトに変換します。

スクリプトをアナリティクス スクリプトとして特定する ANALYTIC タグからアナリティクス ヘッダーを開始する必要があります。

COMMENT
//ANALYTIC TopWageGap
EXCEL ファイルをインポートし、賃金差異に基づいて上位の N レコードを抽出します
END

アナリティクス タグの詳細については、 アナリティクス ヘッダーとタグを参照してください。

IMPORT コマンドの変更

AX Engine は一時フォルダーのアナリティクス スクリプトを実行するため、IMPORT コマンドの絶対パスを相対パスに変更し、AX Engine がサーバーでファイルを検索できるようにします。

EXCEL データをプロジェクトにインポートします
IMPORT EXCEL TO pay_scales "pay_scales.fil" FROM "Pay_scales.xlsx" TABLE "Payscales$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

FILE タグをヘッダーに追加し、入力ファイル Pay_scales.xlsx を指定する必要があります。

COMMENT
//ANALYTIC TopWageGap
EXCEL ファイルをインポートし、賃金差異に基づいて上位の N レコードを抽出します
//FILE Pay_scales.xlsx
END

アナリティクス スクリプトが実行されるときに、AX Engine は、AX Server の関連ファイル サブフォルダーの入力ファイルを検索します。詳細については、FILEを参照してください。

ユーザー操作の削除

アナリティクス スクリプトはサーバーで実行され、ユーザー操作はないため、実行中にユーザー入力を確認するコマンドを削除する必要があります。スクリプトを AX Server にインポートする前に、共通の Analytics スクリプト シナリオを確認する:

  • インタラクティブ コマンドはダイアログ ボックスに入力されるユーザー入力を許可し、次のコマンドを入力パラメーターで置換します。 PAUSEACCEPTDIALOGPASSWORD
  • ファイルの上書きは確認せずにファイルを上書きし、スクリプトの先頭に SET SAFETY OFF を追加します。これはスクリプトの最後の SET SAFETY ON でリセットできます。
  • 確認ダイアログDELETE または RENAME コマンドの後に確認ダイアログを表示せず、OK パラメーターを使用します。 DELETE table.fmt OK

この場合は、ACCEPT コマンドを削除し、アナリティクス スクリプトがスケジュールされているか実行されているときに、AX Client で設定されるパラメーターで置換します。

COMMENT インポートされたテーブルを開き、最大および最低時間給の差異で並べ替える
OPEN pay_scales
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "pay_scales_sorted" OPEN

COMMENT 差異に基づいて上位 N レコードを抽出
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_top% TO "top_difference" OPEN

PARAM を使用してパラメーターをアナリティクス ヘッダーに追加し、AX Client から v_top の値を設定できるようにする必要があります。

COMMENT
//ANALYTIC TopWageGap
EXCEL ファイルをインポートし、賃金差異に基づいて上位の N レコードを抽出します
//FILE Pay_scales.xlsx
//PARAM v_top N v_top
抽出するレコード数
END

AX Client からアナリティクス スクリプトを実行またはスケジュールするときには、アナリティクス スクリプトに %v_top% が表示されるときに AX Engine が使用する数値を入力するように求められます。詳細については、PARAM を参照してください。

アナリティクス スクリプトの結果の保存

アナリティクス タグを使用してアナリティクス入力を定義するように、アナリティクス タグ宣言を使用して、AX Server の結果サブフォルダーに保存される出力テーブルとファイルを定義します。アナリティクス ヘッダーの RESULT タブを指定された項目のみが保持されます。他のテーブル、ファイル、またはログはアナリティクス ジョブが完了した後に破棄されます。

COMMENT
//ANALYTIC TopWageGap
EXCEL ファイルをインポートし、賃金差異に基づいて上位の N レコードを抽出します
//FILE Pay_scales.xlsx
//RESULT LOG
//RESULT TABLE top_difference
//PARAM v_top N v_top
抽出するレコード数
END

ログおよび top_difference テーブルは結果として保存され、AX Server でアナリティクス スクリプトを実行したあとに AX Web Client で使用できます。詳細については、RESULT を参照してください。

このアナリティクス スクリプトの全容

アナリティクス スクリプト全体と関連する MS Excel ファイルを AX Server のフォルダーにインポートできます。アナリティクス スクリプトが実行されるときには、抽出するレコード数を指定します。テーブルとログ ファイルは、AX Web Client から使用できる結果として保持されます。

COMMENT
//ANALYTIC TopWageGap
EXCEL ファイルをインポートし、賃金差異に基づいて上位の N レコードを抽出します
//FILE Pay_scales.xlsx
//RESULT LOG
//RESULT TABLE top_difference
//PARAM v_top N v_top
抽出するレコード数
END

SET SAFETY OFF

EXCEL データをプロジェクトにインポートします
IMPORT EXCEL TO pay_scales "pay_scales.fil" FROM "Pay_scales.xlsx" TABLE "Payscales$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

COMMENT インポートされたテーブルを開き、最大および最低時間給の差異で並べ替える
OPEN pay_scales
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "pay_scales_sorted" OPEN

COMMENT 差異に基づいて上位 N レコードを抽出
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_top% TO "top_difference" OPEN

SET SAFETY ON