今回のゴール

  • 注文管理アプリの一覧画面にて『請求書作成』ボタンを押すと

  • ボタンを押した当月以降の請求書発行日となっているレコードをもとに、請求先・請求年月単位で集約し、請求書アプリにレコードを作成する


※なお、同様の内容をJob Runnerの定期実行タスクで実現する方法はこちら
 (請求書データを自動で作成したい、大量のレコードを高速で処理したい場合は、Job Runnerでの実現がおすすめです。)

合計請求書(合算請求書)を作成する:Job Runner編 : gusuku support


各アプリの概要

各アプリのフィールド名とフィールドコードはすべて同一です。


注文管理アプリ

  • 同一請求先-請求発行日でも、商品が異なれば複数レコードで登録する運用とします。

  • 請求書発行日(納品日の次月1日)は自動入力

  • 請求先ID(請求先マスタから)と商品ID(商品マスタから)をルックアップ

  • 「納品日」は必須入力とし「レコード登録時の日付を初期値にする」設定あり、「請求書発行日」は日付フィールド、「請求書発行日_文字列」は文字列(1行)フィールド、「請求先ID_請求書発行日」は文字列(1行)フィールドで自動計算あり、計算式は「請求先ID & "_" & 請求書発行日_文字列」としています。

請求書アプリ

  • 同一請求先-請求書発行日で1レコードとなるように作り、注文情報はテーブルに登録


(参考)商品マスタアプリ、請求先マスタアプリ
  • 商品ID、請求先IDはそれぞれ重複禁止設定済


カスタマイズ設定

この請求書作成処理には大きく2つのポイントがあります。それは

  • 請求書を作る単位になるフィールドを準備する

  • そのフィールドの単位でレコードを集めて処理をする

です。


それぞれのポイントごとにカスタマイズを確認していきましょう。


請求書を作る単位になるフィールドを準備する

今回のカスタマイズでは、請求書を作る単位になるフィールドの準備は、ここまでの記載の通りにアプリを作っていればほぼ終わっています。

「請求先ID_請求書発行日」フィールドが請求書を作る単位のフィールドになります


そのフィールドの単位でレコードを集めて処理をする

請求書データ作成を動かすためのボタンの配置

まずは、処理を実行するためのボタンを配置します。


やること「ボタンをメニュー位置に配置する」と条件「一覧画面を表示した時」を使います。


ボタンを押した日の月初の日付を計算する

ここでは、ボタンを押した時の、月初の日付を計算して取得します。


やること「日付を計算する」と、条件「ボタンを押した時」を使います。

日付を計算する」は、基準日にtoday 関数を用い、右辺値を「0」、計算内容を「〇ヵ月後の月初」とすることで、例えば、12月23日にボタンを押した時は12月1日が取得できます。


請求書発行日がボタンを押した日の月初以降のレコードを取得する

ここでは、対象のレコードを取得します。


やること「条件を組み立ててレコードを取得する」を使います。

条件を組み立ててレコードを取得する」の検索条件には請求書発行日に対し、アクション番号5の結果を選択します。また、並び順も設定します。これは請求書アプリのテーブル情報を、納品日(請求書発行日)順とするためです。請求先IDや納品日は、どの順で並んでほしいかを元に決めています。


請求先ID、請求書発行日をキーに重複を除去する

請求先ID、請求書発行日の単位で処理をするため、重複を除去したレコードを準備します。


ここでは、やること「レコードから重複を除去する」を使います。


「レコードから重複を除去する」のイメージについては、キーとなるフィールド以外のフィールドに関する考え方はやること「レコードから重複を除去する」の「キーとなるフィールド」節をご覧ください。


請求書ID・請求書発行日ごとの処理を始める

リストから要素を取り出す」を使って、請求先ID(同一請求先)・請求書発行日単位での処理を行います。


やること「リストから要素を取り出す」、条件「いずれかのアクションの実行が完了した時」を使います。

※ここで使うために、1つ前のアクションで重複を除去しています。


なお、「リストから要素を取り出す」の処理のイメージは次のようになります。


請求書を発行する単位で、レコードを絞り込む

続いて請求書を発行する単位で、レコードを絞り込んでおきます。


この時、やること「取得したレコードを絞り込む」、条件「リストから要素を取り出した時」を使います。

※やること「リストから要素を取り出す」の次のアクションは必ず、1つのアクションでつながるようにし、かつ条件「リストから要素を取り出した時」を使います。


「取得したレコードを絞り込む」のイメージは次のようになります。


請求書アプリにレコードを更新または追加する

ここからは、請求書アプリにレコードを保存(更新または追加)していきます。

今回はテーブルへの保存を行うため、2段構えの構成でレコードを保存(レコードを保存→テーブルを保存)していくのですが、まずレコードを保存する処理がこのアクションになります。


やること「レコードを更新または追加する(キーの値を直接指定)」を使って、レコードへの更新または追加を行い、「請求書ID」・「請求書発行日」単位でのレコードを確実に存在する状態にします。


請求書アプリのレコードのテーブルに注文情報をセットする

続いて、テーブルへの書き出しを行います。


やること「レコードを指定アプリのテーブルに書き出す」を用います。


画面のカスタマイズによるキーの設定処理について

画面のカスタマイズによるキー設定についても、参考として次に記載します。

納品日の次月1日を請求書発行日としてセットし、更にこれを請求先IDと結合してキーとなるフィールドにセットする

やること「日付を計算する」や、「フィールドに値をセットする」を使うと、キーの設定処理もシンプルに実現することができます。


おわりに

今回は請求書データを作成するカスタマイズを実現してみました。


複雑な処理やデータ量が多い処理については、Job Runnerを使って頂くのがおすすめなのですが、画面のカスタマイズでも結構色んなデータ処理が実現できます。


なお次の記事では、Job Runnerで同様の処理を実現しています。併せてご覧ください。

合計請求書(合算請求書)を作成する:Job Runner編 : gusuku support


画面のカスタマイズと、Job Runnerをうまく使い分けて、思うようなデータ処理を実現してみて下さい。


ご不明点等ございましたら、チャットにてご質問ください。

Customineドキュメントサポートページもぜひご活用ください。