Salesforce 注文データを弥生会計フォーマットで出力する

by 色川穂高 | 2023年12月15日

Salesforce 注文データを弥生会計フォーマットで出力する
 
こんにちは。CData Software Japanの色川です。
 
近年では、様々なビジネス領域でSaaS の利用が拡大していますよね。こちらのリサーチによると米国では組織あたり平均130 のSaaS アプリケーションが利用されているそうです。対象ビジネス領域のノウハウやベストプラクティスを鮮度高く利用できるSaaS の利用は、日本においても拡大の一途だと思います。
 
各ビジネス領域で発生した取引の全ては、経理における会計処理として仕訳する必要がありますが、様々なビジネス領域を支える業務システムとして導入されたSaaS から、日本の法令や慣習に沿った会計ソフトウェアへの連携に苦労されるケースも多いと伺います。
 
そこで、この記事では「Salesforce の注文データを弥生会計フォーマット(仕訳インポート様式)で出力する」方法をご紹介します。
 
本記事は、2023 CData Advent Calendar 15日目の記事です。
 

弥生会計

弥生会計は、初心者からベテランまで様々な業種のユーザーに支持されている、会計ソフトメーカー別販売本数で圧倒的なシェアを持つ会計ソフトウェアです。会計ソフトウェアとしての完成度の高さはもちろん、分かりやすいUI/UX やサポート品質の高さを評価する声も良く聞きます。
 
多くの中小企業では会計業務を税理士や会計事務所と定期契約しているかと思いますが、そんな時にどの契約先でもまず間違いなく扱うことができる、安心・確実な会計システムが弥生会計(及び弥生会計フォーマットの仕訳データ)ではないでしょうか。
 
弥生会計とは
 

CData Arc

CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。
 
CData Arc とは
 

この記事のシナリオ

この記事では「Salesforce の注文データを弥生会計フォーマットに変換して出力するシナリオ」をご紹介します。
 
より具体的には「Salesforce の注文(Order)データを任意の条件で取得」して「弥生会計フォーマット(仕訳インポートフォーマット)に変換」し「インポート用にShift-JIS のCSV ファイルとして任意のフォルダへ出力」します。
 
Salesforce の注文(Order)オブジェクトについては、こちらをご覧ください。
 
弥生会計では仕訳データとしてインポートしたい場合のフォーマットが公開されています。このシナリオではこのフォーマットで出力することを目指します。フォーマットの詳細はこちらをご覧ください。
 
このフォーマットでデータを用意することで、弥生会計側の機能で仕訳データとしてインポート(取込み)することができるようになります。指定フォーマットへの編集や変換については、必要となる度に手作業で実施することも可能ですが、Arc での自動化フローとして構成することで、Salesforce データの取込みから弥生会計フォーマットへの編集・変換といった一連の流れを定期的に自動で実現できるようになります。あとはArc によって用意された指定フォーマットのデータを弥生会計へインポートするだけです。
 
弥生会計フォーマット
 

事前準備

CData 製品のダウンロードとインストール

この記事のシナリオでは、こちらの製品を利用します。30 日間のトライアルライセンスが提供されていますので、ぜひお手元で試してみてください。 
  • CData Arc 
 
CData Arc のインストールはこちらを参考にしてください。
 

連携フローの作成

このシナリオで作成する連携フローは以下のような流れになっています。
 
コネクタ 内容
1 Salesforce Salesforce の注文(Order)データを取得
2 XMLMap 1 のデータを3(弥生会計の仕訳インポートフォーマット)へ変換
(この記事のポイント)
3 CSV XML をCSV に変換
4 Script CSV ファイルを文字コードをShift-JIS に変換
5 File CSV ファイルを指定のフォルダへ書き込み
 
このシナリオで作成する連携フロー
 

Salesforce コネクタ

最初にフローの起点となるSalesforce コネクタを配置して、Salesforce の注文(Order)データを取得する設定をします。その他カテゴリから「Salesforce」コネクタを選択して、フローキャンバスへ配置します。
 
Salesforce コネクタの配置
 
Salesforce コネクタの設定
 
Salesforce へ接続します。Salesforce コネクタでは、Salesforce との接続をOAuth 認証で確立します。接続が成功したら「接続の追加」で保存します。
 
接続の作成
 
接続の追加ダイアログ
 
Salesforce ログイン
 
接続の追加
 
アクションとして「Select」を選択して、テーブルの追加で「Orders」を選択します。
 
Select アクション
 
テーブルの追加
 
必要なカラムを選択し、フィルタ条件として「Status」が「Activated」な注文データをフィルタ指定します。また抽出対象期間や並べ替えの順序も指定しました。
 
フィルタ条件の設定
 
Salesforce コネクタでのSelect では、デフォルトでレコード単位にメッセージファイルを出力します。今回は取得するレコードを1つのCSV ファイルとして出力したいので、取得する段階でメッセージファイルが1つのファイルで生成されるように構成しておきます。高度な設定の「最大レコード数」を「-1」として構成して、コネクタの設定を保存します。
 
最大レコード数の設定
 
「XML 出力をプレビュー」で期待のデータが取得できていそうかを確認します。
 
XML 出力をプレビュー
 
「サンプルデータを保存」しておくと、後続のXMLMap でのマッピングプロセスのときに項目の内容をより判断しやすくなるので便利です。
 
サンプルデータを保存
 

XMLMap コネクタ

次にXMLMap コネクタを配置し「1 のデータを3(弥生会計の仕訳インポートフォーマット)へ変換」するための設定をします。この記事のポイントと言える部分です。
 
最終的に弥生会計の仕訳インポートフォーマットはヘッダー(項目名列)の無いCSV で出力しますが、XMLMap コネクタでマッピング・変換する時点では、項目名が分かりやすく判別できる方が簡単です。そこでXMLMap からの出力フォーマット(宛先フォーマット)として、以下のXML ファイルを用意しておきます。ファイル名は「弥生会計.取引データ.xml」として用意しました。
 
<?xml version="1.0" encoding="UTF-8"?>
	<Items>
		<弥生会計.取引データ>
		<識別フラグ />
		<伝票No />
		<決算 />
		<取引日付 />
		<借方勘定科目 />
		<借方補助科目 />
		<借方部門 />
		<借方税区分 />
		<借方金額 />
		<借方税金額 />
		<貸方勘定科目 />
		<貸方補助科目 />
		<貸方部門 />
		<貸方税区分 />
		<貸方金額 />
		<貸方税金額 />
		<摘要 />
		<番号 />
		<期日 />
		<タイプ />
		<生成元 />
		<仕訳メモ />
		<付箋1 />
		<付箋2 />
		<調整 />
	</弥生会計.取引データ>
</Items>
 
コアカテゴリから「XMLMap コネクタ」を選択・配置します。
 
XMLMap コネクタの配置
 
XMLMap コネクタの設定
 
Salesforce コネクタからフローをつなぐと、ソースファイルが選択できるようになります。
 
ソースファイルの選択
 
デスティネーションファイルには、用意した「弥生会計.取引データ.xml」をアップロードします。
 
デスティネーションファイルの選択(サンプルファイルをアップロード)
 
データソースと宛先の間で、マッピングしていきます。さきほど「サンプルデータを保存」しておいたので、データソース側では項目名とともにサンプルデータが表示されて便利です。
 
マッピングエディタ
 
注文や取引のデータを仕訳する際に必要となるのが、借方・貸方の判断(いわゆる赤黒処理)かと思います。英語では、それぞれDebit、Credit と言うそうです。どの注文データが訂正・キャンセル(赤伝票)に当たるかを判断するのはデータソースや業務ごとに異なるかと思いますが、この記事では「Order のTotalAmount がプラスかマイナスか」でシンプルに判断しています。「借方データとして仕訳するときのマッピング」「貸方データとして仕訳するときのマッピング」の条件分けに活用できるのが、XMLMap の「条件(条件エディタ)」です。
 
条件の追加
 
条件マッピングエディタ
 
この記事では「TotalAmount がプラスのデータである場合」と「TotalAmount がマイナスのデータである場合」をそれぞれ条件分けして、それぞれのマッピングを施しています。
 
条件(Positive)のマッピング
 
条件(Negative)のマッピング
 
マッピングイメージ
 
マッピングの項目や内容は、データソースや業務ごとに異なるかと思いますが、文字列・数値・日付の編集や加工など、Arc には豊富なフォーマッタが揃っており、弥生会計へのインポート用に必要な編集処理も簡単です。
 
マッピングで意図した結果が得られるかを「マッピングのテスト」で即時に確認することができます。
 
マッピングをテスト
 

CSV コネクタ

次に、CSV コネクタを配置し「XML からCSV に変換」するための設定をします。コアカテゴリから「CSV コネクタ」を選択・配置して、CSV への変換を構成します。
 
CSV コネクタの配置
 
CSV コネクタの設定
 
XML ファイルから、カラムヘッダーが存在しないCSV ファイルへの変換となるため、変換自体はデフォルトの設定のままで大丈夫です。出力するファイル名を分かりやすくするために、ローカルファイルスキームを「弥生会計インポートデータ.csv」として設定して保存します。前のコネクタからフローをつなぎます。
 
ローカルファイルスキームの設定
 

Script コネクタ

CData Arc のフローではデータの文字コードを「UTF-8」で扱います。UTF-8 は世界的にも最もポピュラーな文字コードで、多くのソフトウェアやサービスで標準的に採用されている文字コードです。
 
ただ、今回のように利用するシナリオによっては、CSV ファイルをShift-JIS として出力したいケースもありと思います。そう言った時はCSV コネクタで変換した後(File コネクタの前)に、Script コネクタを設定して、文字コード変換を行うArcScript を構成する事でShift-JIS に変換したCSV ファイルを出力することができます。
 
コアカテゴリから「Script コネクタ」を選択・配置します。
 
Script コネクタの配置
 
Script コネクタの設定
 
スクリプト欄へ以下のArcScript を記述して、Shift-JIS への変換を構成します。
 
<arc:set attr="file.file" value="[FilePath]" /> 
<arc:set attr="file.encoding" value="UTF-8" /> 
<arc:call op="fileRead" in="file" out="out"> 
	<arc:set attr="fileOut.data" value="[out.file:data]" /> 
</arc:call> 

<arc:check attr="fileOut.data"> 
	<arc:set attr="fileOut.filename" value="[FileName]" /> 
	<arc:set attr="fileOut.encoding" value="Shift-JIS" /> 
	<arc:push item="fileOut" /> 
	<arc:else> 
		<arc:throw code="NoData" desc="No File Data."/> 
	</arc:else> 
</arc:check>
 
Shift-JIS に変換するArcScript
 

File コネクタ

最後にFile コネクタを配置し「CSV ファイルを指定フォルダに出力」するための設定をします。コアカテゴリから「File コネクタ」を選択・配置します。
 
File コネクタの配置
 
File コネクタの設定
 
「パス」に出力先フォルダを設定します。この記事では「C:\Test」に出力しています。
 
パスの設定
 
File コネクタへのフローをつなぎます。これで「Salesforce の注文データを弥生会計フォーマット(仕訳インポート様式)で出力する」フローができあがりました。
 
完成した連携フロー
 

連携フローの実行

作成したフローを実行して確認してみましょう。起点となるSalesforce コネクタからフローを実行してみます。アウトプットタブから「受信」を実行します。
 
受信の実行
 
「詳しくはこちら」から表示できるメッセージビューアで、作成したフローの一連の実行状況を確認します。
 
メッセージビューアでフローの結果を確認
 
指定したフォルダに、弥生会計の仕訳インポートに使えるCSV ファイルが出力されていることが確認できます。
 
CSV ファイルの出力確認
 
弥生会計にインポートできるCSV ファイル
 

連携フローの自動実行

CData Arc ではフローを定期実行するスケジューラ機能を持っています。今回のシナリオであれば、フローの起点となるコネクタの「オートメーション」タブで設定することができます。1時間に1度、毎時0分に定期実行する場合は、このように設定します。
 
受信オートメーションの設定
 

おわりに

この記事では、当社の実際のSalesforce 環境を例に、標準のOrder オブジェクトとOrder に設けている幾つかのカスタムフィールドから、シンプルな条件で弥生会計の仕訳インポートフォーマットに出力してみました。Salesforce に限らず「最終的に弥生会計で仕訳したいデータがSaaS にある」と言う場合に広く参考にして頂けるのではないかと思います。
 
この記事では、Order オブジェクトを対象としたシンプルなデータソースを例にしましたが、Order オブジェクト以外に他のカスタムオブジェクトを紐づけて取得・処理する必要がある場合は、Arc で利用できるカスタムクエリや、Child Tables 機能等が活用頂けそうです。
 
また、この記事では、それぞれの勘定科目などはマッピングの中で固定的に指定していますが、製品やサービスなど、取り扱う品目の多いビジネスの場合は、何か他のマスタからデータを検索して勘定科目を指定したいケースもあるかも知れません。そのような時は、Arc のLookup 機能が活用頂けると思います。
 
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
 
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
 
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
この記事では CData Arc™ 2023 - 23.3.8698.0 を利用しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。