WorkdayワーカーをPythonでCSVにエクスポートし、Google Driveにアップロードするレシピ
このユースケースでは、Workday、Pythonスニペット by Workato、Google Driveを接続して、強力なオートメーションを作成する手順を説明します。
このレシピの機能
このレシピは、Workdayでワーカーを毎日検索し、Pythonを使用して出力データをJSONからCSV形式に変換して、生成されたCSVファイルをGoogle Driveにアップロードします。
レシピの作成
Workdayでワーカーを検索し、Pythonを使用して出力JSONデータをCSV形式に変換して、CSVファイルをGoogle Driveにアップロードするレシピを作成するには、次の手順を完了します:
ユースケースは例示のみを目的としています
このユースケースは一例です。 このレシピをワークフローに合わせて適応させるには、トリガー、アクション、または条件ロジックの変更が必要になる場合があります。
Workatoにサインインします。
レシピを作成する予定のプロジェクトを選択します。
WorkdayとGoogle Driveのコネクションを作成します:
Workatoユーティリティコネクターにはセットアップが不要です
Pythonスニペット by Workatoコネクターでは、コネクションのセットアップは不要です。
Workdayコネクションの作成。
Workdayコネクションの作成
このステップでは、WorkatoとWorkdayアカウント間のコネクションを作成します。
Workdayに接続する前に
Workatoなどのサードパーティサービスを使用してWorkdayと連携する前に、統合システムユーザー(ISU)を使用することをお勧めします。 ISUを使用すると、すべての連携操作が通常のワークフロープロセスとは別の指定ユーザーの下でログに記録されます。 通常のワーカーのセキュリティプロファイルの変更や退職により、そのアカウントに依存する連携が中断される可能性があるため、これは不可欠です。 セキュリティを強化するため、各ISUはWorkatoなどの単一の連携システムに限定してください。
さらに、連携でWorkdayのカスタムオブジェクトを使用する場合は、Workday APIクライアントを登録する必要があります。 このステップは、Workday REST APIでOAuthクライアント設定による認証が必要なため、必須です。
認証要件
Workdayコネクターは、OAuth 2.0と基本認証の両方の方法をサポートしています。 ただし、Workday REST APIおよびカスタムオブジェクトを使用するには、OAuth 2.0認証が必要です。 非推奨のHybrid認証方式は使用しないことをお勧めします。
OAuth 2.0認証を使用したコネクション設定
OAuth 2.0認証を使用してWorkatoでWorkdayコネクションを設定するには、次の手順を完了します:
WorkatoでWorkdayアカウントを識別するために、一意のConnection nameを入力します。
コネクションにラベルを付ける
Authentication typeとしてOAuth 2.0を選択します。 この方法は、カスタムオブジェクトの使用、およびWorkday REST APIでWorkday Query Language(WQL)を使用してデータをクエリする場合に必要です。
Workdayテナントに適したWorkday Webサービスのバージョンを選択します。 最新の機能および更新にアクセスするため、利用可能な最新バージョンを選択することをお勧めします。
WorkdayにログインしているときのURLからTenant IDを特定して入力します。 たとえば、https://impl.workday.com/sample_company/d/home.htmldでは、テナントIDはsample_companyです。
Workdayサービスに関連付けられたWSDL URLを指定します。
APIクライアント設定のClient IDとClient Secretを入力します。
任意です。 連携用のAPIクライアントを使用している場合は、Refresh tokenを入力します。
OAuthフローを完了するには、APIクライアント設定のAuthorization endpointとToken endpointを入力します。
Workdayテナントの設定と一致するWorkday tenant timezoneを選択します。 デフォルトでは、Workdayは太平洋標準時(PST)を使用します。
任意です。 Advanced settingsをクリックして、Advanced XML payload for multiple ID valuesフィールドを設定します。
デフォルトでは、Workatoは入力からXMLを構築する際に、複数の値を持つフィールド内の各値を個別のコンテナ内にラップします。
例:
<languages><language>english</language></languages><languages><language>chinese</language></languages>Workatoが値のラップを解除し、単一のコンテナ内に値を表示できるようにするには、値をYesに設定します。
<languages><language>english</language><language>chinese</language></languages>無効なペイロードエラーが発生する場合は、このフィールドをYesに設定することを検討してください。
入力した情報を確認し、正しいことを確認します。
接続をクリックして認証プロセスを開始し、コネクションのセットアップを完了します。
基本認証を使用したコネクション設定
基本認証を使用してWorkatoでWorkdayコネクションを設定するには、次の手順を完了します:
WorkatoでWorkdayアカウントを識別するために、一意のConnection nameを入力します。
コネクションにラベルを付ける
認証タイプとしてBasicを選択します。 この方法では、連携にWorkdayのユーザー名とパスワードを使用します。
Workdayテナントに適したWorkday Webサービスのバージョンを選択します。 最新の機能および更新にアクセスするため、利用可能な最新バージョンを選択することをお勧めします。
WorkdayにログインしているときのURLからTenant IDを特定して入力します。 たとえば、URLがhttps://impl.workday.com/sample_company/d/home.htmldの場合、テナントIDはsample_companyです。
Workdayサービスに関連付けられたWSDL URLを指定します。
WorkdayのLogin nameとPasswordを入力します。
Workdayテナントの設定に一致するWorkdayテナントのタイムゾーンを選択します。 デフォルトでは、Workdayは太平洋標準時(PST)を使用します。
Advanced settingsをクリックして、Advanced XML payload for multiple ID valuesフィールドを設定します。 デフォルトでは、複数の値を持つフィールドはコンテナ内にラップされます。 値のラップを解除するには、このオプションをyesに設定します。
入力した情報を確認し、正しいことを確認します。
接続をクリックして認証プロセスを開始し、コネクションのセットアップを完了します。
Google Driveコネクションを作成する。
Google Driveコネクションの作成
この手順では、WorkatoとGoogle Driveアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでGoogle Driveを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
Google Drive
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
認証タイプドロップダウンメニューを使用して、認証方法を選択します。 オプションにはOAuth 2.0およびサービスアカウントがあります。
任意です。 詳細設定を展開して、コネクションに対してリクエストする権限を選択します。 デフォルトでは、Workatoは次の権限をリクエストします。
- Google Driveファイルすべての表示、編集、作成、削除
任意です。 Custom OAuth profileドロップダウンメニューを使用して、このコネクションで使用する予定のCustom OAuth profileを選択します。
Googleでサインインをクリックします。
Workatoへの接続に使用する予定のアカウントを選択します。
リクエストされた権限を確認し、許可をクリックします。
プロジェクトに戻り、Create > Recipeをクリックするか、C+Rを押します。
新しいレシピを作成
Nameフィールドにレシピの名前を入力します。
Locationドロップダウンメニューから、レシピを保存する予定のプロジェクトを選択します。
ビルドを開始をクリックします。
レシピの構築を開始
Pick a starting pointをクリックし、Run on a scheduleを選択します。 これにより、スケジューラー by WorkatoのNew recurring eventトリガーを使用する新しいレシピが作成されます。 このトリガーにはコネクションは不要です。
スケジューラー by Workato New recurring eventトリガーを設定します。
スケジューラー by Workato New recurring eventトリガーの設定
このトリガーは、レシピを実行する頻度の間隔を設定します。 スケジューラー by Workatoトリガーでは、コネクションのセットアップは不要です。
レシピエディターでトリガーをクリックします。
トリガーをクリック
時間単位ドロップダウンメニューを使用して、日を選択します。
- 使用可能なオプションには、Minutes、Hours、Days、Weeks、Months、またはCustom scheduleがあります。
レシピを毎日実行するには、トリガー間隔フィールドに1を入力します。
レシピを実行する時刻をトリガー時刻フィールドに指定します。 たとえば、12:00 AMと入力します。
任意です。 Timezoneフィールドでタイムゾーンを選択します。 空白のままにした場合、デフォルトはAmerica/Los_Angelesです。
任意です。 開始日時フィールドに開始日時を設定するか、空白のままにして、レシピを開始した直後にトリガーを有効にします。 レシピを実行またはテストした後は、この値を変更できません。
トリガーを設定
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
Add step > Add action in appをクリック
WorkdayのSearch business object(batch)アクションを設定します。
Workday Search business object batchアクションを設定
このステップでは、Workday内のワーカーをバッチで検索します。
Workdayを検索し、アプリとして選択します。
Workdayを選択
ビジネスオブジェクトを検索(バッチ)アクションを選択します。
Search business objectアクションを選択
前の手順で作成したWorkdayコネクションを選択します。
ビジネスオブジェクトドロップダウンメニューを使用して、ワーカーを選択します。
Workdayでワーカーを検索
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
Pythonスニペット by WorkatoのExecute codeアクションを設定します。
Pythonスニペット by WorkatoのExecute codeアクションの設定
このステップでは、JSON形式のWorkday内のワーカーを検索するステップの出力を取得し、Pythonを使用して出力をCSV形式に変換します。
アプリとしてPython snippets by Workatoを検索して選択します。 このコネクターで使用できる唯一のアクションであるため、コードを実行アクションが自動的に選択されます。
Pythonを選択
このステップの処理内容を指定するには、名前フィールドにConvert JSON to CSVと入力します。 これにより、レシピエディターのアクションタイトルが更新されます。
ステップの目的を指定
入力フィールドに移動し、フィールドを追加をクリックして、新規フィールドを追加ダイアログを開きます。
入力フィールドを追加
ラベルフィールドにJSONと入力します。
フィールドを追加をクリックします。
JSONフィールドをFormulaモードに切り替え、WorkdayのDataStep 2リストデータピルをマッピングします。 このリストデータピルをマッピングするには、フィールドがFormulaモードになっている必要があります。
出力フィールドに移動し、フィールドを追加をクリックして、新規フィールドを追加ダイアログを開きます。
ラベルフィールドにcsvと入力します。
フィールドを追加をクリックします。 これにより、csvフィールドが出力スキーマに追加されます:
CSV出力フィールドを追加
コードフィールドのコンテンツをクリアします。
次のPythonコードをコピーしてコードフィールドに貼り付けます:
# Import required libraries
import pandas as pd
import base64
import io
def main(input):
# Normalize the JSON data to flatten nested structures into a flat table format
normalized_json = pd.json_normalize(input['JSON'])
# Remove the 'Worker_' prefix from all column names for cleaner headers
normalized_json.columns = normalized_json.columns.str.replace('Worker_', '')
# Drop any columns that contain 'Compensation_' in their name to exclude compensation data
normalized_json = normalized_json[normalized_json.columns.drop(list(normalized_json.filter(regex='Compensation_')))]
# Convert the modified DataFrame to CSV format as a string without the index column
csv = normalized_json.to_csv(path_or_buf=None, index=False)
# Return the CSV data as a dictionary output
return { 'csv': csv }このコードはJSON入力を受け取り、フラットなテーブル形式に正規化し、列名からWorker_を削除し、Compensation_を含む列を除外して、結果のデータをCSV形式に変換します。 その後、コードはCSVコンテンツを文字列として返します。
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
Google DriveのUpload fileアクションを設定します。
Google Drive Upload fileアクションを設定
このステップでは、前のステップのCSV出力を、Google Driveで指定したフォルダにアップロードします。
Google Driveを検索し、アプリとして選択します。
Google Driveを選択
ファイルをアップロードアクションを選択します。
Upload fileアクションを選択
Pythonスニペット by WorkatoのCsvStep 3データピルをファイルコンテンツフィールドにマッピングします。
CsvStep 3データピルをマッピング
ファイル名フィールドをFormulaモードに切り替え、次の内容を入力します:
"Workday-flattened-#{today}.csv"このFormulaにより、CSVファイルの名前が次の形式で作成されます:Workday-flattened-YYYY-MM-DD。
ファイル名を設定
親フォルダドロップダウンメニューを使用して、このファイルをアップロードするフォルダを選択します。 この例では、親フォルダとしてWorkday-workers-flattenedという名前のフォルダを選択します。
オプションフィールドを表示をクリックし、アップロードファイルのMIMEタイプを選択します。
変更を適用をクリックして、このフィールドを表示します。
アップロードファイルのMIMEタイプフィールドにtext/csvと入力します。
ファイルタイプを指定
保存をクリックします。
WorkdayワーカーをPythonでCSVにエクスポートし、Google Driveにアップロードレシピは、テストと実装の準備ができています。
レシピ設定の例。
PythonでWorkdayワーカーをCSVにエクスポートしてGoogle Driveにアップロードレシピ
Last updated: