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

Analytics Exchange 管理者に外部 Python スクリプトを AX Server の PYTHONPATH ディレクトリにアップロードするように依頼し、次に作成したアナリティクス内からこれらのスクリプトを呼び出して、サーバーで Python プログラミング言語のオブジェクト指向機能を利用します。 Python スクリプトを実行できるように AX Server 環境を準備するには、まず Python をインストールし、次に PYTHONPATH 環境変数を設定します。

前提条件

AX Server で Python スクリプトを実行するには、以下の手順を行う必要があります。

  1. お使いの AX Server のコンピューターに、サポートされているバージョンの Python スクリプト言語をインストールします。
  2. AX Server で PYTHONPATH 環境変数を設定します。
  3. ACL Analytics で、作業して AX Server にインポートするプロジェクトを作成します。

メモ

これらの前提作業を行う助けとして、Analytics Exchange 管理者に問い合わせたり以下を参照したりしてください。

Python スクリプトの作成

ACL Analytics で ACL プロジェクトを作成したら、アナリティクス内から呼び出すことのできる Python スクリプトを作成します。

次に、アナリティクス内からこのスクリプトを呼び出す前に、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. 1 つのレコードから成るシンプルなテーブル、py を開きます。

    ACL では GROUP コマンドを実行するためにテーブルを開く必要がありますが、この py テーブルはその目的のためにのみ使用されます。

  2. 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 プロジェクトのインポート

アナリティクス スクリプトを作成したら、以下の手順を実行します。

  1. AX Client で、ACL プロジェクトを格納するコレクションおよびフォルダーを作成します。
  2. プロジェクトをインポートするには
    1. 作成したフォルダーを右クリックし、[インポート]を選択します。
    2. ローカル コンピューター上の ACL プロジェクトに移動し、.acl プロジェクト ファイルを選択して[開く]をクリックします。

      メモ

      ACL プロジェクトとともに py テーブルをインポートするには、ソース データ ファイルをインポートしておく必要があります。

インポート後の Server Explorer の外観

  • コレクション名
    • フォルダー名
      • 分析アプリ
        • ACL プロジェクト名
          • アナリティクス スクリプト名
      • データ
        • py
      • 関連ファイル

アナリティクスの実行

AX Client の Server Explorer 内でアナリティクスを右クリックして、[実行]をクリックします。 アナリティクスの一部として Python スクリプトが実行されるので、AX Web Client から results 結果テーブルにアクセスできるようになります。

メモ

スクリプトを実行する際、Python の実行可能ファイルは AX Server をホストするマシンの PYTHONPATH ディレクトリ内でスクリプト ファイルを探します。 Analytics Exchange 管理者がこのファイルを当該ディレクトリにアップロードしていない場合には、アナリティクスは失敗します。

結果

アナリティクスを実行後の Server Explorer の外観

  • コレクション名
    • フォルダー名
      • 分析アプリ
        • ACL プロジェクト名
          • アナリティクス スクリプト名
      • データ
        • py
        • 結果
      • 関連ファイル

結果テーブル

  • 結果値
  • 1
  • 4
  • 9
  • 16
  • 25
  • 36
  • 49
  • 64
  • 81
  • 100