Cmdlets for Workday

Build 22.0.8397

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でWorkday Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module WorkdayCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module WorkdayCmdlets;

Connect-Workday cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-Workday -UseWQL 'false' -User 'myuser' -Password 'password' -Tenant 'mycompany' -Host 'https://wd3-impl-services1.workday.com'

Workday WQL API への接続

The WQL service must be enabled before connecting:

  1. Open Workday and enter View Domain in the search bar. Enter Workday Query Language for the prompt.
  2. Check that one of the Allowed Security Group Types includes the user you are connecting to.

The Workday WQL API leverages OAuth for authentication.

It is necessary to create a custom OAuth application to establish a connection.

See カスタムOAuth アプリの使用 to create an OAuth app and obtain the OAuthClientId and OAuthClientSecret, then supply the following to connect.

  • OAuthClientId: The Client ID obtained from the View API Client page.
  • OAuthClientSecret: The Client Secret obtained from the View API Client page.
  • Tenant: The tenant for the account.
  • Host: The host for the API URL.

To obtain the Host and Tenant properties, log into Workday and search for View API Clients. In the listed values, find the Workday REST API Endpoint. For example: https://wd3-impl-services1.workday.com/ccx/api/v1/mycompany. In this case, Host is https://wd3-impl-services1.workday.com and Tenant is mycompany.

You also have the option of connecting to reports when the UseWQL property is enabled. See データアクセスのファインチューニング for details on how to configure this.

Workday SOAP API への接続

To authenticate, specify the following:

  • UseWQL: Set this to false.
  • User: The Workday user account used to authenticate.
  • Password: The password used to authenticate the user.
  • Tenant: The tenant for the account.
  • Host: The host for the API URL.

See above for examples of the tenant and host values.

データの取得

Select-Workday cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-Workday -Connection $conn -Table "[CData].[Human_Resources].Workers" -Columns @("Worker_Reference_WID, Legal_Name_Last_Name") -Where "Legal_Name_Last_Name='Morgan'"
Invoke-Workday cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-Workday -Connection $conn -Table [CData].[Human_Resources].Workers -Where "Legal_Name_Last_Name = 'Morgan'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\my[CData].[Human_Resources].WorkersData.csv -NoTypeInformation

Select-Workday からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-Workday -UseWQL 'false' -User 'myuser' -Password 'password' -Tenant 'mycompany' -Host 'https://wd3-impl-services1.workday.com'
PS C:\> $row = Select-Workday -Connection $conn -Table "[CData].[Human_Resources].Workers" -Columns (Worker_Reference_WID, Legal_Name_Last_Name) -Where "Legal_Name_Last_Name = 'Morgan'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "[CData].[Human_Resources].Workers",
  "Columns":  [

  ],
  "Worker_Reference_WID":  "MyWorker_Reference_WID",
  "Legal_Name_Last_Name":  "MyLegal_Name_Last_Name"
} 

Copyright (c) 2022 CData Software, Inc. - All rights reserved.
Build 22.0.8397