> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Domo Finance | 実装ガイド

## Domo Finance

Domo Finance Appへようこそ。このガイドはデータを準備し、Appに接続するのに役立ちます。Domo Finance AppスイートからAppを1つのみ購入された場合は、購入していないAppについてのステップは無視してください。

Domo Finance Appの様々な部分は、財務総勘定元帳または取引データから取得します。このガイドで説明するステップに従って、Appの各部分用にデータを準備します。

**総勘定元帳にもとづく必須フィールド**

Appでは、財務総勘定元帳または取引データにもとづいた以下の基本フィールドが必須となります。

* 日付
* アカウント番号
* アカウント名
* 金額
* 予算

Appの予算セクションは非表示にすることができるので、予算データは厳密には必須ではありません。予算データがない場合は、この列は空のままにしておきます。

損益データ

Appの各セクションには2つのDataSetが必要です。1つは適切な階層がJoinされたメインデータ用で、もう1つは必要に応じて表示順序を調整するためのものです。

最初にメインのP\&L DataSetを作成します。

**ステップ1：階層を作成する**

Appを機能させるには、各ベースレベルのアカウントを親グループにロールアップする方法を、総勘定元帳にJoinする必要があります。例えば、純利益 \<- 粗利益 \<- 総収入 \<- 小売売上 \<- メンズアパレル（アカウント40390）のようにロールアップするアカウントを持つことができます。これがアカウントの階層構造です。Appは最高7レベルの階層をサポートしています。アカウント階層を総勘定元帳に簡単にJoinするには、次の方法でデータをフォーマットします。

<table class="mt-responsive-table mt-table-big" data-aura-rendered-by="33:206;a"><tbody><tr><td class="mt-noheading" colspan="1" rowspan="1"> レベル0 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル1 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル2 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル3 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル4 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル5 </td><td class="mt-noheading" colspan="1" rowspan="1"> レベル6 </td></tr><tr><td class="mt-noheading" colspan="1" rowspan="1"> 純利益 </td><td class="mt-noheading" colspan="1" rowspan="1"> 粗利益 </td><td class="mt-noheading" colspan="1" rowspan="1"> 総収入 </td><td class="mt-noheading" colspan="1" rowspan="1"> 小売売上 </td><td class="mt-noheading" colspan="1" rowspan="1" /><td class="mt-noheading" colspan="1" rowspan="1" /><td class="mt-noheading" colspan="1" rowspan="1"> メンズアパレル（アカウント4390） </td></tr></tbody></table>

レベル3とレベル6の間に空欄があることに注意します。7つのレベルが揃っていないアカウントがある場合は、親を左にグループ化し、ベースレベルアカウントを常にレベル6にするようにします。Appのデータ表に2つ以上の空欄があってはなりません。

この階層を作成する簡単な方法は、左側を最上位の親（レベル0）にすることから開始し、各親の子を順に次の列に追加し、最後にベースレベルアカウント（レベル6）に達するようにすることです。階層を総勘定元帳データにJoinして戻すことができるように、ベースレベルのアカウント（レベル6）の名前が、総勘定元帳に表示されているアカウント名と正確に一致していることを確認します。

*注記：* Cash Flow Appも購入した場合、必ず所有しているすべての財務データを含める必要があります。キャッシュフローは、P\&Lデータからの純利益カテゴリーを使用して開始時の現金を計算します。正確さを保つには、開始時以降の全データが必要です。それほど多くのデータを持つことが意味をなさない場合、まず特定の時点までの履歴データを集計し、次にそれをP\&Lデータに含めることを検討します。

**ステップ2：階層を総勘定元帳にJoinする**

階層の準備が完了したら、次にそれを総勘定元帳にJoinする必要があります。Magic ETLやMySQLなど、好きな変換ツールを使用してください。次のような結果になるはずです。

<Frame>
  <img alt="DomoFinanceImage1.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/U7eIF7W20YY38vT9/images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vONw.png?fit=max&auto=format&n=U7eIF7W20YY38vT9&q=85&s=355615a58b4dc6e790a0289340ccf595" width="974" height="291" data-path="images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vONw.png" />
</Frame>

総勘定元帳のすべての行がつながるように、階層を総勘定元帳にJoinします。

次に、追加する必要のある列がいくつかあります。これは、Appが正しくロールアップカテゴリーを作成していること、およびAppに日付によるフィルターで使用される必須フィールドがあることを確認するためです。

レベル列のそれぞれ（例：レベル0～6）に2つのパートナー列を作成する必要があります。列の名前はLevel\_TypeおよびLevel\_Operatorになります。空白にはそれぞれのレベル番号が入ります（ *注記：* 階層を作成したときにこれらの列を作成する方が簡単に感じられる場合があります。階層をJoinした後にこれらの列を作成するのではなく、まず階層とともに列を作成した後にJoinすることができます。どちらでも最適な方法を選択してください）。

まず、Level\_Type列には、2つの値（「経費」または「収入」）のいずれかが必要です。例えば、「合計経費」を1つの経費カテゴリーと考えるとき、「合計経費」がレベル2の列の値だった場合、レベル2のタイプの列を作成し、レベル2の列の値が「合計経費」の時には必ずレベル2のタイプの列に「経費」という値を割り当てます。上記が当てはまらないロールアップやアカウントについては、この値を空欄にしておいてもかまいません。また、レベル列の行に値がない場合は、その行に対するこの列も空欄のままにします。

Level\_Type列の値は、Appで分散計算がどのように決められるかを決定します。値が「経費」の場合は、予算-実測額を使用して分散計算を行い、それ以外の場合は実際の予算を計算します。

Level\_Operator列は、「+」か「-」の値のいずれかを必要とします。これは、アカウントをどのように親に集計する必要があるかをAppに伝えます。例えば、「総収入」カテゴリーが正の数で、「合計経費」も正の数であれば、「総収入」を値とした行には「+」、「合計経費」を値とした行には「-」を割り当てます。ここでも、対応する行も空欄の場合、行は空欄のままにします。レベル0はどの親カテゴリーにも追加されないので、レベル0の演算子列を作成する必要はありません。これらの列を作成すると、DataSetは次のようになります。各レベル列について：

<Frame>
  <img alt="DomoFinanceImage2.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/U7eIF7W20YY38vT9/images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vOO2.png?fit=max&auto=format&n=U7eIF7W20YY38vT9&q=85&s=afdfb1dad43b3831361fe023d6d96d5f" width="974" height="316" data-path="images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vOO2.png" />
</Frame>

データを準備する最後のステップは、Appで使用する日付に関連する列を作成することです。必須の列には、会計年度列、会計四半期列、月列があります。総勘定元帳からの日付列を使用して、次の3つの列を生成します。列は次のようにフォーマットする必要があります。

* **会計年度：** 「FY19」
* **四半期：** 「Q1」
* **月：** 1

上記のように、会計年度は会計年度の最後の2桁に「FY」を連結し、会計四半期は会計四半期の番号に「Q」を連結し、月は単純に、1月=1のように月に相当する番号にします。生成された日付列は次の例のようになります。

<Frame>
  <img alt="DomoFinanceImage3.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/U7eIF7W20YY38vT9/images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vOO3.png?fit=max&auto=format&n=U7eIF7W20YY38vT9&q=85&s=b3d0f58a4d672f6aac210eb10e9f1f8a" width="974" height="520" data-path="images/kb/ka05w0000012AeU-00N5w00000Ri7BU-0EM5w000005vOO3.png" />
</Frame>

最後に、「レベル」列を使用してDataSetを並べ替えます。階層のレベルが上位なほど優先されるようにします。例えば、MySQLでorder byステートメントは次のようになります。

ORDER BY 'Level 0', 'Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5', 'Level 6'

これらの列がすべてデータに存在すれば、DataSetの準備は完了です。P\&Lレポートで使われていない総勘定元帳データは除外する必要があるかもしれません。

**ステップ3：順序DataSetを作成する**

2番目のDataSetは、1番目のDataSetよりもずっとシンプルです。順序DataSetのスキーマは次の通りです。

<table class="mt-responsive-table" data-aura-rendered-by="33:206;a"><tbody><tr><td class="mt-noheading" colspan="1" rowspan="1"> アカウント名 </td><td class="mt-noheading" colspan="1" rowspan="1"> 親アカウント名 </td><td class="mt-noheading" colspan="1" rowspan="1"> 順序 </td></tr></tbody></table>

最初はこのDataSetを空白にしておいても構いませんが、Appにデータを接続すると、カテゴリーが希望通りの順序で表示されない場合があります。そのような場合は、このDataSetに行を追加して、ロールアップカテゴリーの順序を強制できます。このDataSetにはDomo Webformを使用することを推奨します。このツールを使うとDomo内で簡単にDataSetに変更を加えることができます。

例えば、粗利益ロールアップカテゴリーに総収入と合計経費の2つの子があって、合計経費が総収入の上に表示されており、その順序を逆にしたい場合、次のDataSetを追加します。

<table class="mt-responsive-table" data-aura-rendered-by="33:206;a"><tbody><tr><td class="mt-noheading" colspan="1" rowspan="1"> アカウント名 </td><td class="mt-noheading" colspan="1" rowspan="1"> 親アカウント名 </td><td class="mt-noheading" colspan="1" rowspan="1"> 順序 </td></tr><tr><td class="mt-noheading" colspan="1" rowspan="1"><p> 総収入 </p></td><td class="mt-noheading" colspan="1" rowspan="1"> 粗利益 </td><td class="mt-noheading" colspan="1" rowspan="1"><p> 1 </p></td></tr><tr><td class="mt-noheading" colspan="1" rowspan="1"> 合計経費 </td><td class="mt-noheading" colspan="1" rowspan="1"> 粗利益 </td><td class="mt-noheading" colspan="1" rowspan="1"> 2 </td></tr></tbody></table>

DataSetにこれらの変更を加えた後、同じ名であり、一緒にグループ化もされているすべての親アカウント名が数値的に昇順であることを確認し、DataSetを保存します。

### 貸借対照表のデータを準備する

Balance Sheet Appに対しても、P\&L Appに対するデータの準備と全く同じステップに従いますが、代わりに貸借対照表に対する階層を使用し、次のような省略を行います。

1. 貸借対照表には予算列は必要ありません。

2. 貸借対照表に「Level\_Type」列を生成する必要はありません。

3. 貸借対照表に必要ない総勘定元帳の行をフィルターで除く必要があるかもしれません。

4. 貸借対照表は累積していくため、現在の期間に前のデータがすべて加算されます。数字が正確になるように、必ずすべての財務データを含めます。それほど多くのデータを持つことがユースケースにとって意味をなさない場合、まず特定の時点までの履歴データを集計し、次にそれを貸借対照表データに含めることを検討します。

また、貸借対照表にも別の順序DataSetを作成する必要があります。

### キャッシュフローデータを準備する

P\&L Appを準備したのと全く同じステップに従い、代わりに、キャッシュフローデータの調整部分の階層を使用し、期間の開始時のキャッシュや終了時のキャッシュは含めません。キャッシュ総計はAppの中で計算されます。Appは、P\&Lデータからの純利益カテゴリーの合計と、このキャッシュフローの表示されている個々の期間までの階層からの調整を使用して計算します。このデータの省略に注意します。

1. キャッシュフローに予算列は必要ありません

2. キャッシュフローデータに「Level\_Type」列を生成する必要はありません

3. キャッシュフローに適合していないデータの行をフィルターで除く必要があるかもしれません

4. キャッシュフローは履歴による調整を使用して、指定された期間の開始時にキャッシュを計算します。正確な数値を得るためには、必ずすべての履歴データを含めて調整します。それほど多くのデータを持つことがユースケースにとって意味をなさない場合、まず特定の時点までの履歴データを集計し、それをキャッシュフローデータに追加することを検討します。

### Appにデータを接続する

データがAppのために用意されたら、Appを展開してデータを接続できます。Appのアセットにアクセスできる場合は、Asset LibraryからDomoのページにアセットを展開します。サンプルデータとともにAppが展開されている場合は、Appに移動し、Appの右上のスパナをクリックして、［カードを編集］をクリックします。

これら2つの方法から到達できるカード編集画面では、必要に応じて画面上部のAppの名前を変更することができます。その後、Appの下にスクロールダウンすると、Appが必要とする各DataSetを表す一連のタブが表示されます。購入したAppに関するタブが表示されます。P\&L Appを接続しようとしているのであれば、［PNLDATA］と書かれたタブをクリックし、DataSetピッカーを使用して、AppのP\&L部分のために用意したメインのDataSetを選択します。各フィールドを、DataSetからの対応するフィールドにマップします。［PNLORDERING］でAppのP\&L部分用に作成した順序DataSetを使用して、この処理を残りのDataSetに対して繰り返します。Balance Sheet Appを購入した場合は、［BALANCEDATA］にメインの貸借対照表DataSetを、［BALANCEORDERING］タブに作成した貸借対照順序DataSetを使用します。Cash Flows Appを購入した場合は、［CASHFLOWSDATA］にメインのキャッシュフローDataSetを、［CASHORDERING］タブにキャッシュフロー順序DataSetを使用します。上へスクロールして［保存して終了］をクリックすると、Appが利用できるようになります。

1つまたは2つのAppのみ購入した場合は、購入しなかったAppに関するタブに接続されているサンプルデータは単にそのままにしておきます。Cash Flows Appのみであれば、Cash Flows Appは開始時にP\&Lデータを使用してキャッシュを計算するので、そのデータを準備して接続する必要があります。

### Appを使用する

Appの左上のメニューをクリックして、購入したApp間を移動します。このメニューの中で財務レポートをエクスポートするボタンを見つけることもできます。各Appで、上部にあるギアアイコンをクリックして、必ず設定メニューをチェックします。ここには、数字のフォーマット、レポートの表示/非表示の切り替えセクション、Appに表示される比率とカテゴリーの設定に関する様々な設定があります。これらの設定はAppがエクスポートするファイルに持ち越されます。Appの上部にある日付セレクターを使用して、表示したい日付範囲を選択します。親アカウントを展開し/折りたたみ、子を表示/非表示にすることもできます。展開された、または折りたたまれたアカウントは、Appがエクスポートするファイルにも持ち越されます。

お疲れ様でした。

日本語
