Skip to Content
0

Change MSKEYVALUE / name of entrytype

Jun 20, 2017 at 08:57 AM

180

avatar image

Hello there,

I'm back with another question! :)

I want to change the name of an existing entrytype, because the current one is not really meaningful and I like readable names/mskeyvalues for my IDM stuff.

Does anybody have experience with this?
I haven't found a simple way to do this yet (no table, just a view and no way in the MMC). I had expected this to be a mskeyvalue (like for attributes etc), but it looks like it's more complicated.

Is the only solution to create a new entrytype and re-map the entries of the old entrytype to the new? Or am I missing something?

Or should I leave it alone completely? I'm spring-cleaning my IDM - so to speak - and this is part of my list to redo. So it's not really a must, but a big "nice to have".

.

Regards,

Steffi.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

4 Answers

Matt Pollicove
Jun 20, 2017 at 09:01 PM
2

Steffi,

The good news is that it was easier than I expected. The bad news is you might not like the process.

As you noticed, there doesn't seem to be a way in IDM to do this directly. It's not like trying to update an MSKEYVALUE.

You'll need to go into the DB to do this, but it does work quite nicely. I tested this in MSSQL, but I did not try it in Oracle (Sorry!).

Execute the following query:

update mxi_objectclasses 
set ocNAME = '[YOUR NEW ENTRYTYPE NAME' 
where ocID=[ENTRYTYPE ID]

You can find the Entry Type ID in the MMC console.

The good news is that there were not constraint violations and it went through without a hitch. Looking back at my MSSQL Management console, I noticed that I'm logged in as MXMC_OPER, which could be an issue.

Of course, this advice is given with no warranty, and I'd check with the DBA, run backups, etc., etc.

Hope it helps!

Matt

(emphasis is for my protection, I know you know better)

Show 2 Share
10 |10000 characters needed characters left characters exceeded

Thanks, Matt!

I'm on MSSQL since last year, so all good. ^^ And I have access to the oper, so no worries here, either. I will test this in my test system to be sure.

I really wonder why they hide this so much that you need to update the table in the database directly. :/

Do you know if this is easier in 8.0? Would be the first time they simplified something from 7.2 to 8, but you never know...

.

Regards,

Steffi.

0

Hi Steffi,

Not 100% sure why this is set up this way, but my guess is that the developers did not want to make the entry type object be the same (probably for design and not accessibility) as other IDM objects.

Anyway, I hope this works for you!

Matt

0
Anthony Kane
Nov 16, 2017 at 02:26 PM
1

Hi Steffi,

I would like to add something here. An OSS ticket has been raised which referenced this thread. So I thought I would append a response.

I checked this with the Development team, they have advised against making direct updates on the DB.

As per SAP Note 2274719 - IdM Support Scope, direct updates on the DB should only be executed when explicitly advised by IDM Support/Development.

Entry type name should not be changed after they are created, and there is no UI or standard function to do it. Instead if customers feel the display name of it(shown in web UI) is not proper, they can change its display name in MMC/Eclipse.

I hope this clarifies the issue.

Kind regards,

Anthony

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hello Anthony,

thank you for an official SAP reply. :)

I have changed the displayname, but that is more cosmetics. We work with the entrytype name in sql statements etc quite a lot and it's not really representing the entrytype content. That's why we wanted to change it.

What if we create a new entrytype with the same attributes, references etc. Is there a way to re-reference IDM objects created with the old entrytype to the new one? Like a migration of objects from one type to another?

.

Maybe I should also point out, that I'm not talking about an entrytype that is delivered with IDM, but a custom entrytype.

.

Regards,

Steffi.

0
Matt Pollicove
Jun 20, 2017 at 01:01 PM
0

Oh Steffi, why do you do things like this to me? How do I possibly resist a challenge like this?????

I'll have to play around with this one. It's all in the DB somewhere. I suspect some writing will come of this so that's a good thing. :)

Your friendly neighborhood IDM Hacker (White Hat),

Matt

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Narghs, I had hoped you have done this before and it would be totally easy! ;)

I don't know if my perfectionism is a good reason for a lot of risk by poking around in the database. Really wonder why this seems so complicated though. I mean, for attributes, which are an important part of every entry, you can just change the mskeyvalue and done.

.

Regards,

Steffi.

PS: Just to be clear (since last time this was overlooked), I'm still on lovely 7.2. ^^

0
Brandon Bollin Nov 17, 2017 at 07:30 PM
0

Matt Pollicove's answer is probably the easiest. Another way you could do this, which would be a little friendlier to die-hard SAP best practice people, is to create a new attribute with the name you desire and then go into the MXI_ENTRY table and update all existing entries with the new name and ID of the new attribute.

In my current client's environment, we created a client that needed to be superior to MX_PERSON but didn't do that when we created the attribute. Once you create a new attribute, you cannot add this ability later so we had to do this process in order to get the linking capabilities we wanted.

Show 4 Share
10 |10000 characters needed characters left characters exceeded

Hello Brandon,

but an attribute is different from an entrytype. Why would we change the name of an entrytype to that of an attribute? Or do you do that as a kind of workaround? You just use the id and name as a template - kind of - to put over the existing data of the entrytype?

.

Regards,

Steffi.

0

Crap... Just go and replace everywhere I said, "attribute" with, "entry type". You'll notice I mentioned having to make the setting for superiority to MX_PERSON so I honestly meant to say, "entry type" all those times I said, "attribute". Sorry about that.

0

Ah, no worries. :D Now it makes more sense though.

That's kind of what I asked Anthony Kane:

What if we create a new entrytype with the same attributes, references etc. Is there a way to re-reference IDM objects created with the old entrytype to the new one? Like a migration of objects from one type to another?
0

So the answer would be yes. You create the new entry type with the new name, all the same attributes and then update the existing records with the new entry type ID and name via SQL update command. I have done this, albeit in a DEV environment, and it worked.

0