Google Apps Script

【freeeAPI×GAS】スプレッドシートのデータから振替伝票を一括作成する【逆仕訳一括作成ツール②】

こんにちは、もりです!

クラウド会計ソフトfreeeのAPIを使って、freeeの操作を自動化するシリーズ。合計2回の連載で「振替伝票の逆仕訳を一括作成するツール」を作ります。

1回目の記事がこちら。

【freeeAPI×GAS】指定条件の振替伝票をスプレッドシートに取得する【逆仕訳一括作成ツール①】GASを使って「クラウド会計ソフトfreee」のAPIを操作するシリーズ。振替伝票を一括取得してスプレッドシートに出力するスクリプトを紹介しています。...

今回の記事では、スプレッドシートのデータをfreeeAPIに送信して、振替伝票を一括作成するスクリプトを紹介します。

 

※この記事で紹介するスクリプトを動作させるには、freeeAPIの連携アプリの作成と認証が済んでいることを前提としています。

詳しくは下記記事をご覧ください。

クラウド会計freeeアイキャッチ
【freee×GAS】GoogleAppsScriptでfreeeAPIと連携認証する(サンプルコードあり)GoogleAppsScriptを使用して、クラウド会計ソフトfreeeのAPI連携が可能です。freee連携アプリの登録方法、認証方法、サンプルコードを紹介しています。...

逆仕訳一括作成ツール

逆仕訳(反対仕訳)とは、貸借を逆に起票する仕訳です。伝票仕訳を間違えた時の訂正や、決算整理仕訳の戻入で作りますね。

逆仕訳

【動画】ツールの使い方(処理の流れ)

freeeの振替伝票を使用した「逆仕訳」の作成は、下記の流れで行います。

逆仕訳一括作成の流れ
  1. freeeに登録済みの振替伝票をスプレッドシートに出力する【API使用】
  2. スプレッドシート上で日付を書き換える【手作業】
  3. スプレッドシートのデータを貸借入替でfreeeに登録する【API使用】

詳細は操作デモをご覧ください。※再生すると解説の音声が出るのでご注意ください!

スプレッドシートのデータを元に振替伝票を作成する

前回の記事で、freeeに登録済みの振替伝票をスプレッドシートに出力しました。

振替伝票取得

 

今回の記事では、このスプレッドシートのデータを使って振替伝票を作成する処理を作ります。

逆仕訳一括作成の流れ
  1. freeeに登録済みの振替伝票をスプレッドシートに出力する【API使用】
  2. スプレッドシート上で日付などを書き換える【手作業】
  3. スプレッドシートのデータを貸借入替でfreeeに登録する【API使用】←今回はココを作る

【事前準備】スプレッドシートのパラメータを設定

スプレッドシートに「取得項目」と「パラメータ」を設定する枠を用意します。セルの色は下記の意味をもっています。

  • 黄色セル → パラメータを設定(入力)するセル
  • 水色セル → 取得結果を出力するセル

 

スプレッドシートの「発生日」を任意の日付に書き換えます。(期末計上→期首戻入の場合は、期首日付にする)

「振替伝票ID」の値が同じ行は、同一伝票です。この記事で紹介するスクリプトは、各伝票の「最初の行の日付」を登録します(下記例の場合、3,6,8行目)

貸借入替:「する/しない」の選択肢を設けています。

  • しない → D列の「貸借」debit/creditをそのまま登録
  • する → D列の「貸借」debit/creditを逆にして登録
振替伝票のスプレッドシート

【解説】POSTリクエストで送信するデータの形式

振替伝票の作成は「POSTリクエスト」で実行します。「GETリクエスト」に比べて、リクエストURLと一緒に送信する「パラメータ」が異なります。

 

プロパティpayloadに、振替伝票のデータをJSON形式で指定します。

「どのようなJSONデータを指定すればよいか?」は、freee公式リファレンス(/api/1/manual_journals)の「Example Value」で確認できます。

「Model」をクリックすると、各プロパティの説明も確認できます。

JSONデータ

 

「振替伝票の作成」のJSONデータのポイントは details プロパティです。

detailsプロパティは「配列」で、振替伝票の各行を「オブジェクト」にして列挙します(貸借合わせて100行まで指定できる)

 

つまり、1件の振替伝票を作成する場合、このようなJSONデータを作ればよいことがわかります。

振替伝票のボディ

【スクリプト】

このスクリプトと同じプロジェクト内に、下記記事の認証スクリプト(認証用の関数)を書いておく必要があります。

【freee×GAS】GoogleAppsScriptでfreeeAPIと連携認証する(サンプルコードあり)

具体的には、「getService」関数と、その中で使われている「Client_ID」「Client_Secret」の値です。

 

そして、下記スクリプトの「createJournalMain」関数を実行すると、スプレッドシートのデータから振替伝票を作成できます。

【参考】オブジェクトをログ出力してみる

スプレッドシートのデータからオブジェクト(キー:値のペア)を作る方法はこちらの記事で詳しく紹介しています。

【GAS】スプレッドシートのデータからオブジェクトを作る方法スプレッドシートのデータからオブジェクトを作成する方法を紹介しています。ポイントは「オブジェクトのキーに変数を使う」「配列とオブジェクトをネストする」です...

上記スクリプトの40行目で、1件分の伝票データ(objBody)をログ出力しています。

このようなデータができあがります。1件目の伝票は3行あるので、detailsプロパティの中身に3つのオブジェクトがあります。

※オブジェクトのままではAPIに送信できないので、140行目のstringifyメソッドでJSONデータに変換しています。

【解説】処理の流れ

スクリプト全体の処理の流れです。

  1. スプレッドシートの「振替伝票ID」を元に、1伝票の開始行と終了行を判定する【createJournalMain】
  2. ①の行番号を元に、1伝票分のオブジェクトを作成する【createManualJournalBody】
  3. ②で作成したオブジェクトをfreeeAPIにPOSTリクエストする【postManualJournals】

【実行結果】

スクリプトの実行結果です。freeeに振替伝票を作成できました。

freeeの振替伝票

 

以上、2回に分けて「逆仕訳一括作成ツール」を紹介しました。

【freeeAPI×GAS】指定条件の振替伝票をスプレッドシートに取得する【逆仕訳一括作成ツール①】GASを使って「クラウド会計ソフトfreee」のAPIを操作するシリーズ。振替伝票を一括取得してスプレッドシートに出力するスクリプトを紹介しています。...