0

以下に示す例外が発生するたびに、バグの状態を「新規」から「承認済み、完了、クローズ済み」に変更する方法がわかりません。インターネット全体を調べたところ、System.State フィールドが他のフィールドとは少し異なることがわかりました。遷移状態を移動する方法があるのではないかと思ったのですが、それが見つかりませんでした。また、状態を切り替えると他のフィールド、特に理由フィールドが無効になる .NET API のいくつかの投稿を見ました。field.setValue("Closed") を呼び出そうとするとすぐに例外がスローされるため、これは問題ではないと思います。パワーツールで調べたところ、System.State は編集可能であることがわかりましたか? 移行状態の問題にはなりません。v 次のステップとして有効であるはずの試行済みの状態。例として、作業項目は新しいため、承認済みは有効な次のステップです。

何が問題なのか、誰かが何か知っているなら、私はとても感謝しています。

コード例:

     WorkItem workItem = s.get(0);
     Map<String, String> fieldValueMap = settings.getFieldValues();
     String status_field_text = settings.getFieldMap().get(SettingsParser.STATUS);
     Field statusField = workItem.getFields().getField(status_field_text);
     String currentFieldValue =  fieldValueMap.get(SettingsParser.CLOSED_STATE);
     if(currentFieldValue != null)
     {

     statusField.setValue("Approved");//<=========== no matter what i add there i get exception
     }
     else
     {
         System.out.println("pp");
      }

スレッド「メイン」での例外

エラー:

" java.lang.IllegalArgumentException: フィールド ID [10013] は、com.microsoft.tfs.core.clients.workitem.internal.fields.FieldCollectionImpl.newIllegalFieldIDException(FieldCollectionImpl. java:119) com.microsoft.tfs.core.clients.workitem.internal.fields.FieldCollectionImpl.getFieldInternal(FieldCollectionImpl.java:459) で com.microsoft.tfs.core.clients.workitem.internal.WorkItemImpl.getRuleTargetField( WorkItemImpl.java:769) の com.microsoft.tfs.core.clients.workitem.internal.rules.RuleEngine.preProcessFields(RuleEngine.java:224) の com.microsoft.tfs.core.clients.workitem.internal.rules. RuleEngine.fieldChanged (RuleEngine.java:196) at com.microsoft.tfs.core.clients.workitem.internal.rules.RuleEngine.fieldChanged (RuleEngine.java:167) at com.microsoft.tfs.core.clients.workitem.internal.fields.FieldImpl.fireRules(FieldImpl.java:795) com.microsoft.tfs.core.clients.workitem.internal.fields.FieldImpl.setValue(FieldImpl.java:765) com.microsoft.tfs で。 core.clients.workitem.internal.fields.FieldImpl.setValue(FieldImpl.java:457) at com.microsoft.tfs.core.clients.workitem.internal.fields.FieldImpl.setValue(FieldImpl.java:389) テストで。メイン (Test.java:54)

4

1 に答える 1

0

SettingsParserTEE SDK にはありません。このクラスが何であるかはわかりませんが、バグの更新には役立ちません。これを使用すると、存在しない「10013」という名前のフィールドを更新しようとしているように見えます。

状態フィールドは と呼ばれSystem.Stateますが、単に定数を使用しCoreFieldReferenceNames.STATEて参照することもできます。

SDK に含まれているサンプルを見るとEditWorkItemByID、作業項目の編集を説明するサンプル ( ) が見つかります。そのスニペットと上に投稿したコードを適応させて、次のようなことを試してください。

WorkItem workItem = s.get(0);
workItem.getFields().getField(CoreFieldReferenceNames.STATE).setValue("Approved");
于 2013-05-03T19:02:02.600 に答える