570-60 | 請求管理
このフローでは、毎月固定の請求書作成するためのデータを作成します。(サブスクリプション契約における請求など)
なお、この演習は下記の請求シチュエーションを前提に構成されています。
- スケジュール実行で末日に自動で請求データを作成
- 請求方式は都度請求ではなく締め請求方式
- 月末に当月分を締めてデータを作成する
- 請求対象は、契約管理アプリの「契約終了日」の期間内のレコード
入力アプリのフィールド構成
契約管理アプリ
- 各顧客の契約情報が登録されている
- 契約内容テーブルに契約内容の明細が登録されている
商品マスタ
- 各商品の月払い/年払いの料金が登録されている
- 契約管理アプリの契約内容テーブルから参照されている
出力アプリのフィールド構成
請求管理アプリ
- 各顧客の請求情報が月ごとに出力される
- 請求明細テーブルに請求料金の詳細が出力される
1.入力アプリを設定
- 入力アプリコマンドを追加し、アプリの選択で「契約管理」アプリを選択する
- フィールドの選択で「契約番号」「顧客名」「契約開始日」「契約終了日」「契約種別」「部署」「担当者」「郵便番号」「住所」「契約内容」を選択する
入力アプリコマンドで契約管理アプリを追加
2.当月請求対象のレコードを抽出する
契約管理アプリに登録された、契約種別(月払い/年払い)、契約開始日と契約終了日から当月請求対象のレコードを抽出します。
- フィルタコマンドを追加する
- 数式を選択して、下記の数式を設定する
OR(AND(契約種別=”月払い”,契約終了日=””),AND(契約種別=”月払い”,契約終了日<>””,契約終了日>=TODAY()),AND(契約種別=”年払い”,MONTH(契約開始日)=MONTH(TODAY()),契約終了日=””),AND(契約種別=”年払い”,MONTH(契約開始日)=MONTH(TODAY()),契約終了日<>””,契約終了日>=TODAY()))
*数式では下記の条件いずれかに合致するレコードを抽出しています
・契約種別が「月払い」、かつ契約終了日が未登録
・契約種別が「月払い」、かつ契約終了日に当日以降の日付が登録されている
・契約種別が「年払い」、かつ契約開始日の月が当月と等しい、かつ契約終了日が未登録
・契約種別が「年払い」、かつ契約開始日の月が当月と等しい、かつ契約終了日に当日以降の日付が登録されている 当月請求対象を抽出
3.テーブル展開コマンドで契約内容をレコードに展開する
契約管理アプリの契約内容テーブルをレコードに展開します。
- テーブル展開コマンドを追加して、レコードに変換するテーブルに「契約内容」を選択する
- レコードに保持するフィールドに「商品ID」「商品名」「商品区分」を選択する
契約内容テーブルをレコードに展開 展開した結果(プレビュー)
4.商品マスタを結合する
契約情報に商品マスタを結合して料金情報を取得します。
- 入力アプリコマンドを追加し、アプリの選択で「商品マスタ」アプリを選択する
- フィールドの選択で「商品ID」「商品名」「商品区分」「月払い」「年払い」を選択する
入力アプリコマンドで商品マスタアプリを追加 - アプリ結合コマンドを追加して、当月請求対象と商品マスタをそれぞれ線でつなぐ
アプリ結合コマンドに当月請求対象と商品マスタを線でつなぐ - 元になるアプリに「契約内容を展開」、結合するアプリに「商品マスタ」を選択する
※選択できるアプリとして表示される名称はアプリ結合コマンドにつないだコマンド名が表示されます コマンド名 - 結合方法で「左外部結合」を選択する
- 条件フィールドに「商品ID」を選択する
当月請求対象と商品マスタを結合 結合した結果(プレビュー)
5.商品マスタから料金を取得する
- データ編集コマンドを追加して、結果を保存するフィールドに「新しいフィールドを作成」を選択して、新しいフィールド名に「料金」を入力する
- 編集方法で「数式」を選択して、下記の数式を設定する
IF(契約種別=”月払い”,月払い,年払い)
料金の取得
6.フィールドの構成を調整する
アプリ結合コマンドの結果では、元になるアプリと結合するアプリの両方のフィールドが構成されます。そのため、フィールドの構成を調整します。
- フィールド選択コマンドを追加する
- 使用するフィールドに「契約番号」「顧客名」「部署」「担当者」「郵便番号」「住所」「契約開始日」「契約終了日」「契約種別」「商品名」「商品区分」「料金」を選択する
フィールド選択 調整した結果(プレビュー)
7.テーブル作成コマンドで請求明細を作成する
- テーブル作成コマンドを追加する
- レコードに保持するフィールドに「契約番号」「顧客名」「部署」「担当者」「郵便番号」「住所」「契約開始日」「契約終了日」を選択する
- 新しいテーブル名に「請求明細」、テーブルに保持するフィールドに「商品名」「商品区分」「料金」を選択する
請求明細をテーブル作成 テーブル作成した結果(プレビュー)
8.請求日と支払期限を設定する
請求日を設定する
- データ編集コマンドを追加して、結果を保存するフィールドに「新しいフィールドを作成」を選択して、新しいフィールド名に「請求日」を入力する
- 編集方法で「数式」を選択
- 編集内容で数式に下記の数式を設定する
EOMONTH(TODAY(),0)
請求日を設定
支払期限を設定する
- データ編集コマンドを追加して、結果を保存するフィールドに「新しいフィールドを作成」を選択して、新しいフィールド名に「支払期限」を入力する
- 編集方法で「数式」を選択
- 編集内容で下記の数式を入力する
EOMONTH(請求日,1)
支払期限を設定
9.出力アプリを設定する
- 出力アプリコマンドを追加して、アプリの選択で「請求管理」アプリを選択する
- 出力方式に「更新」を選択し、「更新または追加」オプションを有効にする
- データ編集フローのフィールドで、アプリのフィールドと対になるデータ編集フローのフィールドを選択する
- 更新キーで「契約番号」「請求日」を有効にする
出力アプリの設定
10.出力結果を確認する
「請求管理」アプリに当月の請求情報が自動で出力できるようになりました
サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/pratical/dt570-60periodic-invoice.zip