docforce2でSalesforceのオブジェクト設計書を自動生成する

データベーススキーマを設計する場合は、ER図を書いたり何らかの設計書を書くというのが普通かと思いますが、Salesforce では簡単にオブジェクトの構造を構築することができるため、良し悪しは別にして設計書の類は作成せずに開発を進めることも多いかと思います。
しかし後から設計書を要求されたり、あるいはオブジェクト構造を確認するのにドキュメントの方がやはりわかりやすいということで設計書が欲しくなることがあります。
こんなときは、DRY原則に従って Salesforce 上のオブジェクトからドキュメントを自動生成できると便利です。 今回はそのツールの1つ、docforce2 の使い方を備忘録として残しておきます。

Javaランタイムのインストール

Java のランタイムがインストールされていない場合は、まずここからダウンロードしてインストールします。

MavensMate のインストール

MavensMate(現在は開発終了) で出力されるデータが必要になるため、ここからダウンロードしてインストールします。
MavensMate-app-v0.0.10-win-x64-setup.zipでよいでしょう。

MavensMate でデータ出力

MavensMate を起動します。
最初にワークスペースディレクトリを指定します。メニューから Settings を開き、データを置くディレクトリを Workspaces で指定します。ここでは D:\temp\mm とします。

f:id:venturenet:20180608113557p:plain f:id:venturenet:20180608113609p:plain

次に、プロジェクトを作成します。 メニューから New Project を選択して New Project のタブを開き、ワークスペース、プロジェクト名、Salesforce のユーザ名、パスワード、本番/サンドボックス/開発環境のどれであるかを指定します。
これらの情報を入力したら、Project Metadata のタブを開きます。ここで、

  • ApprovalProcess
  • CustomObject
  • Workflow

の3つを選択しますが、それぞれのツリーを開いて少し待っているとその要素が表示されるので、その中から必要なものを選択します。 ただしここでは全部選択するのが無難かもしれません。 選択したら Create Project ボタンをクリックしプロジェクトを作成します。

f:id:venturenet:20180608114331p:plain f:id:venturenet:20180608114341p:plain

プロジェクトが作成されると、ワークスペースとして指定したディレクトリにデータが出力されます。

docforce2 のインストール

GitHub - nyasba/docforce2: salesforce document generator から git で引っ張るか zip をダウンロードします。 ここでは zip でダウンロードして、D:\temp\docforce2-master に設置したものとします。

docforce2 の設定と実行

基本的には ここ に書かれている通りです。 出力対象のオブジェクトを設定するために、zip で展開したディレクトリの直下にある docforce.yml を開きます。
inputBaseDir には、先程出力したデータのパスを指定します。D:\temp\mm\<プロジェクト名>\src になります。
outputDir には出力先ディレクトリを指定します。

inputBaseDir : "D:/temp/mm/Test/src"
outputDir : "output"
resources :
    - resource :
          object : "objects/Account.object"
          approvalProcesses : 
          workflow : "workflows/Account.workflow"
          author: "test"


  • 承認プロセスがなくても approvalProcesses のキーだけは指定する
  • ワークフローがなくても、workflow のキーと値は指定する
  • インデントがずれないように注意する (ずれるとエラーになります)

という点に気をつけましょう。

設定ができたら、コマンドラインで実行します。

D:\temp\docforce2-master>gradlew run


環境、設定に誤りがなければ、これでオブジェクトごとに Excel ファイルで設計書が出力されます。