Sales Cloudで入金消込をしたい

Sales Cloudで入金消込を実装した話になります。

今回はカスタムオブジェクトとApexでのトリガ処理、カスタムボタンを用いて実装しました。
入金消込とは債権に対して顧客からの入金がされたかどうかをチェックする経理業務の作業となります。

■実装前の環境は下記の様になっていました。

  • 請求オブジェクト(カスタムオブジェクト)
  • 入金オブジェクト(カスタムオブジェクト)

請求が発生したら請求オブジェクトのレコードが、Apexスケジューラで作成されます。
入金が発生したら入金オブジェクトのレコードを作成します。
(弥生会計のエクスポートファイルをインポートウィザードでインポートする運用となっています)

■実装後の環境は下記の様になりました。

請求オブジェクトの項目はこちらです(必要箇所以外は省略)

  • 請求先コード(参照)
  • 請求金額(通貨)
  • 消込済金額(通貨)←今回追加しました
  • 未消込金額(数式:未消込金額 = 入金額 – 消込済金額)←今回追加しました
  • 消込ステータス(選択:未消込、消込)←今回追加しました

入金オブジェクトの項目はこちらです(必要箇所以外は省略)

  • 入金額(通貨)
  • 消込済金額(通貨)←今回追加しました
  • 未消込金額(数式:未消込金額 = 入金額 – 消込済金額)←今回追加しました
  • 消込ステータス(選択:未消込、消込)←今回追加しました

今回新たに作成した消込用請求リストオブジェクトの項目はこちらです(必要箇所以外は省略)

  • 入金コード(主従)
    ※主は入金オブジェクトとなります
  • 請求先コード(参照)
  • 請求コード(参照)
    ※ルックアップ検索条件に消込用請求リスト.請求先コード = 請求オブジェクト.請求コードを追加しました
  • 消込金額(通貨)

■運用フローは下記になります。

<消込用請求リストを作成します>
1.請求先コードを選択します
2.請求コードを選択します
(1で選択した請求コードをもつ請求レコードの中から選択することになります)
3.保存します

★保存時のトリガ処理は下記が行われます。

  • 親の入金レコードの未消込金額を取得します(取得値をAとします)
  • 選択した請求レコードの未消込金額を取得します(取得値をBとします)

A <= Bとなる場合には・・・
消込金額はAとなります。

A > Bとなる場合には・・・
消込金額はBとなります。

  • 消込用請求レコードの消込金額を上記の消込金額にします
  • 請求レコードの消込済金額を上記の消込金額で加算します
  • 入金レコードの消込済金額を上記の消込金額で加算します

<消込ボタンを押下します>

1.入金オブジェクトのリストビューに設置した消込ボタンを押下します

★押下時の処理は下記が行われます。

  • 入金レコードの消込ステータスが”未消込”かつ入金レコードの未消込金額が0円のレコードのみ処理継続します
  • 入金レコードの消込ステータスを”消込済”に更新します
  • 請求レコードの未消込金額が0円の場合は請求レコードの消込ステータスを”消込済”に更新します

[今回のポイント]

入金(単数)⇔請求(単数)
だけではなく
入金(単数)⇔請求(複数)・・・複数の請求をまとめて入金するケース
入金(複数)⇔請求(単数)・・・1回の請求を分割して入金するケース
の場合にも対応できるように、間にオブジェクト(消込用請求リストオブジェクト)を入れたところです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

3 × four =