Thanks for sending me the links and the hints for addressing this issue. After studying for a while, I wrote a small integration automation script on MASPERUSER object structure:
Now, we are able to sync the user records from MAS to Manage even if the email address records are present in the Manage (skipMbo).
I am now looking to see how to map and unmap the fields between MAS and Manage e.g. do not map user id to person id, map the prefix of email address before @ to SAML id etc.
Thanks for your help again.
Original Message:
Sent: Thu October 03, 2024 08:53 AM
From: Andrzej Więcław
Subject: User sync from MAS to Manage and (manage to MAS)
Hi Pankaj,
unfortunately I don't have anything I can provide you with ad-hoc but you're on the right track.
I would in your case adjust user mapping logic using one of approached suggested in Customization of inbound data section.
This way for example when receiving user e-mail address from MAS Core your could use it to uniquely identify PERSONID
(NOTE: e-mails are unique in Manage EMAIL
table and they always point to exactly one PERSONID
) and use this value instead during integration processing to populate MAXUSER.PERSONID
.
This way Manage would not create new person record but rather link existing one and you would avoid unique index violation.
------------------------------
Andrzej Więcław
Maximo Technical Consultant
AFRY
Wrocław, Poland
Original Message:
Sent: Thu October 03, 2024 08:33 AM
From: Pankaj Bhide
Subject: User sync from MAS to Manage and (manage to MAS)
Hello Andrzej,
Thanks for your detailed reply. Our issue is:
In our Lab, not all people (populated in person MBO) in Manage are Manage users.
For example, in manage, there is a person with following details:
person
---------
personid: 888888
displayname: John Doe
division: AL
department - AL1
email
---------
personid 888888
phone
---------
personid 888888
phone 111-111-1111
At present, this person does not use Manage (however, his above details are required for some other applications. therefore we need to load them in "person" and "email" MBOs via our batch interfaces that we run periodically).
Now, from tomorrow, he is going to use Manage. Therefore, we need to add his account in MAS. While adding his details in MAS, we need to provide the following details:
User id: john-doe
User name: john-doe
SAML id: john-doe
The user synchronization process in MAS gives error "database error 2601 when operating on
john-doe@lbl.gov" (this seems obvious as his email record already exists in Manage).
In your 4th paragraph, you seem to have suggested a solution that can possibly address our issue. Do you have any examples (or a small document that can provide a quick roadmap ) on this?
Thanks again.
Pankaj Bhide
------------------------------
Pankaj Bhide
Original Message:
Sent: Thu October 03, 2024 02:29 AM
From: Andrzej Więcław
Subject: User sync from MAS to Manage and (manage to MAS)
Hi Pankaj,
there is a cron task called MASUSERSYNC
which is responsible for this "one time" user synchronization from Manage to MAS. It pushes Manage users in status active and with no value in MAS Issuer (MAXUSER.MASISSUER
) field and deactivates itself immediately after. You can actually activate it manually as many times you want and it will do exact same job again.
NOTE: You can use RESENDUSERSSEL
parameter to specify a SQL-like where clause which will be used at cron-task start to clear MAS Issuer (MAXUSER.MASISSUER
) field and therefore trigger synchronization even for users which have already been synchronized.
It seems like there is no way to affect Manage to MAS synchronization attributes mapping so if your results are not satisfying then I suggest you restructure your data in Manage just before the upgrade and let the cron task to the job. Alternatively you can simply before the upgrade script MAS Issuer (MAXUSER.MASISSUER
) field to the name of your identity provider (e.g. local, ldap, saml) and populate MAS users database e.g. using MAS Admin API calls.
It's easier to control the user synchronization proces the other way round - from MAS to Manage. It's actually quite well documented on User creation, authentication, and synchronization official documentation page. In short words MAS Core is using Manage's MIF capabilities to update user data and you can use all its flexibility to affect this process, including SKIP
rules to omit PERSON
data updates..
User management is being lifted consequently in MAS from Manage to Core and I would highly recommend you re-thinking your user synchronization process if not now, then at least in the coming future. There is a rich set of Maximo Application Suite Admin APIs choose your MAS version first) which can be used to load/update user data in MAS Core first and then let the Suite do its job the way it's designed.
------------------------------
Andrzej Więcław
Maximo Technical Consultant
AFRY
Wrocław, Poland
Original Message:
Sent: Wed October 02, 2024 06:25 PM
From: Pankaj Bhide
Subject: User sync from MAS to Manage and (manage to MAS)
Hello,
We are currently on MAXIMO 7.6.1.3 and we are using custom built batch jobs (that use OSLC JSON REST API) to synchronize the person information (person, email and phone) from our Data warehouse to MAXIMO. As a part of the person record, we bring additional organization specific information (e.g. supervisor, division, department, group etc) of the person using these jobs. The jobs are running fine. Whenever a new user needs to be added, in MAXIMO, we just add the new user with the user id (which is not the same as person id in our case) and associate that person id to that user and grant that user specific privileges.
We heard from our application provider that they executed a job that synchronized user information from Manage to MAS as a one time effort. However, the fields were not correctly mapped (e.g. the email address in Manage is mapped to SAML id in MAS) which is causing issues. Any idea which cron task in Manage does this synchronization? Is there any documentation about the mapping of the fields within Manage and MAS? Any way, we can customize it?
Now from onwards, I heard that we need to firstly add the user in MAS (e.g. person id, email address, SAML id) and the job (not sure which ?) in MAS synchronizes this information in Manage. However, this job fails as we already have the person and email information already populated as a part of the jobs that I described in the first paragraph.
Is there any way, we can skip populating the person information (e.g. person record, email and phone information) from MAS to Manage?
Is there any documentation about API that we can use to populate the person (with the required information e.g. supervisor, division, dept, etc.) and user information in MAS? This way, we need not run the first job in Manage and the sync process from MAS to Manage can transfer this information.
Please let me know.
------------------------------
Pankaj Bhide
------------------------------