UiPath Documentation
process-mining
2021.10
true

Process Mining ユーザー ガイド

最終更新日時 2026年5月5日

例: Python スクリプトを作成する

はじめに

この例では、 UiPath Process Mining プラットフォームを外部 Python スクリプトとインターフェイスさせて、外部データ処理を実装する方法について説明します。

注:

このセクションの例は、Python バージョン 3 に基づいています。

概要

Python スクリプトが作成されます。次のスクリプトがあります。

  • .CSV ファイルを入力として取ります。コマンド ラインで必要な唯一の引数として指定します。
  • [金額] の値に 2 を掛け、
  • その標準出力チャネルに結果を書き込みます。

手順

  1. サーバーの設定を設定する
  2. ワークスペースを設定する
  3. スクリプト のデータ ソースを設定する
  4. データ ソースを設定する
  5. スクリプトを記述する。

サーバー設定を設定する

汎用スクリプトのデータソースには、実行するすべての外部プロセスのハンドラーが必要です。

汎用スクリプト ハンドラーを追加するには、以下の手順に従います。

手順操作
1[Superadmin Settings] タブに移動します。
2値として Python 実行可能ファイルへのパスを持つ 1 つのキー "py" を持つオブジェクトを値としてフィールド GenericScriptHandlers を追加します。例: "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }
3[保存] をクリックします。

ワークスペースを設定する

まず、まだデータ処理を行わない最小限のスクリプトを作成します。このスクリプトを使用して、Python の設定が機能していることを確認すること、およびスクリプトが UiPath Process Mining プラットフォームから呼び出されていることを確認します。

このスクリプト例は、スクリプト実行ログに表示される出力を生成する方法と、スクリプトの終了コードが UiPath Process Mining プラットフォームの動作に与える影響を示しています。

手順

操作

1

お気に入りのエディターで、空白のテキスト ファイルを開始します。

2

次のテキストを入力します。

#!/usr/bin/python import sys def debug(message): sys.stderr.write(message)debug("Hello world!") exit(1)

注: debug(“Hello world!”) コマンドは、標準エラー・チャネルを使用してメッセージを出力し、出力をデバッグする方法の例です。

3

テキスト ファイルを script.py として保存します。

4

script.py ファイルをワークスペースにアップロードします。

このスクリプトは "Hello world!" メッセージのみを出力します。このスクリプトのインターフェイスは、スクリプトから UiPath Process Mining プラットフォームへのデータ通信に 標準出力 を使用します。スクリプトにステータスメッセージを含める場合は、代わりに standard error に書き込む必要があります。

注:

このスクリプト例は、ステータス コード 1 で終了します。0 以外のステータス コードは、 UiPath Process Mining プラットフォームではエラー状態として解釈されます。

スクリプト データ ソースを設定する

次に、スクリプトを呼び出すデータソーステーブルをアプリ内に設定します。 スクリプトでまだデータが処理されないため、いくつかのダミー データから始めます。 この段階で、スクリプトが期待どおりに実行されることを検証します。つまり、「Hello world! (こんにちは、ワールド)」というメッセージが表示されます。

手順

操作

1

開発環境でアプリを開きます。

2

[ データ ] タブに移動し、新しい接続文字列テーブルを作成します。

3

New_tableの名前を PythonExample に変更します。

4

PythonExample テーブルを右クリックし、[詳細] > オプションを選択します。

5

[ 表のオプション ] ダイアログで、[ 表のスコープ ] を [ワークスペース ] に設定します。

6

PythonExample テーブルをダブルクリックして、[接続文字列テーブルを編集] ウィンドウを開きます。

7

[接続文字列] として以下を入力します。

``'driver={mvscript

8

クエリとして以下を入力します。

``''

  • '&scriptFile=' + urlencode("script.py")
  • '&inputData=' + urlencode("a;b;c"+#10+"1;2;3"+#10+"4;5;6"+#10)``

inputData の例の "#10" は、改行文字を指定します。 すなわち。 UiPath では、以下のダミーの CSV データを定義します。

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

[OK] をクリックします。

10

[YES] をクリックします。

テーブルの更新が失敗し、エラー ログに「Hello World!」というメッセージが表示されます。

スクリプト ファイルの場所は、テーブルの範囲によって決まります。これは、[サーバー] または [ワークスペース] または [なし] のいずれかに設定できます。[なし] に設定すると、スクリプト ファイルへの絶対パスが絶対パスになります。サーバーまたはワークスペースに設定されている場合、スクリプトの場所は相対パスとして解釈されます。

重要:

外部 Python スクリプトを使用してインターフェイスを設定するための残りの手順を正常に完了できるようにするには、"Hello World!" の例を動作させる必要があります。

データ ソースを設定する

外部スクリプトで処理するデータをエクスポートするには、まず Python スクリプトで必要なフィールドを選択します。 これを行うには、Python スクリプトに必要なすべてのフィールドを含むテーブルを新しく作成します。 この表は後 .CSV 形式でエクスポートされ、Python スクリプトで読み込むことができます。

この例では、Cases テーブルと Events テーブルを持つ アプリケーションがあります。以下の画像でご確認ください。

ドキュメントの画像

次の手順を実行します。

手順操作
1新しい グローバル テーブル PythonInputDataを作成します。
2新しい式属性を追加 PythonInputData_Amount
3[種類] を [参照] に設定します。
4[入力テーブル] を「Cases_base」に設定します。
5式を listtojson(text(double(records.Amount)))に設定します。
6式レベルを root に設定します。
7[OK] をクリックします。
8このCase_IDに、別のルックアップ式属性を追加します。式を listtojson(text(double(records.Case_ID)))に設定します。
注:

検索式属性の形式は、文字列のリストである必要があります。これは、 csvtable() 関数を使用してデータを .CSV 形式に変換し、(テキスト) レコードのリストを予期するためです。listtojson() 関数では、入力がテキスト型である必要があるため、生成される CSV ファイル内のレコードの形式は、選択した属性の種類 (この場合は AmountCurrency 型) と、現在アクティブな表示形式によって異なります。ここでは、後で Python スクリプトでレコードを解析しやすくするために、currency 型が double に変換されています。

スクリプトを記述する

テキスト エディターで script.py ファイルを次のコードで更新します。

#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)
#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)

以下の手順を実行します。

手順操作
1既存のファイルを上書きして新しいスクリプトを ワークスペースにアップロードし、アプリケーションに戻ります。
2PythonExample表を右クリックして、[編集...] を選択します。
3PythonExample テーブルのクエリ文字列の inputData パラメーターを次のように変更します。+ '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), )) 以下の画像でご確認ください。
4[OK] をクリックします。
5[はい] (2x) をクリックします。
6[OK] をクリックします。

ドキュメントの画像

PythonExample テーブルに、AmountCase_ID の 2 つのデータソース属性が追加されました。以下の画像でご確認ください。

ドキュメントの画像

Amount 属性を調べると、すべての金額に 2 が乗算されていることがわかります。Python スクリプトによって生成される出力の例は、以下の画像でご確認ください。

ドキュメントの画像

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得