grasys blog

grasysでの請求書発行システムについて

こんにちは、grasys 社内SEの浦野です。今回はgrasys内の請求書の発行システムについて書いてみようと思います。

以前、弊社の松原がGoogle Cloud (GCP) Day: Digital ’22にて、これらの細かい動作やセキュリティについてスポットを当てたものの発表を行なっていたので(講演内容についてはこちら)、こちらは全体の流れを重点に置いたものにしてみます。

grasysでの請求書の種別について

grasysで発行する請求書は大きく分けて以下の3種類の請求書種別があります。

  1. 一部顧客環境の管理費用請求用
  2. リセリングの請求用
  3. その他の固定額請求用

これらの大まかなフローが以下になります。

各機能について

大まかに分けると以下の4種類の機能になり、それぞれGKEとsalesforceでCronJob、スケジュールジョブとして動作します。

  • 顧客環境のリソース取得 → (A: GKE)
  • salesforceへのデータ取り込み → (B: GKE)
  • salesforce商談オブジェクトの作成、紐付け → (C: salesforce)
  • 請求書データの作成、電子請求書発行サービスへの取り込み → (D: GKE)
機能A

請求(1)として、一部顧客環境にて稼働状況を元に請求額の計算を行います。そのため稼働状況をモニターし、そのデータをCloud Storageに保存しています。
その他の請求についてはリソース取得の機能は使われません。

機能B

請求(1)では、Cloud StorageのデータをBigQueryを通して必要な情報を抽出、整形して稼働平均としてsalesforceに取り込みます。
請求(2)では、あらかじめGoogle Cloud (GCP) Billingコンソールから明細データをダウンロードしCloud Storageに保存しておきます。このデータに明細毎の固有IDを付加してsalesforceへ取り込みます。現状、このダウンロードの作業のみ手作業で行なっているため、こちらは改善したいと考えているところです。(BillingデータをBigQueryへExportする機能があるらしい?)
また弊社では最近AWSのリセリングも開始したため、AWSの利用料明細をAPIで取得し、整形した後にsalesforceへ取り込むという機能改修を行いました。
請求(3)ではこの機能は使用されません。

機能C

請求(1)、(2)においては、salesチームがsalesforceにて顧客情報やプロジェクト名を登録しているので、salesforce内でそれらを元にまず商談オブジェクトを作成し、機能Bで取り込んだデータと紐付けを行います。
請求(3)はsalesチームが固定額の商談として独自に商談の作成を行ない、その期間に応じて請求月毎の商談を自動で複製しています。

機能D

全ての請求種別にてsalesforce内の商談オブジェクトとそれに紐づくデータから電子請求書発行サービスへ取り込ませる請求書データを作成します。
割引率、顧客担当者や製品種別による請求書の分割などの情報をGKE内に作成したDBに登録しておき、それらを元に計算や請求書番号の採番を含めて行い、それらの完成データをCloud Storageに一旦保存します。
最後に保存したデータを電子請求書発行サービスのAPIを利用して取り込ませます。

終わり

こんな感じでgrasysの請求書は発行されています。salesチームや経理からの要望を元に今後も機能改修が行われていくと思います。


採用情報
お問い合わせ