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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.