cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Did you get called away in the middle of writing a post? Don't worry you can find your unfinished post later in the Drafts section of your profile page. X

Post upgrade - Create Substitute action missing for user

avillanueva
22-Sapphire I

Post upgrade - Create Substitute action missing for user

I have a user who has Windchill Advanced license and does not have any other assigned profile. They reported that they cannot see the actions under Manage Replacements to create a substitute. I can but I am admin. They could before in 11.1 system so I suspect something with licensing or upgrade. 

We turned on jcaDebug and saw this:

avillanueva_0-1675177516379.png

and I looked up the following article:

https://www.ptc.com/en/support/article/CS309967?source=search

I will check logs and but for the resolution on this, you can't edit the license profiles if that truly was the cause. I am sure the user has rights to create subs. They did check out the Assembly Part. Any other places to try?

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

So, I got it. It was the line below from roleaccessprefs.xml BUT I first missed it since it was the wrong section.

<uic name="MANAGE_PART_SUBSTITUTES" order="1104" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>

There are multiple entries of this line. I needed the one that is in the <library> block since that is where substitute link objects are actually created. 

View solution in original post

5 REPLIES 5
TomU
23-Emerald IV
(To:avillanueva)

It seems like they should have access:

 

TomU_0-1675180161674.png

 

I wonder if the profiles need to be reloaded...

TomU
23-Emerald IV
(To:TomU)

I do not think its the profiles. I was able to replicate with a test user and the user I was working with confirmed. If they selected on a component from a different context than the assembly's context, for example a library component, the actions are missing. However, if that component is in the same context as the assembly, the substitute actions are there. I remember this since we noted this long ago. The user needs create/modify/etc rights on Part Substitute type in the area were the component exists, not the assembly part. The strange thing is that they should have it. 

Here is how we did it. The user is a member of the "All Users" group. See below.

avillanueva_0-1675184483348.png

Now this group for "All Users" is a guest of the library since I want them to read but not modify the general content that is there. But then we added ACLs in the library to ensure they could create Part Substitutes:

avillanueva_1-1675184640086.png

A bit over zealous since we included the All Users group and Guests. Oh, oh wait, could it be the roleaccesspres.xml file?

<uic name="MANAGE_PART_SUBSTITUTES" order="1104" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>

Let me pop over to my previous system and see if I missed an edit.

 

This was the only reference in PDMLink 11.1:

<!-- Replacement actions -->
      <uic name="REMOVE_REPLACEMENT" order="1020" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>
      <uic name="ADD_ALTERNATE" order="1021" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>
      <uic name="ADD_SUBSTITUTE" order="1022" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>
      <uic name="ADD_SUPPLEMENTARY_REPLACEMENT" order="1023" enabled="true" defaultAll="false" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>

There were no changes I made here. But this is what I see in the logs:

In -> getDefaultValueForUIC: UIComponent is <com.ptc.netmarkets.roleAccess.UIComponent@951ecdc>, isManager <false>, isGuest <true>
2023-01-31 11:14:24,036 DEBUG [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- retVal for uic: MANAGE_PART_SUBSTITUTES isManager: false isGuest: true
2023-01-31 11:14:24,036 INFO  [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- 	isManager: false
2023-01-31 11:14:24,036 INFO  [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- 	retVal: false
2023-01-31 11:14:24,036 INFO  [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- 	isOrgOrSiteAdmin: false
2023-01-31 11:14:24,036 INFO  [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- 	return retVal | isOrgOrSiteAdmin: false
2023-01-31 11:14:24,036 INFO  [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- 	return HIDDEN
2023-01-31 11:14:24,037 DEBUG [ajp-nio-127.0.0.1-8010-exec-23] com.ptc.netmarkets.roleAccess.StandardNmRoleAccessService <user>- disabledDefault value taken from Config File default is :HIDDEN

Not sure why but its simple enough to test enabling guest to true for this action.

So, I got it. It was the line below from roleaccessprefs.xml BUT I first missed it since it was the wrong section.

<uic name="MANAGE_PART_SUBSTITUTES" order="1104" enabled="true" defaultAll="true" defaultManager="true" defaultGuest="false" managerEnabled="true" guestEnabled="false"/>

There are multiple entries of this line. I needed the one that is in the <library> block since that is where substitute link objects are actually created. 

Top Tags