2
1
0

最近作成したプロジェクトから「選択した課題タイプは無効です」と表示され、他に移動ができません。

 

いろいろチェックすると

JIRA上にタスクなどの課題タイプがいくつか重複して設定されている。

→関連有?JIRA-Agile(現Software)でプロジェクトを作成すると同名課題タイプが作成される?

移動できない課題は、たぶんに新しく作成されたタイプのもの(「タスク」:issue typeのidが10100)

しかし、default issue type schemeには「タスク」はひとつしかない。

→関連有?https://confluence.atlassian.com/jirakb/unable-to-move-issue-to-another-issue-type-due-to-the-issue-type-selected-is-invalid-error-227413483.html

適切な対応方法があればおしえていただきたく。
JIRA 6.4.3です
    Commentコメントを追加...

    3 回答

    1.  
      2
      1
      0

      恐らく報告されているメッセージから推察するに参照された以下の不具合で間違いないです。

      上記不具合は Default issue type scheme にすべての課題タイプが入るべきなのですが、課題タイプが入らない不具合です。


      まずは、本当にこの問題かCauseのSQLで問題が起きているか確認します。

      SELECT id, pname FROM issuetype WHERE id NOT IN (SELECT optionid FROM optionconfiguration WHERE fieldconfig = 10000 AND fieldid = 'issuetype');

      もしSQLで何かしら結果が返却されるとその課題タイプがDefault issue type schemeに入ってないためです。

      問題が確認できましたら、続いてWorkaround の Cause 1 対応を検討します。

      (警告) SQLでINSERT操作します。ご利用のDBからバックアップを取得の上、実施してください。

      (警告) DB操作のためJIRAサービスの停止が必要です。

      1. JIRAサービス停止 (JIRAで利用しているDBは停止不要です。)
        1. ここでバックアップ取得を推奨します。
      2. 停止の上再度確認

        SELECT id, pname FROM issuetype WHERE id NOT IN (SELECT optionid FROM optionconfiguration WHERE fieldconfig = 10000 AND fieldid = 'issuetype');
      3. 上記の結果をテキストエディタにメモっておき以下SQLの <missing_issue_type_id> をメモっておいた id の結果に置き換えて、繰り返し実行します。

        INSERT INTO optionconfiguration VALUES ((SELECT MAX(id)+1 FROM optionconfiguration), 'issuetype', '<missing_issue_type_id>', 10000, (SELECT MAX(sequence)+1 FROM optionconfiguration WHERE fieldconfig=10000));
      4. キー違反が起きないように、以下SQLを実行します

        UPDATE sequence_value_item SET seq_id = (SELECT MAX(id)+100 FROM optionconfiguration) WHERE seq_name = 'OptionConfiguration';
      5. JIRAサービスを起動します。
      6. JIRA管理画面にアクセスしてロックの上インデックスを再構築します
      7. 移動できなかった課題が、移動できるか再確認。

      不具合への対応は以上です。


      そして課題タイプが日英が混在する場合は以下問題でお間違いないかと思われます。(プロフィールの言語を英語にして、課題タイプが日本語(タスク)で表示されるものと英語(Task)と表示されるのが確認できたら…)


      この問題の回避策は、プロジェクトを作成するときに JIRA Default Schemes(JIRA デフォルトスキーム)を選択して作成してから、適切なスキームに変更していただければ回避できます。

      JIRA7 の場合は共有された構成でプロジェクト作成です…

      それ以外のテンプレートのような(Simple Issue Tracking、シンプルな課題なんちゃら...とかで)プロジェクトを作成をしてしまうと、タスクやサブタスクなどが無ければ課題タイプが勝手に追加される仕様があります。そして、日英で課題タイプが混在してしまう不具合があります...という内容です。


      こちらはコミュニティのため正確な内容、サポートを必要とする場合は、、Atlassian Support(日本語)にお問い合わせすることを推奨します。

      参考になりましたら幸いです。

        Commentコメントを追加...
      1.  
        2
        1
        0

        早速の回答ありがとうございます。

        それ以外のテンプレートのような(Simple Issue Tracking、シンプルな課題なんちゃら...とかで)プロジェクトを作成をしてしまうと、タスクやサブタスクなどが無ければ課題タイプが勝手に追加される仕様があります。そして、日英で課題タイプが混在してしまう不具合があります...という内容です。

        すでにシンプルなんたらで作ったプロジェクトがあり、「(日本語の?)タスク」などが追加されていて、運用されているので、いまからはどうしようもないという理解です。

        そのうえで(漏れたロジックが上記の内容と関連があるかはわからないのですが)Default issue type scheme に今ない

        「(日本語の?)タスク」などを、記載いただいた内容を参考に対応してみたいと思います。

          Commentコメントを追加...
        1.  
          1
          0
          -1

          一つひとつ追加するのが少々手間だったので、
          少々強引ですが、
          他の課題タイプスキームを編集するときの URL アクセスを Default Issue Type Scheme に置き換えて
          ブラウザで Jira 課題管理画面 > 課題タイプスキーム の画面を開き
          console から以下の JavaScript を実行することですべての課題タイプを
          Default Issue Type Scheme に追加することはできるようでした。

          (function() {
            var contextPath = AJS.contextPath(),
                // Default Issue Type Scheme の名前
                targetSchemeName = 'Default Issue Type Scheme',
                // Default Issue Type Scheme の ID
                targetSchemeId = '10000';
            
            // デフォルトの課題タイプとして設定する課題タイプの ID
            // var defaultIssueTypeId = '10001';
          
            // すべての課題タイプを取得する
            (function getIssueTypes() {
              
              $.ajax({
                url: contextPath + '/rest/api/2/issuetype',
                type: 'GET',
                dataType: 'json'
              }).done(function(data) {
                
                var issueTypeString = '',
                    token = getToken();
          
                for (var i = 0, len = data.length; i < len; i++) {
                  if (i === (len - 1)) {
                    issueTypeString += 'selectedOptions=' + data[i].id;
                  } else {
                    issueTypeString += 'selectedOptions=' + data[i].id + '&';
                  }
                }
          
                // すべての課題タイプを Default Issue Type Scheme に追加する
                (function setIssueTypes() {
                  $.ajax({
                    url: contextPath + '/secure/admin/ConfigureOptionSchemes.jspa?' + issueTypeString,
                    type: 'POST',
                    data: 'schemeId=' + targetSchemeId + '&fieldId=issuetype&projectId=&name=' + encodeURI(targetSchemeName) + '&description=&defaultOption=&save=%E4%BF%9D%E5%AD%98&atl_token=' + token,
                    contentType: 'application/x-www-form-urlencoded'
                  }).done(function() {
                    console.log('Done!!');
                  });
                  
                })();
                
              });
              
            })();
          
            function getToken() {
              var cookies = document.cookie.split(';');
              var token;
          
              for (var i = 0, len = cookies.length; i < len; i++) {
                if (/atlassian.xsrf.token/.test(cookies[i])) {
                  token = cookies[i].substr(cookies[i].indexOf('=') + 1);
                }
              }
          
              return token;
            }
          })();
            Commentコメントを追加...