570-70 | 請求管理
本シナリオは、こちらの記事で公開している内容を詳しく解説したものです。
このフローでは、請求を複数回に分けて行う場合のデータ作成について解説します。
契約アプリに入力する請求情報を元に請求データを自動作成します。
なお、この演習は下記の請求シチュエーションを前提に構成されています。
- 末日にスケジュール実行し自動で請求データを作成
- 請求方式は都度請求ではなく締め請求方式
- 末日締め
- 当月請求対象の請求がある場合にのみ請求データを自動作成
入力アプリのフィールド構成
契約管理アプリ
- 契約商品、金額、支払回数をはじめとする契約情報が登録されている
- 各請求回の請求金額や請求日をテーブル内に登録する
入力したデータを元に請求データを作成するため、正しく入力することが必須
入金管理アプリ
- 各顧客の入金情報が登録されている
請求管理アプリ
- 各顧客の月ごとの請求情報が登録されている
- 契約管理アプリに登録した請求情報(テーブル)の数分だけ請求月にレコード作成する
- 全請求情報をテーブルに記載する
1.当月の請求に必要な基本情報を設定する
- 入力アプリコマンドを追加し、アプリの選択で「570-70 契約管理」を選択する
- フィールドの選択で次のフィールドを選択する
・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数 ・請求情報
プレビューはこちらです。契約管理アプリでは、請求情報をテーブルに登録しています。
テーブルに登録した支払い一覧を展開する
契約管理アプリのテーブルに入力した請求情報をレコードに展開します。
- テーブル展開コマンドを追加する
- 次のように設定する
レコードに変換するテーブル:請求情報
レコードに保持するフィールド:請求回、日付、請求額
※日付はフィールド名を「請求予定日」に変更する
プレビューで確認するとこのような状態です。
請求予定日を基準に年月を抽出する
請求予定日から年月を抽出します。ここで抽出する年月は、次のステップで今回請求データに絞り込むために作成します。
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「年月」という新しいフィールドを作成する - 編集方法で「数式」を選択して、下記の数式を設定する
=YEAR(日付)&MONTH(日付)
今回請求対象のレコードに絞り込む
- フィルタコマンドを追加する
- 次のように数式を設定し、絞り込む
年月=YEAR(TODAY())&MONTH(TODAY())+1
請求日を設定する
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「請求日」という新しいフィールドを作成する - 編集方法で「数式」を選択して、下記の数式を設定する
DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)
プレビューはこのような状態です。
2.請求回数を計算する
請求管理アプリのデータと突き合せて、過去の請求回数と今回が何回目の請求であるか計算します。
- 入力アプリコマンドを追加し、アプリの選択で「570-70 請求管理」を選択する
- フィールドの選択で次のフィールドを選択する
・請求日 ・顧客番号 ・顧客名 ・契約番号 ・商品番号 ・商品名 ・今回請求回 ・今回請求額 ・残額 ・ご請求回数残数
過去の請求回数を計算する
請求管理アプリに登録されている過去の請求回数を計算します。これは、今回が何回目の設定であるかを把握するために行います。
- グループ化コマンドを追加する
- 次のように設定する
グループ化するフィールド:顧客番号、顧客名、契約番号、商品番号、商品名
集計する値が保存されているフィールド:契約番号
集計した値を保存するフィールド:過去の請求回数
集計方法:個数
今回の請求回数を算出する (今回が2回目以降の請求の場合)
1つ前のステップで抽出した過去の請求回数を元に、今回が何回目の請求回であるか計算します。
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「今回請求回_抽出用」という新しいフィールドを作成する - 編集方法で「数式」を選択して、下記の数式を設定する
過去の請求回数+1
フィールドタイプを変更する
- フィールドタイプ設定コマンドを追加する
- 次のように設定する
変更するフィールド:今回請求回_抽出用
新しいフィールド名:今回請求回_抽出用
新しいフィールドタイプ:数値
請求情報と契約情報を突き合わせる
- アプリ結合コマンドを追加する
- 元になるアプリに「請求日を設定」、結合するアプリに「フィールドタイプ設定」を選択する
- 結合方法で「左外部結合」を選択する
- 条件フィールドに「契約番号」を選択する
今回の請求回数を設定する (今回が初回請求の場合)
1つ前のステップで2つのアプリを結合した結果「今回請求回_抽出用」が空になるレコードは、今回が初回請求になります。初回請求の場合は、「今回請求回_抽出用」に「1」を設定します。
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「今回請求回_抽出用」という既存フィールドを選択する - 編集方法で「数式」を選択して、下記の数式を設定する
IF(今回請求回_抽出用=””,”1″,今回請求回_抽出用)
必要なフィールドに絞り込む
- フィールド選択コマンドを追加し、次のフィールドを選択する
・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数
・請求回 ・請求額 ・過去の請求回数 ・今回請求回_抽出用 ・請求日
請求残回数を計算する
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「残数」という新しいフィールドを作成する - 編集方法で「数式」を選択して、下記の数式を設定する
IF(支払回数>1,支払回数-今回請求回_抽出用,””)
※ この設定は支払い回数が2回以上の場合にのみ適用されます
3.支払い残額を計算する
入金管理アプリのデータと突き合わせ、残額を計算します
- 入力アプリコマンドを追加し、アプリの選択で「570-70 入金管理」を選択する
- フィールドの選択で次のフィールドを選択する
・顧客番号 ・顧客名 ・入金日 ・入金額
過去の入金額を計算する
- グループ化コマンドを追加する
- 次のように設定する
グループ化する項目:顧客番号、顧客名
集計する値が保存されているフィールド:入金額
集計した値を保存するフィールド:入金額合計
集計方法:合計
入金額と請求情報を突き合わせる
- アプリ結合コマンドを追加する
- 元になるアプリに「請求回数を算出する」、結合するアプリに「過去の入金額を計算」を選択する
- 結合方法で「左外部結合」を選択する
- 条件フィールドに「顧客番号」を選択する
残額を計算する
- データ編集コマンドを追加する
- 次のように設定する
結果を保存するフィールド:「残額」という新しいフィールドを作成する - 編集方法で「数式」を選択して、下記の数式を設定する
IF(入金額合計<>””,金額-入金額合計,金額)
※ この設定は入金履歴がある場合にのみ適用されます
必要なフィールドに絞り込む
- フィールド選択コマンドを追加し、次のフィールドを選択する
・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数
・請求回 ・請求額 ・過去の請求回数 ・今回請求回_抽出用 ・請求日
・残額 ・残数 ・入金額合計 ・請求日
4.全請求情報を明細として結合する
全請求情報が参照できる帳票を作成するため、契約管理アプリで入力した請求情報のデータを結合します。
- 入力アプリコマンドを追加し、アプリの選択で「570-70 契約管理」を選択する
- フィールドの選択で次のフィールドを選択する
・契約番号 ・顧客番号 ・顧客名 ・商品番号 ・商品名 ・金額 ・支払回数 ・請求情報
テーブルに登録した請求情報をレコードに展開する
- テーブル展開コマンドを追加する
- 次のように設定する
レコードに変換するテーブル:請求情報
レコードに保持するフィールド:請求回、日付、請求額
請求データと結合する
- アプリ結合コマンドを追加する
- 元になるアプリに「フィールド選択(3)」、結合するアプリに「テーブル展開」を選択する
- 結合方法で「左外部結合」を選択する
- 条件フィールドに「契約番号」を選択する
全請求情報をテーブルに格納する
- テーブル作成コマンドを追加する
- 次のように設定する
レコードの保持するフィールド:
・契約番号 ・顧客番号 ・顧客名 ・商品番号 ・商品名 ・金額 ・支払回数 ・今回請求回_抽出用
・残数 ・残額・請求日 ・請求額
新しいテーブル名:請求情報
テーブルに保持するフィールド:日付、請求回_1、請求額_1
5.出力アプリを設定する
- 出力アプリコマンドを追加して、アプリの選択で「請求管理」アプリを選択する
- 出力方式に「更新」を選択し、「更新または追加」オプションを有効にする
- データ編集フローのフィールドで、アプリのフィールドと対になるデータ編集フローのフィールドを選択する
※請求管理アプリの「請求回」には「今回請求回_抽出用」を設定する - 更新キーで「請求日」「契約番号」を有効にする
テーブルに出力するデータも下記の通り、同様に設定する
請求回:請求回_1
請求日:日付
請求額:請求額_1
6.出力結果を確認する
「請求管理」アプリに請求データを自動で出力できるようになりました。
サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/pratical/dt570-70installments-invoice.zip