我想实现一个定期从外部数据源(远程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开发的新手,所以非常感谢任何帮助。
答案 0 :(得分:0)
不是从JIRA外部更新选择字段的选项,而是可以尝试完全相反:让JIRA直接从外部数据库获取选项值。
在Atlassian Marketplace上搜索条款&#34; database custom field&#34;并且您将找到免费而非免费的插件来创建此类型的自定义字段。自定义字段本身将查询外部数据库(例如,通过SQL /驱动程序)并即时获取选项。