- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-12-2024 05:52 AM - edited 06-12-2024 05:56 AM
Hi All:
I'm finally attempting to get my hands around converting my Transform Maps over to Robust import Set Transformers...
Geez....
I'm at the point (after a lot of trial and error) where my data is getting into the proper tables without duplication and 99.98% complete. Now i have only 1 item remaining.
My Task:
Due to how my company has Azure AD installed/Azure AD limitations, I have 3 different domains where users need to have a user account created if they need access to specific domain applications. Issue then is (example IT personel), my LDAP queries will pull "Duplicate" employee/user records.
E.G. I work for Parent Company and have a Parent Domain user account. I need to access a program in a subsidiary domain, so now i have a user account in domain SubA. Likewise, other users may have upto 4 user accounts.
Desired Solution:
I'm attempting to get a complete list of users from our HR system and only have 1 active account. Beyond other data points, I'm getting HR's listed Manager and manager employee id.
Issue:
From my data feed, I'm able to place various fields and "Cleansed" fields into the appropriate tables and/or table fields. The only thing I can't get done is placing the correct manager record into the employee's manager field (Which is a reference).
Current Output:
in my Robust Transformer, i'm mapping my Import set to a Staging table.
I have a Manager ID field and a manager sys_id field.
I'm using a Script Operation on the staging table to query the User table and return the sys it for the manager.
I'm getting the correct record sys_id returned, but the output is placing a space Infront of the sys_id.
I've tried using a trim() statement and .toString(). Neither works to remove the space.
Does anyone know why my output has the preceding space?
Here is my Script Operation.
(function(batch, output) {
// add your code here.
for (var i = 0; i < batch.length; i++) {
var meMgr = "";
var hrName = batch[i].input;
var fndMgr = new GlideRecord('sys_user');
fndMgr.addQuery("employee_number",hrName);
fndMgr.query();
while(fndMgr.next()){
meMgr = fndMgr.sys_id;//email
output[i] = meMgr.toString(); // return the value to be put into the target field
gs.information('Eric - the output is '+output[i]);
}
}})(batch, output);
When i check the logs, there is no additional spaces (E.G. 2 spaces) between is and output[i].
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2024 12:50 PM - edited 06-21-2024 12:52 PM
OK, ended up contact HI Support for help and they weren't very clear on what exactly I needed to do.
When importing/updating the user table and updating a User field that is a Reference.
You need to make sure that the Transformer you are building has NONE selected in the Coercion action column of the ETL Entity fields.
I did this for both my Staging table and the User Table entity. once done, adding manager.sys_id to the User.manager field worked like a charm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2024 12:50 PM - edited 06-21-2024 12:52 PM
OK, ended up contact HI Support for help and they weren't very clear on what exactly I needed to do.
When importing/updating the user table and updating a User field that is a Reference.
You need to make sure that the Transformer you are building has NONE selected in the Coercion action column of the ETL Entity fields.
I did this for both my Staging table and the User Table entity. once done, adding manager.sys_id to the User.manager field worked like a charm