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 でアナリティクス スクリプトを実行するとき:
- 新しい一時フォルダーがジョブのサーバーで作成されます。
- アナリティクス スクリプトと関連付けられたテーブルは一時フォルダーで新しい Analytics プロジェクトにエクスポートされます。
- サーバーの AX Engine は Analytics プロジェクト開き、新しいコマンド ログを作成し、アナリティクス スクリプトを実行します。
- アナリティクス ヘッダーが指定するすべてのファイル、テーブル、またはログは、特定のジョブ実行に関連付けられた結果フォルダーに保持されます。
- 一時フォルダーとファイルはサーバーから削除されます。
ヒント
AX Engine は一時フォルダーでアナリティクス スクリプトを実行するため、相対パスを使用して、サーバーのフォルダーとファイルを参照します。
- Analytics のスクリプトC:\ACL Data\MyProject\output\results
- Analytics Exchange のスクリプトoutput\results
スクリプトのアナリティクス スクリプトへの変換
アナリティクス ヘッダーを追加し、AX Server で実行しない Analytics 機能を削除すると、標準のスクリプトをアナリティクス スクリプトに変換します。
次の Analytics スクリプトは ACL Analytics で実行され、次の処理を行います。
- IMPORT コマンドを使用して、ACL_Rockwood サンプル データの Pay_scales.xlsx ファイルのデータをインポートします。
- SORT コマンドを使用して、式でデータを並べ替えます。
- ACCEPT コマンドを使用して抽出する多数のレコードについてユーザーを確認します。
- 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 スクリプト シナリオを確認する:
- インタラクティブ コマンドはダイアログ ボックスに入力されるユーザー入力を許可し、次のコマンドを入力パラメーターで置換します。 PAUSE、ACCEPT、DIALOG、PASSWORD
- ファイルの上書きは確認せずにファイルを上書きし、スクリプトの先頭に 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