2017.10.11

SalesforceとBacklogをつないで工数管理してみよう

皆さまこんにちは。
初投稿の石垣です。
今日はSalesforceとBacklogの連携について書きたいと思います。

Backlogによるタスク管理と工数管理

弊社ではタスク管理にBacklogを利用しています。
Backlogは操作も簡単で使いやすく、タスク管理という面では素晴らしいツールです。

ただ、工数管理という面では不足感が否めません。
Backlogはデータを「集計する」という事が苦手です。
例えばある期間の課題をまとめて実績工数が知りたい場合などは、Excelにエクスポートして自力で集計する必要があります。

Backlogでタスク管理、Salesforceで工数管理してみる

データの集計にあまり時間をかけたくないですよね。
そこでSalesforceとBacklogをつないで、Backlogでタスク管理、Salesforceで工数管理するアプリケーションを作ってみましょう。

アプリケーションの概要

Backlogの課題をSalesforceに同期し、課題ごとに実績を入力してレポート出力するアプリケーションを作成します。

必要な機能は以下のとおりです。
 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 しています。
@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に同期されるようになりました。
 実際に動かしてみると以下のように動作しますね。

課題の追加

Salesforceに登録されました。

2.Salesforce上で課題ごとの実績工数を入力する。

続いて実績を入力する仕組みを作っていきます。

実績オブジェクトの作成
 課題オブジェクトを参照する「実績」オブジェクトを作成します。

これで課題ごとに実績を入力する仕組みが出来ました。

3.実績工数を集計したレポートを出力する。

最後にレポートを作成します。
レポート作成の詳細は割愛しますが、日付、課題、担当者などの切り口でレポートを作成する事で、実績工数を簡単に集計できます。

まとめ

これでBacklogでタスク管理、Salesforceで工数管理する仕組みが出来ました。
さらにパラメータの追加、SalesforceからBacklog方向への同期など、拡張できる機能はまだまだありますね。

このように既存のWEBサービスをもう少し使いやすくしたいという時に、Salesforceを選択することはとても有効です。
Salesforceには無料のDeveloperEditionがありますので、まずはアイデアを試して業務改善につなげていきましょう。
34 件
     
  • banner
  • banner

関連する記事