Here is a simple demo I created for a customer.
The use case: Process new hires from HCM in a custom app.
Ok, in order words, a simple SaaS extension app.
I decided to use Visual Builder(VB CS) here, well that's not really the whole truth - this is what the customer wanted to see.
Here's essentially what I did -
1. Created an app in VB CS. This app contained the following business object.
This business object contains the fields from the HCM Atom Feed to which I will subscribe.
I also created a couple of pages to manage the employee -
main-start displays a list of all employees.
main-edit-employee - displays an employee in edit mode.
This page also offers us the opportunity to retrieve the full employee details from HCM -
Note the GetDataFromHCM button. I use the HCM REST api to retrieve the emp data.
I will also use the REST api to update the said employee in HCM.
Here is the Service Connection I use.
The key for the GET is the personId, contained in the Atom Feed.
The GET request returns the following structure - a very long structure, which I have shortened for readability. Essentially all employee attributes are returned.
{
"items": [
{
"Salutation": null,
"FirstName": "Frankie",
"MiddleName": null,
"LastName": "TSOAPUI_LName10031",
...
"WorkEmail": "TSOAPUI_10031@test.com",
"AddressLine1": null,
"AddressLine2": null,
"AddressLine3": null,
"City": "Harmonstown",
...
"PersonId": 300000172272525,
"EffectiveStartDate": "2019-03-01",
...
"WorkerType": "E",
"links": [
{
"rel": "self",
"href": "https:/yourHCM/emps/00020000000EACED00057708000110D93BB36B8D0000004AACED00057372000D6A6176612E73716C2E4461746514FA46683F3566970200007872000E6A6176612E7574696C2E44617465686A81014B59741903000078707708000001694600040078",
"name": "emps",
"kind": "item",
...
The composite key is the hash value highlighted above - 002...
This key is required when updating the employee.
Now to the page that allows me to update the employee - I just display the City value here -
Note - I display the EmpID in "disabled" mode. Just to show that I have stripped off the leading url returned by the GET.
That I do as follows - thanks to my colleague David K. for the code.
My version worked, but was much more pedestrian.
I call this (Call Module Function) in the following EventChain - triggered when I click GetDateFromHCM -
As you can see, I assign the result of the function call to an application variable - var_hcmid.
The EmpID field on my screen is set to this -
2. Created an Integration that subscribes to the Atom Feed -
The HCM Adapter invoke is configured as follows -
I then leverage a connection based on the VB CS Employee Object REST API, to update the aforementioned.
That's it.
3. To Test - I simply select the Integration menu option - Submit Now.
I check the Employees - I now have 13 rows -
I run the VB app and select a new employee - I click GetDataFromHCM -
The city is Harmonstown -
I change to Howth and click Update City -
I validate via Postman -
The use case: Process new hires from HCM in a custom app.
Ok, in order words, a simple SaaS extension app.
I decided to use Visual Builder(VB CS) here, well that's not really the whole truth - this is what the customer wanted to see.
Here's essentially what I did -
1. Created an app in VB CS. This app contained the following business object.
This business object contains the fields from the HCM Atom Feed to which I will subscribe.
I also created a couple of pages to manage the employee -
main-start displays a list of all employees.
main-edit-employee - displays an employee in edit mode.
This page also offers us the opportunity to retrieve the full employee details from HCM -
Note the GetDataFromHCM button. I use the HCM REST api to retrieve the emp data.
I will also use the REST api to update the said employee in HCM.
Here is the Service Connection I use.
The key for the GET is the personId, contained in the Atom Feed.
The GET request returns the following structure - a very long structure, which I have shortened for readability. Essentially all employee attributes are returned.
{
"items": [
{
"Salutation": null,
"FirstName": "Frankie",
"MiddleName": null,
"LastName": "TSOAPUI_LName10031",
...
"WorkEmail": "TSOAPUI_10031@test.com",
"AddressLine1": null,
"AddressLine2": null,
"AddressLine3": null,
"City": "Harmonstown",
...
"PersonId": 300000172272525,
"EffectiveStartDate": "2019-03-01",
...
"WorkerType": "E",
"links": [
{
"rel": "self",
"href": "https:/yourHCM/emps/00020000000EACED00057708000110D93BB36B8D0000004AACED00057372000D6A6176612E73716C2E4461746514FA46683F3566970200007872000E6A6176612E7574696C2E44617465686A81014B59741903000078707708000001694600040078",
"name": "emps",
"kind": "item",
...
The composite key is the hash value highlighted above - 002...
This key is required when updating the employee.
Now to the page that allows me to update the employee - I just display the City value here -
Note - I display the EmpID in "disabled" mode. Just to show that I have stripped off the leading url returned by the GET.
That I do as follows - thanks to my colleague David K. for the code.
My version worked, but was much more pedestrian.
I call this (Call Module Function) in the following EventChain - triggered when I click GetDateFromHCM -
As you can see, I assign the result of the function call to an application variable - var_hcmid.
The EmpID field on my screen is set to this -
2. Created an Integration that subscribes to the Atom Feed -
The HCM Adapter invoke is configured as follows -
I then leverage a connection based on the VB CS Employee Object REST API, to update the aforementioned.
That's it.
3. To Test - I simply select the Integration menu option - Submit Now.
I check the Employees - I now have 13 rows -
I run the VB app and select a new employee - I click GetDataFromHCM -
The city is Harmonstown -
I change to Howth and click Update City -
I validate via Postman -
No comments:
Post a Comment