皆さまこんにちは。
初投稿の石垣です。
今日はSalesforceとBacklogの連携について書きたいと思います。
初投稿の石垣です。
今日はSalesforceとBacklogの連携について書きたいと思います。
Backlogによるタスク管理と工数管理
弊社ではタスク管理にBacklogを利用しています。
Backlogは操作も簡単で使いやすく、タスク管理という面では素晴らしいツールです。
ただ、工数管理という面では不足感が否めません。
Backlogはデータを「集計する」という事が苦手です。
例えばある期間の課題をまとめて実績工数が知りたい場合などは、Excelにエクスポートして自力で集計する必要があります。
Backlogは操作も簡単で使いやすく、タスク管理という面では素晴らしいツールです。
ただ、工数管理という面では不足感が否めません。
Backlogはデータを「集計する」という事が苦手です。
例えばある期間の課題をまとめて実績工数が知りたい場合などは、Excelにエクスポートして自力で集計する必要があります。
Backlogでタスク管理、Salesforceで工数管理してみる
データの集計にあまり時間をかけたくないですよね。
そこでSalesforceとBacklogをつないで、Backlogでタスク管理、Salesforceで工数管理するアプリケーションを作ってみましょう。
そこでSalesforceとBacklogをつないで、Backlogでタスク管理、Salesforceで工数管理するアプリケーションを作ってみましょう。
アプリケーションの概要
Backlogの課題をSalesforceに同期し、課題ごとに実績を入力してレポート出力するアプリケーションを作成します。
必要な機能は以下のとおりです。
1.Backlogの課題をSalesforceに同期する。
2.Salesforce上で課題ごとの実績工数を入力する。
3.実績工数を集計したレポートを出力する。
では作成していきます。
必要な機能は以下のとおりです。
1.Backlogの課題をSalesforceに同期する。
2.Salesforce上で課題ごとの実績工数を入力する。
3.実績工数を集計したレポートを出力する。
では作成していきます。
1.Backlogの課題をSalesforceに同期する。
課題オブジェクトの作成
まずはBacklogの課題を同期する「課題」オブジェクトを作成します。
Web Service API の実装
BacklogにはWebhook機能が用意されていますので、そちらを利用して課題の同期を行います。
まずはBacklogからのリクエストパラメータを保持するクラスを作成します。
public with sharing class BacklogParameter { public Project project ; public Content content ; public class Project{ public String projectKey ; } public class Content { public String summary ; public String key_id ; public String description ; public Status status ; } public class Status { public String name ; public String id ; } }
BacklogParameter.java
次にBacklogからコールするAPIを作成します。
JSON.deserialize()によりリクエストパラメータを先ほどのクラスに変換します。
変換後、課題(Issues__c)オブジェクトにパラメータを渡して insert しています。
JSON.deserialize()によりリクエストパラメータを先ほどのクラスに変換します。
変換後、課題(Issues__c)オブジェクトにパラメータを渡して insert しています。
@RestResource(urlMapping='/put_issues') global with sharing class BacklogAPI { @HttpPost webservice static void doPost(){ RestRequest req = RestContext.request; BacklogParameter params = (BacklogParameter)JSON.deserialize(req.requestBody.ToString(),BacklogParameter.class); Issues__c issues = new Issues__c(); issues.Name = params.project.projectKey + '-' + params.content.key_id ; issues.summary__c = params.content.summary ; issues.description__c = params.content.description ; issues.status__c = params.content.status.name ; insert issues ; } }
BacklogAPI.java
Web Service APIの公開
次にAPIを公開するためにサイトを構築します。
詳細は以下の記事に記載がありますのでご参照ください。
https://www.terrasky.co.jp/blog/2017/170208_001980.php
Backlog側の設定
続いてBacklogの設定です。
Backlogにログインし、「プロジェクト設定 > Webhook」と進みます。
「Webhookを追加する」ボタンを押下し、以下を設定します。
Webhook名・・・・ <任意>
WebHook URL・・・https://<サイトURL>/services/apexrest/<urlMapping>
通知するイベント・・「課題の追加」
※urlMappingはWebServiceの@RestResourceで指定した設定
以上で準備完了です。
動作確認
以上の設定で、Backlogに課題を追加するとSalesforceに同期されるようになりました。
実際に動かしてみると以下のように動作しますね。
2.Salesforce上で課題ごとの実績工数を入力する。
続いて実績を入力する仕組みを作っていきます。
実績オブジェクトの作成
課題オブジェクトを参照する「実績」オブジェクトを作成します。
これで課題ごとに実績を入力する仕組みが出来ました。
3.実績工数を集計したレポートを出力する。
最後にレポートを作成します。
レポート作成の詳細は割愛しますが、日付、課題、担当者などの切り口でレポートを作成する事で、実績工数を簡単に集計できます。
レポート作成の詳細は割愛しますが、日付、課題、担当者などの切り口でレポートを作成する事で、実績工数を簡単に集計できます。
まとめ
これでBacklogでタスク管理、Salesforceで工数管理する仕組みが出来ました。
さらにパラメータの追加、SalesforceからBacklog方向への同期など、拡張できる機能はまだまだありますね。
このように既存のWEBサービスをもう少し使いやすくしたいという時に、Salesforceを選択することはとても有効です。
Salesforceには無料のDeveloperEditionがありますので、まずはアイデアを試して業務改善につなげていきましょう。
さらにパラメータの追加、SalesforceからBacklog方向への同期など、拡張できる機能はまだまだありますね。
このように既存のWEBサービスをもう少し使いやすくしたいという時に、Salesforceを選択することはとても有効です。
Salesforceには無料のDeveloperEditionがありますので、まずはアイデアを試して業務改善につなげていきましょう。
34 件