gpt4 book ai didi

event-handling - Jira:如何在自定义 IssueEventListener 中获取自定义字段的先前值

转载 作者:行者123 更新时间:2023-12-04 23:32:09 28 4
gpt4 key购买 nike

那么如何获得上一页 的值定制 领域在 Jira IssueEventListener 中?我正在为 issueUpdated(IssueEvent) 事件编写自定义处理程序,如果某个自定义字段已更改,我想更改处理程序的行为。为了检测变化的类型,我想比较以前的值和当前的值。

(我不是在问如何获得它的当前值——我知道如何从相关问题中获得它)

我正在 Windows 上针对 Jira 4.0.2 进行开发。

是扫描最后一个已知值的更改历史记录的最佳方法吗?

List changes = changeHistoryManager.getChangeHistoriesForUser(issue, user);

最佳答案

我假设原始海报正在用 Java 编写 JIRA 插件。我无法确定如何在 JIRA v4.0.2 中完成此任务,但这是我如何使用 JIRA v5.0.2 完成此任务(解决方案很可能是相同的):

public void workflowEvent( IssueEvent event )
{
Long eventTypeId = event.getEventTypeId();
if( eventTypeId.equals( EventType.ISSUE_UPDATED_ID ) )
{
List<GenericValue> changeItemList = null;
try
{
changeItemList = event.getChangeLog().getRelated( "ChildChangeItem" );
}
catch( GenericEntityException e )
{
// Error or do what you need to do here.
e.printStackTrace();
}

if( changeItemList == null )
{
// Same deal here.
return;
}

Iterator<GenericValue> changeItemListIterator = changeItemList.iterator();
while( changeItemListIterator.hasNext() )
{
GenericValue changeItem = ( GenericValue )changeItemListIterator.next();
String fieldName = changeItem.get( "field" ).toString();
if( fieldName.equals( customFieldName ) ) // Name of custom field.
{
Object oldValue = changeItem.get( "oldvalue" );
Object newValue = changeItem.get( "newvalue" );
}
}
}
}

changeItem 的一些可能的关键值是:
  • 新值
  • 旧字符串
  • 领域
  • id
  • 字段类型
  • 新字符串
  • 旧值

  • 对于许多自定义字段类型,对象 oldValue 可能只是一个字符串。但我不认为这适用于所有情况。

    关于event-handling - Jira:如何在自定义 IssueEventListener 中获取自定义字段的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571825/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com