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