JIRA:如何更改CustomField选项的ID?

时间:2018-03-14 10:35:19

标签: jira jira-plugin

我想实现一个定期从外部数据源(远程REST-Api)更新的CustomField。通过一些教程和扩展SelectCFType,我可以得到一个简单的Select-Box,其中包含一些值,可以按预期工作。

我的问题是我需要定期更新这些值:

我使用OptionManager的createOption(...)方法为我的Select-Box创建选项。当我这样做时,我可以设置选项的值和顺序,但我无法设置自定义ID。 JIRA似乎坚持自动生成这些ID,这意味着每次我使用刚刚从远程获取的值清除和更新我的选项时,它们都会获得新的ID。反过来,已经有选项集的所有问题都会失去该选择,因为存储的ID与任何新ID都不匹配。

这似乎是很多插件会出于某种原因使用的东西。是不是可以使用我自己的ID?

我使用的缩短版代码:

Options options = this.optionsManager.getOptions(fieldConfig);
if (options.isEmpty()) {

    ArrayList<JSONObject> projects = GetProjectList();

    for (int i = 0; i < projects.size(); i++) {
        Long id = projects.get(i).getLong("id");
        String identifier = projects.get(i).getString("name");
        this.optionsManager.createOption(fieldConfig, null, id, identifier);
    }

}
options = this.optionsManager.getOptions(fieldConfig);

要清除所有选项,我使用this.optionsManager.removeCustomFieldOptions(field)

我是JIRA开发的新手,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

不是从JIRA外部更新选择字段的选项,而是可以尝试完全相反:让JIRA直接从外部数据库获取选项值。

在Atlassian Marketplace上搜索条款&#34; database custom field&#34;并且您将找到免费而非免费的插件来创建此类型的自定义字段。自定义字段本身将查询外部数据库(例如,通过SQL /驱动程序)并即时获取选项。