publish() メソッド
Pandas または HCL データフレームをアクティビティ センター データセットに保存します。
構文
hcl.publish(データフレーム名, table_name = AC データセット名, column_names = {"列名":"データセット表示名", "...n":"...n"}|ディクショナリ オブジェクト, append = True|False)
AC = アクティビティ センター
パラメーター
| 名前 | 説明 |
|---|---|
| dataframe_name | アクティビティ センターに保存する Pandas または HCL データフレームの名前。 データフレーム内のすべての列が保存されます。選択した列のみを保存する場合は、publish() を使用する前に、まず適切に構成されたデータフレームを作成します。 |
| table_name = AC データセット名 | アクティビティ センター データセットの名前。 |
| column_names = {"column_name" : "dataset_display_name", "...n" : "...n"} 任意 | データフレーム内の列名と、アクティビティ センターのデータセットの対応するフィールドの表示名とのマッピング。 標準 Python ディクショナリを使用して、1 つ以上の列のマッピングを作成します。 表示名を指定するのは、宛先のアクティビティ センターのデータセットのフィールドのみです。アクティビティ センターのデータセットの基本のフィールド名は変更されません。 列のサブセットのみの表示名を指定するように選択できます。表示名が指定されていない列は、アクティビティ センター内のデータフレーム列名を使用します。 column_names パラメーターは、保存する列を選択しません。デフォルトでは、publish() メソッドは、データフレーム内のすべての列をアクティビティ センターに保存します。 |
| column_names = ディクショナリ オブジェクト 任意 | データフレーム内の 1 つ以上の列名を、アクティビティ センターのデータセット内の対応するフィールドの表示名にマッピングする、既存のディクショナリオブジェクト。 publish() 内で列マッピングを作成する代わりに、別のディクショナリでマッピングを作成し、publish() 内でのみディクショナリ名を指定できます。アクティビティ センターの複数の宛先データセットに対して同じ表示名のセットを作成する必要がある場合は、この方法がより効率的です。 publish() 内でディクショナリを作成するときに適用されるガイドラインは、別のディクショナリを作成するときにも適用されます。 |
| append = True | False |
このパラメーターを省略した場合、デフォルトでは、保存されたデータは既存のデータを上書きします。 |
戻り値
成功した場合、戻りコードは 204 です。失敗した場合、エラー メッセージ発生します。
リターン コード 204 は、ロボットがデータをアクティビティ センターに正常に送信したことを意味します。ロボットから送信されたデータをアクティビティ センターのデータセットとして利用できるようになるには、その後のアクティビティ センターでのデータ処理も成功する必要があります。
例
アクティビティ センター データセットへのデータフレームの保存
customer_summary データフレームを Customer というアクティビティ センター データセットに保存します。Customer データセットがアクティビティ センターにすでに存在する場合、既存のレコードは上書きされます。
hcl.publish(customer_summary, table_name = "Customer")
備考
名前が重複するアクティビティー センター データセットの回避
publish() メソッドとアクティビティー センターでは、同一または重複した名前のデータセットの発効を妨げていません。同一の名前のデータセットが存在すると、アクティビティー センターで混乱を招く状況が生じます。
アクティビティー センターで同一の名前のデータセットが作成される状況には次の 2 つがあります。
同一の名前のデータセットを指定した publish() メソッドが、2 つの異なるロボットで実行された場合
同一の名前のデータセットを指定した publish() メソッドが、同一ロボット内で開発モードと本番モードの両方で実行された場合
データセット名の重複を回避する方法は、次のとおりです。
一意の名前を指定table_name パラメーターでデータセット名を指定する前に、アクティビティー センターに存在する既存のデータセット名を確認します。必ず一意のデータセット名を指定します。
開発用と本番用で異なるデータセット名を使用開発モードでは、開発用のデータセット名を table_name パラメーターに使用します。スクリプトのバージョンを本番モードで有効化する前に、table_name パラメーターを本番用のデータセット名に更新します。
たとえば、table_name="Customer_dev" を table_name="Customer" に更新します。
メモ
設計上、開発モードと本番モードでは、ロボット内に保存されるデータは分離されます。この分離により、開発モードでのいかなるアクションやスクリプトによっても、本番データが誤って変更または削除されることが防止されます。この設計により、この 2 つのモードで同一の名前が付けられたテーブル、データフレーム、データセットであっても、それぞれ完全に独立したオブジェクトとして扱われ、相互に関連付けはありません。
詳細については、「ロボットの開発モードと本番モード」を参照してください。
列名と表示名は一意である必要があります
ロボットからアクティビティ センターにデータを正常に公開するには、データフレームの列名が一意である必要があります。データフレーム内の列名が重複すると、publish() メソッドが失敗し、エラーメッセージが表示されます。
アクティビティ センター データセットのフィールドに表示名を指定する場合、それぞれの表示名も一意である必要があります。データセット内で表示名が重複しても publish() メソッドは失敗せず、メソッドを含むスクリプトは完了まで実行されます。ただし、後続のデータ処理は失敗し、アクティビティ センターへの公開は成功しません。
公開機能のスコープ
ロボットから作成されたアクティビティ センター データセットの書き込みアクセス許可は、ロボットベースです。データセットを更新するには、データセットを最初に作成したのと同じロボットを使用する必要があります。publish() メソッドは、データセットを更新するときにロボットの境界を越えることをサポートしていません。
公開日時の自動追加
publish() メソッドは、アクティビティ センターに送信されるデータに公開日時を自動的に含めます。アクティビティ センターの分析およびダッシュボードにデータをテーブルとして追加する場合は、[公開日時]フィールドを含めると、テーブル内の各レコードの最新の公開日時が動的に更新されます。
このタイムスタンプ情報は、ロボットからのスケジュールされた公開が、予定された日時に実行されたことを確認するのに役立ちます。データセットにレコードを追加すると、タイムスタンプ情報には各レコードがいつ追加されたかも表示され、タイムスタンプで並べ替えることができます。