scalebaseのbigqueryを動かしてみた

これは何?

  • 今やっているCS Opsとして実施した仕事の備忘録

背景

  • 今CS Opsとして関わっている企業の請求業務にscalebaseというサービスを利用している

  • salesforceとscalebaseの請求金額が一致しているかどうかを全件目視で確認している

  • 一致しているものは問題がないので、そのまま請求フローに乗る

  • 一致していないものが一定存在している

  • そこで、その月に請求を行う企業の中で、一致している問題がないものと一致していない確認が必要なもののステータスがわかる一眼してわかる状態にすることが今回の仕事のゴール

やったこと

  • 本来やりたいのは請求する企業の一致状態を確認するだけなのだが、フローを構築する前に全てのデータの整合性の確認を行うために、対象を全件として、salesforceの金額とscalebaseの金額が一致しているかどうかの確認が行えるものをspreadsheet上で作成した

具体的には

  • salesforceで特定期間の案件を抽出するレポートを作成

  • 作成したレポートをdata connectorでspreadsheetに出力

  • spreadsheet上で、企業ごとにまとめて金額を表示

  • scalebaseがbigquery経由でデータを提供してくれるサービスを提供してくれているので、bigqueryのデータを抽出し、企業ごとにまとめて金額を突合

  • それぞれまとめたものの金額を突合し、金額が一致しているかどうか?についてのステータスを表示

  • 金額が一致していないものだけを別のシートにまとめる

苦労したポイント

  • scalebaseというサービスを初めての利用したこと

    • どのレコードが現在有効なレコードなのか?

    • どのステータスを見るといいのか?

  • bigqueryも初めての利用だったこと

    • bigquery特有のお作法を知らなかったので、SQLを触ったことがあっても特徴的な記述に戸惑った

備忘録

  • 契約テーブルにあるstatusは契約idに対してのステータスを表している

  • 契約の中に複数のPLAN/ADD_ON/DISCOUNTなどが存在し、それらが現在有効化どうかを判定するのはcontract_item_activation_statusというカラム

  • scalebaseが提供しているテーブルの定義には記載があるのだが、契約アイテムというのがどういう意味なのか理解するまでに何度もやり直しをすることになり、大変だた

  • あとは、成果物をアウトプットすることを優先したので、queryを以前他の方が作ってくれたものを流用したが、ディスカウントアイテムの名前を取得するのがうまくできなかったので、この辺をうまく取得できるようになるとより、scalebaseと他のサービスとの連携状態が正常か確認するのが捗りそう

いいなと思ったら応援しよう!