2017-11-01 5 views

답변

1

예,이

import com.atlassian.jira.component.ComponentAccessor; 
import com.atlassian.jira.util.ImportUtils; 
import com.atlassian.jira.issue.index.IssueIndexingService; 
def issueManager = ComponentAccessor.getIssueManager(); 
def issueIndexingService = ComponentAccessor.getComponent(IssueIndexingService); 
def wasIndexing = ImportUtils.isIndexIssues(); 
ImportUtils.setIndexIssues(true); 
issueIndexingService.reIndex(issueManager.getIssueObject(issue.id)); 
ImportUtils.setIndexIssues(wasIndexing); 

또는 JIRA6

import com.atlassian.jira.util.ImportUtils; 
import com.atlassian.jira.component.ComponentAccessor; 
def wasIndexing = ImportUtils.isIndexIssues(); 
ImportUtils.setIndexIssues(true); 
ComponentAccessor.getIssueIndexManager().reIndex(issue); 
ImportUtils.setIndexIssues(wasIndexing); 

에 대한 JIRA7

에 대한

그러나 같은 코드를 사용할 수 인덱싱을 위해이 작업을 가리 무엇? 어쨌든 createindex에서 서브 인덱스를 만들고 listener에서 reindex를 생성하는 것은 자연스러운 것이 아닙니다.

+0

안녕하십니까, 하위 문제가 생성 될 때마다 부모 필드를 수정하는 문제 수신기를 만들었습니다. 하위 작업이 만들어지면 작성 후에는 부모 개체를 가져올 수 없기 때문에 문제를 인덱싱하면 작업이 완료 될 수 있습니다. My Jira 버전이 6.4이므로 IssueIndexingService가 작동하지 않습니다. 그 대신 사용할 수있는 항목은 무엇입니까? 감사합니다. –

+0

jira6에 대한 첫 번째 답변을 업데이트했습니다. 그러나 첫 번째 단계 후 스크립트를 이동할 수 있습니다 (원래 문제를 생성 함). 그리고 나서 당신은 issue.getParentObject()를 수신 할 수 있습니다. 스크립트 리스너는 작성 단계에서 수행하는 것보다 성능에 큰 영향을줍니다. 어쨌든, 청취자 코드가 완료되지 않으면 문제가 발생하지 않는다는 사실을 기억하십시오 (물론 리스너로부터 새로운 스레드를 시작하지 않는 경우). – sintasy

+0

안녕하세요 @ 신시내티, 나는 아마도 당신을 잘못 지시했습니다. 다음은 무슨 일입니까 : 수동으로 하위 작업을 만듭니다.이 이벤트는 생성 된 이벤트를 발생시킵니다. 이제 생성 된 이벤트에서 시작되는 리스너가 있으며이 리스너는 부모 필드를 업데이트합니다. issue.getParentObject를 수행하면 하위 개체와 부모 사이에 링크가 만들어지기 전에도 수신기가 호출되기 때문에 부모 개체가 null 일 수 있습니다. 이 문제를 해결하는 방법에 대해 조언 해 주실 수 있습니까? 감사합니다. . –