5 回答
- 432
WBSガントチャートの最新版はチケットをドラッグ&ドロップで移動できるようになりました。
http://www.ricksoft.jp/atlassian/wbs-ganttchart/wbsganttchart-whats-new.html?id=Tab5
この機能を使って整理する事はできませんでしょうか。
- 321
参考情報までに...
課題リンクの親子が逆になる現象が私も確認できました。
現象理由としてはRedmine Importerの下記ソースコードが関連している可能性があります。
リンクはfor文の処理ですが、親子課題の場合は if 文の処理かと思います。
com.atlassian.jira.plugins.importer.redmine.transforme.IssueToRelationsTransformer@Override public Collection<ExternalLink> apply(Issue input) { final Collection<ExternalLink> relations = Lists.newArrayList(); for (IssueRelation issueRelation : input.getRelations()) { relations.add(new ExternalLink( configBean.getLinkMapping(issueRelation.getType()), issueRelation.getIssueId().toString(), issueRelation.getIssueToId().toString())); } if (input.getParentId() != null) { relations.add(new ExternalLink( configBean.getLinkMapping(PARENT_LINK_NAME), input.getId().toString(), input.getParentId().toString())); } return relations; }
ExternalLink の、第1引数が課題リンクタイプ(インポートウィザードにてparentで選択した課題リンクタイプ)、第2引数が課題リンク元で、第3引数が課題リンク先でリンクが作られます。
実装レベルで、親のIDが課題リンク先になっているのが理由なきがします。
バグかと言われると微妙で...JIRAではリンクの考え方は自由なので、親子関係はあくまでも設定なので HAL9000 さんの通り変更することも手かもしれません。
ご参考になりましたら幸いです。
- RYOITO
ご確認ありがとうございます。 確かにJIRAとしては第二引数でも第三引数でもJRIA上のリンクとして扱いは同じでInwardLink/OutwardLinkの名称だけの問題になるのでバグではないと言われると確かに微妙なところですね。 (強いて言えば、こんなに近い場所にある処理なのにインポート元/先の考えが逆なのが惜しい…) ただ、一覧としての表示等でもWBSガントチャートで取り扱っているため、これが名称だけの問題では無くなるといった状況で困り果ています。 今インポート対象件数が数百件レベルのプロジェクトを抱えていて、Script RunnerからのJava APIを本格的に検討しなければならない状態なのですがJava APIが中々判らない状態です…。Script Consoleでエラー…。 ちなみにですが以下のようなイメージで合っていますか? 1. 対象のリンク(ID:10201)を持った課題を抽出 e.g. SELECT * FROM [jiradb].[jiraschema].[issuelink] where [LINKTYPE] = 10201 2. Java APIで1の対象課題のリンク10201を削除 for回し 3. Java APIで1の対象課題に改めてリンク10201を作成(createIssueLink?) for回し
- Kengo Ohsaki
ScriptRunnerでの操作について参考情報を記載しておきました 以下要領で対象JIRA課題を検索して... https://www.ricksoft.jp/qa/questions/5275677/ 以下を参考にfor文で回して頂ければ... https://www.ricksoft.jp/qa/questions/5275685/ と思いますが、詳しく必要でしたら長くなりそうですので別QAにて...
- RYOITO
先ほど確認しました。ありがとうございます。
コメントを追加... - 321
課題リンクもBulk操作ができたらいいんですけどね...
ちなみにDB操作だと...
issuelink テーブルの内課題ID(source)、外課題ID(destination)を入れ替えれば済むかと思います。
但しキャッシュの関係上、JIRAの再起動が必須です。
そのため手順としては、以下の順序で検証する必要があるかと思います。
- JIRA停止
- DB操作 バックアップ取得してから
- JIRA起動
- インデックス再構築
またSQLは低レイヤーな操作のため保障もなく、Versionなどによって対応方法が異なるリスクがあります。
そのため、推奨はAPI経由です。
REST API もしくは Script Runner などから Java API を呼び出すほうが良いかと思います...
Java APIだとIssueLinkManagerあたりを使うことになるかと思います。
参考情報:SQLで課題リンクを作成する方法の質問
ご参考になりましたら幸いです。
- RYOITO
ありがとうございます。 わたしもDB直操作は避けたいと思っています。 Script Runnerを入れているのでJava APIの方法も検討して実施してみます。
コメントを追加... - 321
DB 操作でもできると思いますが、 Atlassian の推奨としては REST API ですね。
https://docs.atlassian.com/jira/REST/latest/
Link の操作はこの辺です。
- RYOITO
ありがとうございます。 REST APIの使用ですか。整理して実施してみようと思います。
コメントを追加...
Redmineからインポートした課題で、数十課題ほど課題リンクの親子が逆になっている事がわかりました。
(一括が望ましいのですが…)JIRAの課題リンク先/元を反転できないでしょうか。