Skip to content

Instantly share code, notes, and snippets.

View kale-bogdanovs's full-sized avatar

kale-bogdanovs

  • Workato
  • USA
View GitHub Profile
@kale-bogdanovs
kale-bogdanovs / workday-employee-sample.json
Last active September 1, 2021 22:02
Workday Employee Data JSON sample
{
"data": [
{
"Worker_Reference": "f2c673e5b73245889be3581d53187731",
"Worker_Reference_WID": "f2c673e5b73245889be3581d53187731",
"Worker_Reference_Employee_ID": "21018",
"Worker_Descriptor": "Jerome Williams",
"Worker_Data": {
"Worker_ID": "21018",
"User_ID": "jwilliams",
const createRecord = (worker) => {
row = {}
// Map top level fields - simple
row.id = worker.Worker_Reference_Employee_ID
row.user_id = worker.Worker_Data.User_ID
row.birthday = worker.Worker_Data.Personal_Data.Birth_Date
// Map name - nested
const preferred_name = worker.Worker_Data.Personal_Data.Name_Data.Preferred_Name_Data.Name_Detail_Data
@kale-bogdanovs
kale-bogdanovs / flatten-employee-record.js
Created September 1, 2021 20:45
Handle multiple records
//...
const state = ad["Country_Region_Reference_ISO_3166-2_Code"]
const zip = ad.Postal_Code
const last_modified = new Date(ad.Last_Modified).getTime()
const home_address_last_modified = row.home_address_last_modified || 0
const work_address_last_modified = row.work_address_last_modified || 0
ad.Usage_Data.forEach(ud => {
ud.Type_Data.forEach(td => {
if (td.Type_Reference_Communication_Usage_Type_ID === "HOME" && home_address_last_modified < last_modified) {
row.home_address_street_address_line_1 = street_address_line_1
const createRecord = (worker) => {
row = {}
//Map contact data - semistructured
const contact_data = worker.Worker_Data.Personal_Data.Contact_Data
contact_data.Address_Data.forEach(ad => {
const street_address_line_1 = ad.Address_Line_Data[0]
const street_address_line_2 = ad.Address_Line_Data[1]
const city = ad.Municipality
const state = ad["Country_Region_Reference_ISO_3166-2_Code"]
const createRecord = (worker) => {
row = {}
// Map top level fields - simple
row.id = worker.Worker_Reference_Employee_ID
row.user_id = worker.Worker_Data.User_ID
row.birthday = worker.Worker_Data.Personal_Data.Birth_Date
// Map name - nested
const preferred_name = worker.Worker_Data.Personal_Data.Name_Data.Preferred_Name_Data.Name_Detail_Data
@kale-bogdanovs
kale-bogdanovs / flatten-employee-record.js
Last active September 1, 2021 17:59
Workato JavaScript Action Skeleton
const createRecord = (worker) => {
row = {}
// Here's where I'll process each worker record
return row
}
exports.main = ({ input_json }) => {
const input = JSON.parse(input_json)
const rows = []
input.forEach(worker => {