In this article
Workday Read Snap is a Read-type Snap that you can use to read Workday data using the Workday service name, object, and optionally output fields.
The output fields are the Include and Exclude fields typically defined by Workday in the request's Response_Group section. Output fields prefixed with include, add additional fields to the output document, whereas the output fields prefixed with exclude, excludes fields from the output document. Output fields prefixed with include add additional fields to the output document, whereas the output fields prefixed with exclude excludes fields from the output document. For more information refer to, Workday Web Services (WWS) Directory for information on the Workday output section to specifically determine the nature and effect that each output field has on the output document.
ETL Transformations & Data Flow This Snap enables the following ETL operations/flows:
Here's how it works:
|
You must have a Workday Account, data to query, and Workday security access to the objects concerned. Contact your organization's Workday Security Administrator for appropriate access.
Workday recommends using an Integration System User (ISU) with APIs.
Works in Ultra Task Pipelines if batch size is set to 1.
None.
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document |
|
| A document that conforms to the input view schema of the Snap. The input view schema is provided to an upstream Mapper Snap based on the selected service object. |
Output | Document |
|
| A document that represents the record structure of the retrieved Workday service object. Each record is represented as one document on the output view. |
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:
Learn more about Error handling in Pipelines. |
|
Field Name | Field Type | Description | ||
---|---|---|---|---|
Label* | String | Specify the name of the Snap. You can modify this text to indicate what the Snap does. This is especially useful if you have more than one Workday Read Snap in your Pipeline. Default Value: Workday Read | ||
Timeout* | Integer | Specify the timeout value for each Workday SOAP request. The value of 0 means no timeout. Because Workday Read supports Workday SOAP pagination, multiple SOAP requests can occur for one execution. Consequently, the timeout can be less than the time it takes to complete writing documents to the output view. Default value: 60 | ||
Service* | String/Expression/Suggestion | Specify the name of the web service that you want to use. Default value: N/A | ||
Object* | String/Expression/Suggestion | Specify the name of the object from which you want to retrieve data. Select the object from the list of objects returned by the web service you selected in the Service field. For example, if you selected the Payroll Service, the Object field displays all the objects that were retrievable under the Payroll service from Workday. Default value: N/A | ||
Outputs | Use this field set to indicate the data you want the query to return from Workday. Add each output in a separate row. Click Add to add rows. This field set contains Path and Value fields.
| |||
Path | String/Suggestion | Specify the output to be returned by the request. These work with the include and exclude fields defined by Workday in the request's Response_Group section and include or exclude fields in the output document. For example, the command 'Response_Group.Include_Worker_Documents' includes worker document details in the output. Default Value: [None] | ||
Value | Dropdown list | Specify the value to be set for the path on the request. Default Value: True | ||
Simplified Output | Checkbox | Select this checkbox to simplify output documents by removing Workday namespace attributes from key names. It also converts the nested ID collection to a simple map data. You can use a JSON Splitter Snap to simplify the output document data structure further. If not selected, the Snap produces an output in a tree structure with nested levels of information. Default Value: Not selected | ||
Pass-through on no lookup match | Checkbox | Select this checkbox to allow the input document to pass through to the output view when there are no records matching an input document. Else, the input document is written to the error view as an error condition. Default Value: Not selected | ||
Page Number | Integer/Expression | Enter the specific page number from which you want to retrieve data. Retain 0 to retrieve data from all the pages. Default Value: 0 | ||
Page Size | Integer/Expression | Specify the number of records to fetch per page. Default Value: 100
| ||
Multi-threaded | Checkbox | Select this checkbox to enable the Snap to expedite reading the requests by using multiple threads.
| ||
Max Pool Size | Integer | Activates when Multi-threaded checkbox is selected. Specify the value for pool size to control the maximum number of threads in the pool for the instance. Default Value: 10 | ||
Number of Retries | Integer | Enter the integer value to specify the number of attempts the snap should make to perform the selected operation in case of connection failure or timeout. Minimum value: 0 Default Value: 0 | ||
Retry Interval (seconds) | Integer | Enter the time interval in seconds between retry attempts. Minimum value: 1 Default Value: 1 | ||
Snap Execution | Dropdown list |
Error | Reason | Resolution | |
---|---|---|---|
HTTP/1.1 407 Proxy Authentication required. | The Snap is unable to tunnel through proxy. | Add the following key-value pair values to your Groundplex configuration and restart the plex to reflect the changes. Key: | |
Potential Scenario | Reason | Resolution | |
When you retrieve objects by enabling the Multi-threaded checkbox, you may experience high memory or CPU usage if your object is of a large size. | Based on the Max Pool Size, the threads start concurrent execution simultaneously using the available resources, and when the memory usage reaches its peak (that is, heap memory is equal to the available node memory), the memory hanging issue occurs.
| We recommend that you reduce the values for the Max Pool Size and Page Size fields. |
This example pipeline demonstrates how to get applicants from Workday by specifying the number of results you want to see in a page and the number of pages of results you want in the output.
In this Pipeline, the Workday Read Snap retrieves records from the Get_Applicants object and writes the data to a JSON file.
Workday Snap Configuration | Output |
---|---|
The Page size and the Page Number fields are set to their default values of 0 and 100 respectively. This means that the Read Snap retrieves all the records from the Get_Applicants object when executed. | The output preview shows all the rows of data, starting from the first row of data onwards and displays 100 records per page. . |
You can also use Pipeline parameters to specify short strings for complicated service and objects in Workday. For step-by-step information on managing properties of Pipelines, refer to Pipeline Properties Parameters. |
The output preview shows all the rows of data, starting from the first row of data onwards.
Let us now set the Page Number value to 2 and the Page Size to 20. This enables the Workday Read Snap to retrieve records from the page 2, with 20 records in each page.
The output preview shows you 20 rows of data, starting from the second page of data onwards. For instance, in the screenshot below, you can see that there are only 20 rows displayed, and that name of the worker in the first row is different from the output screenshot above:
This example Pipeline demonstrates how to generate a simplified view of your Workday Read Snap output without the difficult-to-read attributes and metadata that typically accompany Workday output.
This Pipeline retrieves a list of workers, with detailed documents accompanying each worker. We shall see what the output looks like without the Simplified view restriction and then generate a Simplified view of the output using the Workday Read Snap.
As you can see, in the screenshot above, the Simplified output checkbox is not selected; the output, therefore, is detailed:
We shall now select the Simplified output checkbox and see how the output changes. Here's the Workday Read Snap Settings popup with the Simplified output checkbox deselected:|
As you can see in the screenshot below, the output is much easier to read:
You can also use pipeline parameters to specify short strings for complicated service and objects in Workday. For step-by-step information on managing properties of pipelines, see Pipeline Properties Parameters. |
Download the sample pipeline here.
This example demonstrates how you can query for all the data associated with an object, and for specific data within an object, using the Workday Read Snap.
Once you have configured the Workday Read Snap with your Workday account details, you should be able to view the services and objects that Workday has enabled for your account. You can then use these services and objects to query the Workday database associated with your account. Let us look at some of the important ways in which you can create Workday queries using the Workday Read Snap. You can:
The following sections offer detailed guidance on how to perform each of these tasks. Retrieving all the Data Associated by Default with an ObjectTo retrieve all the data associated by default with an object:
Specifying Criteria for Data Inclusion and Exclusion
|
This example demonstrates how you can use the Workday Read Snap for error handling.
This example showcases how to implement error handling in the Workday Snap. Here, we assume a bad mapping. Download the sample pipeline here.
In the following mapping, we assume that the data types that we mapped together are incompatible. Usually while mapping an object, you may have to make several attempts to map the data you need to appropriate fields; so it is good to understand how you can manage problematic mappings. The Workday Read Snap is configured as follows: When the pipeline is executed. the invalid type mapping of 'aaa' to '$Request_References[*].Worker_Reference[*].ID[*].type' will trigger the Workday Read Snap to write to the error view (Here we enabled the error view on the Snap explicitly.) Understanding Workday Read Error Views
|
This example demonstrates how you can use upstream Snaps to control the data returned by the Workday Read Snap.
The Workday Read Snap doesn't necessarily need upstream Snaps. However, it can be used to leverage fields in the upstream data to retrieve and make available specific data from Workday to downstream Snaps. Example OverviewIn this example, we shall retrieve Workday data related to specific workers and upload the received data to a SQL server. Understanding the PipelineReview the table below to understand:
For details on the contents of each Snap, download and import the sample pipeline into SnapLogic. |
Retrieving data modifications in a date range becomes much more effective if you use the Transaction Logs service. This way, instead of querying all data for the specified date range, Workday can use the transaction logs for the same date range and only compare records modified within the date range. This example demonstrates how this can be done.
Download this Pipeline.
This Pipeline is structured as follows:
To use the Transaction Logs service in the Workday Read Snap, you must first pass the following Transaction Log criteria into the Workday Read Snap:
The above criteria is passed through the Mapper Snap, which is configured as shown below: The output from the Mapper Snap is as shown below: To use a Workday service, the Workday Read Snap's Output field must be configured to set the service to True: The output from the Workday Read Snap is as shown below: Below is a screenshot of the Workday Read Snap without using the Transaction Log service: Comparing both outputs, you can see that using the Transaction Logs service is much more efficient. |