Cmdlets for Workday

Build 22.0.8479

接続の確立

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'

Connecting to the 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 with.

Configuring the Host and Tenant

To obtain the Host and Tenant properties, log into Workday and search for View API Clients. On this screen, Workday will display the Workday REST API Endpoint which contains both the Host and Tenant. The Tenant is the portion after the last slash, while the Host is the "https://" and the domain name.

For example: if the API endpoint is https://wd3-impl-services1.workday.com/ccx/api/v1/mycompany, the Host is https://wd3-impl-services1.workday.com and the 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.

Authenticating to Workday

You can authenticate to the Workday WQL API as a normal (non-ISU) user, or an ISU (via either OAuth or OAuthJWT).

Normal User

To authenticate as a normal user in Workday, you must first create an API Client. Please refer to カスタムOAuth アプリケーションの作成 for details on the procedure.

Once you have an API client configured, set the following properties to connect:

  • AuthScheme: Set this to OAuth.
  • OAuthClientId: The Client ID obtained from the View API Client page.
  • OAuthClientSecret: The Client Secret obtained from the View API Client page. If you are using a public client, leave this blank.
  • Tenant: The tenant for the account.
  • Host: The host for the REST API Endpoint in the View API Clients page.

ISU

To authenticate as an ISU, you must first create either an API Client or an API Client for Integrations. Please refer to カスタムOAuth アプリケーションの作成 for details on the procedure. You can create either an API Client for Integrations or an API Client using the JWT bearer grant type.

If you created an API Client for Integrations, set the following properties to connect:

  • AuthScheme: Set this to OAuth.
  • InitiateOAuth: Set this to REFRESH.
  • OAuthClientId: The Client ID obtained from the View API Client page.
  • OAuthClientSecret: The Client Secret obtained from the View API Client page.
  • OAuthRefreshToken: The refresh token obtained from the Manage Refresh Tokens for Integrations page.
  • Tenant: The tenant for the account.
  • Host: The host for the REST API Endpoint in the View API Clients page.

If you created an API Client with JWT, set the following properties to connect:

  • AuthScheme: Set this to OAuthJWT.
  • OAuthJWTCertType: Set this to the certificate type. This will be PFXFILE if you created the certificate with keytool or openssl pkcs12.
  • OAuthJWTCert: The path of the certificate file you created.
  • OAuthJWTCertPassword: The password of the certificate file you created.
  • OAuthJWTIssuer: The Client ID obtained from the View API Client page.
  • OAuthJWTSubject: The username of the ISU you are using.
  • Tenant: The tenant for the account.
  • Host: The host for the REST API Endpoint in the View API Clients page.

Connecting to the Workday SOAP API

Connections using the SOAP API support all the same authentication schemes that the WQL and reporting services do, in addition to basic authentication. Each of the above configurations can be used with SOAP by setting the UseWQL property to false.

Basic authentication can also be used with a normal user or an ISU without configuring an API client:

  • UseWQL: Set this to false.
  • AuthScheme: Set this to Basic.
  • User: The Workday user account name.
  • Password: The password used to authenticate the user.
  • Tenant: The tenant for the account.
  • Host: The host for the REST API Endpoint in the View API Clients page.

Other authentication methods are configured the same way as for the WQL and reporting services. Please refer to the corresponding sections for more details on those authentication schemes as well as the Host and Tenant properties.

データの取得

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) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479