Has anyone used Script Runner to unlock a custom field? The current case is the creating a new metric in Service Desk creates a locked SLA field. If you delete the particular service desk that uses the metric, the custom field is not removed.
I think, something like this should work.
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.config.managedconfiguration.ManagedConfigurationItemService import com.atlassian.jira.issue.CustomFieldManager ManagedConfigurationItemService managedConfigurationItemService = ComponentAccessor.getComponent(ManagedConfigurationItemService) CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def cf = customFieldManager.getCustomFieldObjectByName('My Customfield') if (cf) { def mci = managedConfigurationItemService.getManagedCustomField(cf) if (mci) { managedConfigurationItemService.removeManagedConfigurationItem(mci) } customFieldManager.removeCustomField(cf) }
But, I didn't test it because I don't want to have to set up a new test environment. :-)
Worked like a charm, thanks! For followers: to only unlock the field just comment out the removeCustomField method near the end.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I've heard that unlocking a custom field stops it appearing as a choice in the Add Column with JIRA 6.2 and later. Test this all in a staging JIRA first, as usual.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
And from Rene Bodack (kreuzwerker) at https://confluence.atlassian.com/display/AGILEKB/How+to+unlock+a+Locked+fieldto lock the field again:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.config.managedconfiguration.ConfigurationItemAccessLevel import com.atlassian.jira.config.managedconfiguration.ManagedConfigurationItemService import com.atlassian.jira.issue.CustomFieldManager ManagedConfigurationItemService managedConfigurationItemService = ComponentAccessor.getComponent(ManagedConfigurationItemService) CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def cf = customFieldManager.getCustomFieldObjectByName('My Customfield') if (cf) { def mci = managedConfigurationItemService.getManagedCustomField(cf) if (mci) { def managedConfigurationItemBuilder = mci.newBuilder(); def updatedMci = managedConfigurationItemBuilder .setManaged(true) .setConfigurationItemAccessLevel(ConfigurationItemAccessLevel.LOCKED) .build(); managedConfigurationItemService.updateManagedConfigurationItem(updatedMci); } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I wonder if customFieldManager.removeCustomField(customFieldObject) will work on locked fields?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
There is info how to do it at the database level at https://confluence.atlassian.com/display/AGILEKB/How+to+unlock+a+Locked+field
but I don't want to restart JIRA
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.