AX Server での Python スクリプトの実行
ACL GRC Analytics Exchange 管理者に外部 Python スクリプトを AX Server の PYTHONPATH ディレクトリにアップロードするように依頼し、次に作成したアナリティクス内からこれらのスクリプトを呼び出して、サーバーで Python プログラミング言語のオブジェクト指向機能を利用します。 Python スクリプトを実行できるように AX Server 環境を準備するには、まず Python をインストールし、次に PYTHONPATH 環境変数を設定します。
前提条件
AX Server で Python スクリプトを実行するには、以下の手順を行う必要があります。
- お使いの AX Server のコンピューターに、サポートされているバージョンの Python スクリプト言語をインストールします。
- AX Server で PYTHONPATH 環境変数を設定します。
- ACL Analytics で、作業して AX Server にインポートするプロジェクトを作成します。
メモ
これらの前提作業を行う助けとして、ACL GRC Analytics Exchange 管理者に問い合わせたり以下を参照したりしてください。
Python スクリプトの作成
ACL Analytics で ACL プロジェクトを作成したら、アナリティクス内から呼び出すことのできる Python スクリプトを作成します。
次に、アナリティクス内からこのスクリプトを呼び出す前に、ACL GRC Analytics Exchange 管理者にこのスクリプト ファイルを渡して、AX Server をホストするマシンの PYTHONPATH ディレクトリにアップロードしてもらいます。 AX Server でアナリティクスを実行する際、Python の実行可能ファイルが PYTHONPATH ディレクトリ内でスクリプトを探すため、 スクリプトがそこに存在している必要があります。
Python ファイルの例
次の Python ファイルの例には、数値をその数値のべき乗する lambda 式を使用した小さなスクリプトが含まれています。 この例は、Python でデータを分析する方法ではなく、AX Server で Python スクリプトを実行する方法を示すことが目的です。
ファイル名:lambda_example.py
# myFunc は value1 を平方して、その平方した値を返します myFunc = lambda value1: value1**2
ACL スクリプトの作成
ACL プロジェクト内で、AX Server で実行するアナリティクスとして使用する新しいスクリプトを作成します。 このスクリプトで以下のことを行います。
- 1 つのレコードから成るシンプルなテーブル、py を開きます。
ACL では GROUP コマンドを実行するためにテーブルを開く必要がありますが、この py テーブルはその目的のためにのみ使用されます。
- 10 回ループします。各ループでは、インクリメント カウンターを引数として渡し、Python スクリプトを実行して、出力を結果テーブルに抽出します。
アナリティクス ヘッダーの追加
分析アプリをインポート後、AX Server で ACL スクリプトを実行できるように、スクリプトの先頭に必要なアナリティクス ヘッダー タグを追加します。
COMMENT //ANALYTIC Python統合テスト AX Server での Python統合を検証 //DATA py //DATA results //RESULT TABLE results END
スクリプト ロジックの追加
SET SAFETY OFF DEL ALL OK CLOSE OPEN py GROUP ASSIGN v_max = 11 ASSIGN v_counter = 1 LOOP WHILE v_counter < v_max EXTRACT PYNUMERIC("lambda_example,myFunc",0,v_counter) AS "Results value" TO "results.fil" v_counter = v_counter + 1 END END CLOSE py
このアナリティクス スクリプトの全容
AX Server で実行するこのアナリティクスの全容は次のとおりです。
COMMENT //ANALYTIC Python統合テスト AX Server での Python統合を検証 //DATA py //DATA results //RESULT TABLE results END SET SAFETY OFF DEL ALL OK CLOSE OPEN py GROUP ASSIGN v_max = 11 ASSIGN v_counter = 1 LOOP WHILE v_counter < v_max EXTRACT PYNUMERIC("lambda_example,myFunc",0,v_counter) AS "Results value" TO "results.fil" v_counter = v_counter + 1 END END CLOSE py
ACL プロジェクトのインポート
アナリティクス スクリプトを作成したら、以下の手順を実行します。
- AX Client で、ACL プロジェクトを格納するコレクションおよびフォルダーを作成します。
- プロジェクトをインポートするには
- 作成したフォルダーを右クリックし、[インポート]を選択します。
- ローカル コンピューター上の ACL プロジェクトに移動し、.acl プロジェクト ファイルを選択して[開く]をクリックします。
メモ
ACL プロジェクトとともに py テーブルをインポートするには、ソース データ ファイルをインポートしておく必要があります。
インポート後の Server Explorer の外観
- コレクション名
- フォルダー名
- 分析アプリ
- ACL プロジェクト名
- アナリティクス スクリプト名
- ACL プロジェクト名
- データ
- py
- 関連ファイル
- 分析アプリ
- フォルダー名
アナリティクスの実行
AX Client の Server Explorer 内でアナリティクスを右クリックして、[実行]をクリックします。 アナリティクスの一部として Python スクリプトが実行されるので、AX Web Client から results 結果テーブルにアクセスできるようになります。
メモ
スクリプトを実行する際、Python の実行可能ファイルは AX Server をホストするマシンの PYTHONPATH ディレクトリ内でスクリプト ファイルを探します。 ACL GRC Analytics Exchange 管理者がこのファイルを当該ディレクトリにアップロードしていない場合には、アナリティクスは失敗します。
結果
アナリティクスを実行後の Server Explorer の外観
- コレクション名
- フォルダー名
- 分析アプリ
- ACL プロジェクト名
- アナリティクス スクリプト名
- ACL プロジェクト名
- データ
- py
- 結果
- 関連ファイル
- 分析アプリ
- フォルダー名
結果テーブル
- 結果値
- 1
- 4
- 9
- 16
- 25
- 36
- 49
- 64
- 81
- 100