MS Project と Redmineの連携
MS Project と Redmine を連携させてみた
はじめに
プロジェクトの管理をしなければならなくなった。
これまでは一開発者だったんだけど、プロジェクトの同時進行が増えてきたために、ついにそのお役が回ってきてしまった感じ。
まぁいい機会なので頑張ってみようと思う。
で、Redmineは高機能だけど、プロジェクト管理には痒いところに手が届かない感がある。
プラグインもいろいろあるけど、なかなかうまく動いてくれなかったり、自動計算とかはあんまりやってくれないし。
ということで、MS Projectと連携させてみることにした。
方法
まずMS ProjectでWBSを作った。
バージョンを工程とし、詳細設計、製造/単体試験に分けて、さらに機能毎などタスクに落としこむ。
一通りタスクが出来上がったらExcelに貼っつけてRedmineにインポートする。
CSVとかでやってもいいけど、今回はこの便利ツールを使った。
Redmineチケット★一括★の詳細情報 : Vector ソフトを探す!
で、登録されたチケットのIDをMS Project側にも書いておく。
��そういう意味でも上記ツールが楽)
MS Project側はマクロを設定し、REST API経由でチケットの情報を取得してくるように設定。
取得した情報は適宜MS Project側に貼り付けていく。
自分が取得しているのはとりあえず作業時間とトラッカーとステータスくらい。
まだ他にも必要になるかも。
運用
運用イメージはこんな感じ。
こうすると、作業管理はRedmineでやりつつプロジェクトの状況を可視化したいときはMS Projectから素敵レポートを出力することができる。
とはいえ、MS Projectの使い方自体を勉強中なのでこれでうまくいくのかは未知数。
情報取込のマクロはこんな感じ。
拾い物を切り貼りしたやっつけです
Const API = "http://server/redmine/"
Const Key = "key=aaaaabbbbbccccc1234567890123457890"
' ###################################################################
' #
' # Redmineから情報を取得する。
' #
' # チケット番号が入力されたタスクを、Redmineの情報で更新する
' # チケット番号が入力されていないタスクは無視される
' #
' ###################################################################
Sub ImportRedmineData()
Dim prj As Project
Set prj = ThisProject
Dim tsk As Task
Dim ticket As Object
' すべてのタスクを対象に動かす
For Each tsk In prj.Tasks
' チケット番号が入力されている場合
If tsk.Text1 <> "" Then
Set ticket = GetXmlData(API + "issues/" + tsk.Text1 + ".xml?" + Key)
'説明
tsk.Text6 = ticket.getElementsByTagName("description").Item(0).text
'トラッカー
tsk.Text2 = ticket.getElementsByTagName("tracker").Item(0).getAttribute("name")
'ステータス
tsk.Text4 = ticket.getElementsByTagName("status").Item(0).getAttribute("name")
'トラッカー
tsk.ActualWork = ticket.getElementsByTagName("spent_hours").Item(0).text
If ticket.getElementsByTagName("parent").Length > 0 Then
tsk.Text5 = ticket.getElementsByTagName("parent").Item(0).getAttribute("id")
End If
End If
Next
End Sub
コメント
コメントを投稿