インポート. 皆さまこんにちは。アプレッソ開発部の佐々木です。 今回は、DataSpiderを使ってRedmineで管理されているチケットを読み取り、Excelファイルに出力してメール送信するスクリプトをご紹介したいと思います。, Redmineとは、プロジェクト管理、進捗管理、情報共有等で利用されているオープンソースのプロジェクト管理ソフトウェアです。 Redmineは、実施するべき作業、修正するべきバグなどのタスクを「チケット」としてプロジェクトに登録します。つまり、1件のタスクは1件のチケットとして、タスクの内容・優先度・担当者・期日・進捗状況などをRedmineで管理します。, チーム内でRedmineの情報を参照する場合はそのままWeb画面にアクセスすればいいですが、進捗報告や工数を集計して顧客にRedmineの情報を公開する場合、RedmineのWeb画面をそのまま見せるのではなく、ファイルに出力してから見せることがあります。 Redmineには、チケットの一覧をCSVやPDFなどの形式でエクスポートできるほか、 XLS Exportというプラグインを導入することでExcel形式でエクスポートすることも可能ですが、エクスポートされる内容はシンプルなリスト形式で履歴情報が無く、エクスポート後に集計や整形といった手間がかかったりします。 このような手間を軽減するために、チケットの取得、加工、Excelファイルへの出力、そしてExcelファイルをメールに添付して送信するという一連の処理をDataSpiderで自動化してみたいと思います。, RedmineにはREST APIが公開されていますので、DataSpiderのRESTアダプタを使いRedmineのREST APIを呼び出してチケットを取得します。取得したチケットを加工(フィルタ、クレンジングなど)した後、Excelファイルに出力してメールに添付して送信するというところまでやってみます。 次項では、DataSpiderのスクリプトの作成について説明していきます。スクリプトの処理すべてを説明すると今回の記事ではとても書き切れないのでポイントになる処理に絞って説明していきます。, チケットの[履歴]の追加と、強調したい項目(「期日」と「進捗率」)の背景色を変えて、XLS Exportとは異なるオリジナルのExcelレポートを作成してみます。, RESTアダプタのグローバルリソースでは、[URL]にRedmineのURLを入力します。, Redmine REST APIの認証方式は、ユーザ/パスワードによるBasic認証とAPIアクセスキーによる認証の2つの方式がありますが、Basic認証の場合、パスワードの保存が分散されて管理が煩雑になるので、今回はAPIアクセスキーによる認証を使います。 APIアクセスキーの取得は、Redmineの画面で[管理]-[設定]-[認証]タブを開き、[ RESTによるWebサービスを有効にする]にチェックを入れます。このチェックを入れることで、APIアクセスキーによる認証が利用できるようになります。 APIアクセスキーは、Redmineの画面で右上にある[個人設定]を開き、画面右にある「APIアクセスキー」の「表示」ボタンを押下することで取得できます。 取得したAPIアクセスキーは、RESTアダプタの各処理の[ヘッダ設定]タブにある[リクエストヘッダ]に設定します。設定するリクエストヘッダの[名前]と[値]は以下の通りです。, [format]はレスポンスのデータ形式を指定します。「json」を指定した場合JSON形式、「xml」を指定した場合はXML形式となります。RESTアダプタは両方の形式に対応していますが、ここでは「xml」を指定します。 RESTアダプタの「GET実行」処理の設定画面は以下のようになります。 [必須設定] オプションで以下のパラメータを[クエリパラメータ]で指定します。, 設定画面のoffsetパラメータの値が ${offset}になっていますが、これは「offset」というスクリプト変数を参照していることを表します。チケット一覧の取得では、一回のリクエストで取得できるチケットの上限はlimitの値に依存します。対象のプロジェクトがlimitの値よりも多く存在する場合、チケット一覧の取得処理を複数回に分けて行う必要になります。このとき、取得したチケットの数をoffsetに記録しておくことで、それまで取得したチケットをスキップしてチケット一覧取得処理を開始することが可能になります。 上記設定で「GET実行」処理を実行すると、レスポンスは以下のようなXMLデータになります。, issuesの子要素であるissue要素は、取得したチケットの数分出現します。このデータを、後続の分割繰り返し処理でissue要素ごとに分割し、チケットを一件ずつ処理します。, issue要素ごとに分割し、その中でチケットのIDを取得します。そして、取得したチケットIDをスクリプト変数に代入して、後続のRESTアダプタの「GET実行」処理の[パス]でスクリプト変数を参照します。 RESTアダプタの「GET実行」処理の設定画面は以下のようになります。 [必須設定] 今回は、チケットの履歴を取得するので、[クエリパラメータ]で「 include=journals」を指定します。 上記設定で「GET実行」処理を実行すると、レスポンスは以下のXMLデータになります。, 1つのjournal要素が1つの履歴を表しており、journals要素の子要素として履歴の数分出現します。journal要素の主な子要素、属性の説明は以下のとおりです。, Excelアダプタの「書き込み」処理で、1件ずつ分割されたチケットデータを挿入します。書き込み先のExcelファイルは、予め作成したテンプレートのExcelファイルをコピーしたものになります。 Excelアダプタの「書き込み」処理の設定画面は以下のようになります。 [必須設定] [書き込み設定], 一覧取得したすべてのケットをExcelファイルに書き込んだら、次の処理でメールに添付して送信します。メール送信にはメールアダプタの「1通メール送信」処理を使います。 作成したファイルをメール送信処理で添付するというパターンはDataSpiderでは数多く採用されています。 DataSpiderデザインパターンβ 第8回 設計パターン 「Mail&Excel Data Integration」でもご紹介していますので、そちらの記事もご一読いただければと思います。 メールアダプタの「1通メール送信」処理の設定は以下のようになります。 [必須設定] [メッセージ] [添付ファイル] スクリプトの完成イメージは以下のようになります。, スクリプトを実行し処理が成功すると、メールアダプタの「1通メール送信」処理で指定した宛先に「redmine_issues.xls」というファイルが添付されます。添付されたファイルの内容は以下のようになります。 このスクリプトを日次スケジュールトリガーで実行することで、Redmineからのレポートが1日1回自動でメール送信されるということも可能になります。, RESTアダプタを使うことでRedmineのデータを取得することができました。 今回利用したRedmineのREST APIはGETのみでしたが、チケットの登録や更新といったPOSTの処理も提供されているので、Redmineと別のシステムとの相互連携もDataSpiderで実現可能だと考えます。 もし、すでにDataSpiderを使ってRedmineと連携している方がいましたら、是非コメントを残していただけると幸いです。また、Redmineでこんな連携ができるともっと便利なんだけど、みたいなご意見もお待ちしております!, DataSpiderデザインパターンβ 第8回 設計パターン 「Mail&Excel Data Integration」, DataSpider Servista 3.1 Service Pack 1 新機能「REST アダプタ」のご紹介, 一回のリクエストで取得するチケット数の上限(デフォルトは「25」、最大値は「100」). そこで、python3のライブラリ「python-redmine」を使用した「作業時間の記録」の投入方法を記録してみます。 python-redmineでredmineを操作. プルダウン選択が面倒くさいですね。 オプション. Why not register and get more from Qiita? 作業時間. Java/Scala/Python/TypeScript. 追記: 既存のチケットを親チケットとして指定するには、番号の前に#をつける, JVM系言語など、静的型付け言語が好き。低レイヤーのパフォーマンスについて興味があります。 ※CSVの中にある行数を指定します(ヘッダーはカウントしない)。

動作環境:redmine-3.3.3-1. Redmine. Redmine上で継続的に工数の入力をすると、作業時間記録の 詳細 でプロジェクトごとに要した作業時間の合計を見ることができます。.

※違う項目名にもできるが面倒なので一緒にしましょう, 親チケット列を記入します。 グループ条件: 合計: 時間 予算 開発規模[KStep] 適用 クリア 保存. ンタックスハイライトの対応形式, 「はじめてのRedmine使いこなし術」を電子書籍で出版(無料ダウンロード可), Redmineヘッドライン 月刊まとめ(2020å¹´10月), 【毎月更新】リリース前の新機能を先行チェック!「プロジェクトの削除」権限追加など(2020å¹´9月コミット分), Redmineヘッドライン 月刊まとめ(2020å¹´9月), Redmineヘッドライン 月刊まとめ(2020å¹´8月), ファーエンドテクノロジー株式会社, アクセス解析ツールの利用について, Apache (Railsの実行にはPassengerを使用).

プロジェクト; 活動; チケット; 作業時間; ガントチャート; ニュース; 時間を記録 操作. 開始日や期日など日付は年・月・日をハイフンでつなげた形式(例: 2015-12-31)で入力してください。これ以外の形式だとインポート時にエラーが発生します。 ※Excelの場合、「セルの書式設定」→「ユーザー定義」で「yy… 結果の出力. InputとOutputの習慣化とIT業界の活発化を目的として活動しております。. 詳細; レポート; 時間: 18118.90. 子チケットを作る場合. 右側のインポートリンク 2020 bitware(ビットウェア) All Rights Reserved. 選択された項目. 2020-02-16 23:11 • 分類: 4.1, インストール・設定 • 前田剛 Ad: Redmineのクラウドサービス My Redmine で、いつでもどこでもプロジェクト管理.

By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. Redmine 3.4.0の200件の機能追加・修正の中から新機能63件をピックアップして紹介します。 3ページ目(全5ページ中)では8つのカテゴリ(My page, Permissions and roles, Project settings, REST API, Roadmap, Ruby support, Search engine, Text formatting)から12件を取り上げます。 ンタックスハイライトの対応形式, 「はじめてのRedmine使いこなし術」を電子書籍で出版(無料ダウンロード可), Redmineヘッドライン 月刊まとめ(2020å¹´10月), 【毎月更新】リリース前の新機能を先行チェック!「プロジェクトの削除」権限追加など(2020å¹´9月コミット分), Redmineヘッドライン 月刊まとめ(2020å¹´9月), Redmineヘッドライン 月刊まとめ(2020å¹´8月), ファーエンドテクノロジー株式会社, アクセス解析ツールの利用について, ステータスを単独のカラムで表示, チケット1件分の行の高さが固定に. Raspberry Piでモバイルルーターを作成する-wvdial,hostpad, dnsmasq, ddコマンドの進捗をgdd status=progressで可視化かつ高速に書き込みを行う, Git 2.23.0でswitchとrestoreコマンドが追加!git checkoutから乗り換え. 項目: 利用できる項目. 概要. 時間管理(作業時間)機能を使って、特定のチケットまたはプロジェクトに対して、どれくらいの工数をかけたのか記録し、その時間の集計をすることができます。「作業時間」を入力すると、その作業がどのような活動なのか「作業分類」により分類が可能になるほか、作業に対するコメントも付けることができます。予定工数を入力することにより、プロジェクトマネージャーは、プロジェクトの見積もりに改良を加えたり、各ユーザーの進捗をフォローしたりすることができます。 作業時間にはユーザー名 … What is going on with this article? インポートしたいチケットの情報を記述したCSVファイルを作成してください。 1. チケットの項目名と同じCSV項目名のCSVを作成する Redmine 4.1をUbuntu Server 18.04.3 LTSにインストールする手順 . チケットの更新時に … 検索. CSV作成 . Help us understand the problem. RedmineにCSVファイルのデータをチケットとして一括で取り込むプラグイン「Redmine Issue Importer」をご紹介したいと思います。CSVファイルを一括でインポートできるようになることで、チケット作成やデータ移管の手間を Feature #9112: Libravatar and Gravatar-compatible servers support Redmineでユーザーのアイコンを表示するためにアイコンの管理サービス「Gravatar」が使われていますが、代わりにLibravatarや自前で立ち上げたGravatar互換サーバを利用できるようになりました。Gravatar利用時のプライバシーが気に … フィルタ . つまり、既にRedmineへ起票されているチケットに対する子チケットをCSVインポートはできません。 フィルタ追加. ↓のブックマークレットで全部のプルダウンを自動的に選択してくれます。, you can read useful information later efficiently. 作業時間: レポート と同じ検索画面を使用します。.

え?そんなの無い?Redmineの管理者アカウントでログインして管理⇒ロールと権限⇒チケットのインポートにチェックON⇒保存で出てきます。, チケットのインポートのフィールドの対応関係を選択してインポートボタン。 作業時間の記録は、チケットまたはプロジェクトに対して行います。原則としてはチケットに対して記録しますが、対応するチケットがない作業などは、プロジェクトに対して作業時間を記録することもできます。 作業時間を記録する方法は4つあります。1つ目と2つ目はチケットに対して記録する方法です。3つ目と4つ目の方法は、チケットまたはプロジェクトに対して作業時間を記録することができます。 1. チケットの項目名と同じCSV項目名のCSVを作成する ※違う項目名にもできるが面倒なので一緒にしましょう. Redmineは、実施するべき作業、修正するべきバグなどのタスクを「チケット」としてプロジェクトに登録します。つまり、1件のタスクは1件のチケットとして、タスクの内容・優先度・担当者・期日・進捗状況などをRedmineで管理します。 チケットのエクスポートをDataSpiderで自動化 . redmineベースのプロジェクト管理を行っているチームでは、redmineの作業記録を毎日入力する必要があります。, 基本的には、毎日異なった記録を入力する日課になるはずですが、立場によっては毎日同じ稼働を記録することとなります。, そこで、python3のライブラリ「python-redmine」を使用した「作業時間の記録」の投入方法を記録してみます。, 今回使用するライブラリ「python-redmine」は、名前のとおりredmineを操作するためのライブラリとなります。, redmineのapiキーを利用することでredmineへデータを投入することができます。, 例として、チームに所属している扱いであるが作業はしておらず、管理者から稼働報告が求められている立場の場合、「python-redmine」を活用することができます。, このような場合、毎日固定でデータ投入する時間がもったいないのでpython-redmineでAPIを使用したデータ投入を行ってみました。, 土日であれば、週単位で簡単に導き出すことができますが、この手のものは祝日判定が厄介です。, 確実な土日祝日判定を行うために内閣府が公開している「国民の祝日」のcsvをダウンロードすることで対応することにしました。, 「japan_holiday.py」をインポートし、「holiday.is_holiday」関数へ「yyyy/mm/dd」形式で日付を渡すことで、土日祝日なのかを判定することができます。, Redmineには、redmineのURLとredmineにて発行したAPIを記述します。, 今回は作業記録なので、「redmine.time_entry.new()」を使用することで、作業記録の型を作ることができます。, その後は、プロジェクトIDである「project_id」や作業時間である「hours = 8.0」などを代入します。, ポイントとしては、カスタムフィールドの入れ方は、プロパティと値をセットにして投入する必要があるため、事前にカスタムフィールドのIDとカスタム値を把握する必要があります。, 値の代入を完了したら、「save()」によりredmineへ登録することができます。, 例として、2月の場合「2月28日」までのループを「calendar.monthrange(now.year,now.month)」により実現することができます。, ここまで出来上がったら、cronなどで月の1日にpythonの実行を設定しておけば、完全自動化で作業記録を導入することが可能となります。, 札幌を拠点とするプログラマーの技術ブログです。

ステム管理者向けガイド — 高度な設定, Redmineのバックアップとリストア, プロジェクトに対する管理操作, ファーエンドテクノロジー株式会社, 作業時間の一覧(ページネートされたもの), Atom フォーマットおよびCSV でのエクスポート用ボタン.