お世話になります。
VBAを使ったRedmineのチケット登録で困っています。
・やりたいこと
Redmineのチケット新規登録をExcel VBAで行いたい。
・質問したいこと
チケットのタイトルだけ指定した場合は問題なくチケットの新規登録できますが、カスタムフィールドに値をいれると「400」という戻り値が返ってきてチケットが登録できません。
カスタムフィールドに値を入れて新規チケット登録するにはどうすればいいのでしょうか?
・試したこと
テスト用のソースコードですが、下記のコードで試しています。
「ここからカスタムフィールド」と「ここまでカスタムフィールド」の間のコードをコメントアウトすると正常にチケットが登録されます。
しかし、コメントアウトを解除すると「400」というエラーが出てチケットが登録できません。
下記の記述以外に下記のような記述を85試してみましたが結果は同じでした。
<custom_field_values>
<85>カスタムなテキストフィールド</85>
</custom_field_values>
カスタムフィールドIDはRedmineの「管理」「カスタムフィールド」の項目のソースを表示させ下記の項目で調べました。
VBA
1Option Explicit 2 3Public Const REDMINE_URL As String = "https://'URL'" 4 5Public Sub Test1() 6 7 Dim requestStatus As String 8 requestStatus = addIssue( _ 9 "'APIキー'", _ 10 "追加テスト") 11 MsgBox requestStatus 12 13End Sub 14 15Public Function addIssue( _ 16 ByVal apiKey As String, _ 17 ByVal subject As String) As String 18 19 Dim sendBody As Variant 20 sendBody = "<?xml version=""1.0""?><issue>" 21 sendBody = sendBody & "<project_id>9</project_id>" 22 sendBody = sendBody & "<subject>" & subject & "</subject>" 23'ここからカスタムフィールド 24 sendBody = sendBody & "<custom_fields type=array>" 25 sendBody = sendBody & "<custom_field id=""85"">" 26 sendBody = sendBody & "<value>5</value>" 27 sendBody = sendBody & "</custom_field>" 28 sendBody = sendBody & "</custom_fields>" 29'ここまでカスタムフィールド 30 sendBody = sendBody & "</issue>" 31 32 Dim xmlHttp As New MSXML2.XMLHTTP60 33 With xmlHttp 34 .Open "POST", REDMINE_URL & "issues.xml?format=xml&?key=" & apiKey, False 35 .SetRequestHeader "Content-Type", "text/xml" 36 .Send sendBody 37 addIssue = CStr(.Status) 38 End With 39 Set xmlHttp = Nothing 40 41End Function
・環境
OS:Windows10
Excel:Office 365 ProPlus バージョン1908
Redmine:3.4.4.stable
Redmine稼働サーバーOS:不明
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。