40
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「docforce2」salesforceオブジェクト設計書作成ツール

Posted at

salesforceのオブジェクト構成をExcel設計書に出力するツールを作ったので公開します。
https://github.com/nyasba/docforce2

@junojisanさんのdocforceという設計書出力ツールも便利ではあったのですが、オブジェクト一覧だけでは手で設計書を書く部分も多かったため自作しました。そのため、docforce 2と名付けています。

作った背景

salesforceの開発では設計書をきっちり書いてから実装とはせずに、実装を終えてから必要に応じて後で設計書を起こしていることが多いです。そういったケースでは実装から設計書が起こすことができれば、

  1. 設計書の不備が発生しない
  2. 設計書作るコストも不要
  3. その設計書で設定内容を俯瞰して妥当性をチェックできる

というメリットばかりだということに気づき、作り始めました。

出力できる設計書

設計書の構成

オブジェクト単位の設計書としています。シートの構成は以下の通り。

  • 表紙
  • 改版履歴
  • オブジェクト情報
  • カスタム項目
  • 入力規則
  • 承認プロセス
  • ワークフロールール
  • ワークフローアクション

いわゆるエンタープライズでお客様に設計書を納品することを意識して作成しています。

ここから設計書サンプルの紹介なのですが、2016年12月に行われたsalesforce world tourでのminihack課題1のアプリケーションのようなものを想定しています(多少パタンは増やしてます)
https://developer.salesforce.com/ja/worldtour2016/minihacks

表紙

image

改版履歴

現時点でこれは単なる空のシートです。実際に使いだすと改版履歴のメンテが面倒なので、ツールのつくりを変えようかと考えてはいます。
image

オブジェクト情報

オブジェクトの情報に加えてレコードタイプもここに並べて表示できるようにしています。
image

カスタム項目

以下の項目に対応しています。

  • Name項目
  • テキスト
  • テキストエリア
  • ロングテキストエリア
  • 数値
  • 通貨
  • 選択リスト
  • 複数選択リスト
  • 自動採番
  • 日付
  • 日付/時間
  • チェックボックス
  • 電話番号
  • 上記の数式項目

一覧性を重視しているのでラベルが分かりにくいとかはあるかもしれません。
image

入力規則

image

承認プロセス

ここが一番作りこんだところです。salesforceの画面そのままといえばそうなのですが、複雑な承認プロセスの場合は設計書レベルで違うと気づくことが多くあり、品質向上に役立っています。
image

複数の承認プロセスがある場合はシートが分かれて出力されるようにしています。

ワークフロールール

これは出張申請では使っていなかったので、別のサンプルです。
image

ワークフローアクション

項目自動更新とメールアラートに対応しています。アウトバウンドメッセージは対象外。

image

ツールの構成

salesforceからmavensmateやforce.com移行ツールを使ってメタデータXML(object,approvalprocess,workflowの3種類)を取得し、それらを設定ファイルに基づいて変換してpoiでexcel出力しています。メタデータの変換はgroovyがうまく活用できたように思えます。

image

使い方

  1. docforce.ymlを編集
  2. ./gradlew run でoutput配下に出力される

./gradlew run -Pconffile=/path/to/pdocforce.ymlのように任意のパスにある設定ファイルを指定することも可能

動作環境

Javaインストール済

設定ファイル:docforce.yml

inputBaseDir

メタデータファイルのパスを指定する。必須。

outputDir

Excelの出力先ディレクトリを指定する。設定しなかった場合、outputディレクトリに出力される

resource

カスタムオブジェクト単位で指定する。複数指定可。

キー 説明
object オブジェクトのメタデータファイルのinputBaseDirからのパス
approvalProcess 承認プロセスのメタデータファイルのinputBaseDirからのパス。複数指定可
workflow ワークフローのメタデータファイルのinputBaseDirからのパス
author   タイトルシートに記入される作成者(会社名など)

サンプル

inputBaseDir : "src/test/resources/"
outputDir : "output/test"
resources :
    - resource :
          object : "object/Travel_Request__c.object"
          approvalProcesses :
            - "approvalProcess/Travel_Request__c.TravelRequestApprovalProcess.approvalProcess"
          workflow : "workflow/Travel_Request__c.workflow"
          author: "nyasba"
    - resource :
          object : "object/HolidayRequest__c.object"
          approvalProcesses :
          workflow : "workflow/HolidayRequest__c.workflow"
          author: "nyasba"

今後の話

改版履歴や設定ファイルについては継続的に使っていくにはまだまだ面倒な部分が多いと感じているので適宜開発はしていこうと考えています。
あわせて、force.com移行ツールとセットで活用していく流れは社内展開時にも必要になりますので、githubに手順を書いていきます。もし利用いただける方がいらっしゃいましたらフィードバックいただけると励みになります。

40
22
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?