Xeroをデータパイプラインソースとして設定
Xeroをデータパイプラインソースとして設定し、請求書、連絡先、支払い、勘定科目表レコードなどの会計データをXero Accounting APIから抽出して、送信先に同期します。
このガイドでは、機能と前提条件の確認、Xeroのデータパイプラインソースとしての接続、パイプラインの設定、サポートされているオブジェクト、同期モード、スキーマ処理、機密データの処理、制限事項について説明します。
サポートされている機能
Xeroをパイプラインソースとして使用する場合、次の機能がサポートされます。
- クラウド接続: https経由でXero Accounting APIに接続します。 オンプレミスエージェントは不要です。
- オブジェクトレベルの選択: パイプラインを設定するときに、同期するサポート対象オブジェクトを選択します。
- 完全同期と増分同期: 完全同期と増分同期をサポートします。
- 複数組織のサポート: 各コネクションは1つのXero組織を同期します。 管理する組織ごとに個別のパイプラインを作成します。
- スキーマドリフト処理: ソースで新しく追加されたフィールドを自動同期するかブロックするかを選択します。
- フィールドレベルのデータ保護:転送先に到達する前に、フィールド値をそのままレプリケートするか、機密値をハッシュ化します。
- 設定可能な同期頻度:時間ベースまたはcronベースのスケジュールで同期をスケジュールします。 最小間隔は15分です。
前提条件
Xeroをデータパイプラインソースとして設定する前に、次の要件を満たしてください。
- 同期する予定の組織にアクセスできるXeroアカウント。
- Xero OAuthフローを通じてサードパーティアプリケーションを認可する権限。
サブスクリプションとモジュールの要件
一部のオブジェクトには、特定のXeroサブスクリプションまたは有効化済みモジュールが必要です。
- 複数通貨のトランザクションフィールドと
currencyオブジェクトには、Establishedプランが必要です。 projectオブジェクトには、EstablishedプランとProjectsアドオンが必要です。fixed_assetオブジェクトには、Trial以外の組織が必要です。
サブスクリプション、地域、またはモジュールの有効化状況が原因で組織がオブジェクトにアクセスできない場合、そのオブジェクトの同期は権限エラーで失敗します。 残りのオブジェクトを同期するには、パイプラインからそのオブジェクトを削除します。 詳細については、サブスクリプションとモジュールの要件を参照してください。
サポートされるコネクションタイプ
XeroデータパイプラインはOAuth 2.0認証をサポートしています。
- OAuth 2.0: アカウントがアクセスできるXero組織からWorkatoがデータを読み取ることを認可します。 Workatoは読み取り専用スコープを要求し、コネクションの有効期間中、アクセストークンを自動的に更新します。
XeroはAccounting APIの唯一の認証方式としてOAuth 2.0をサポートしています。 クライアント認証情報とカスタムコネクションは、データパイプラインが使用する複数組織モデルをサポートしていないため、サポートされていません。
Xeroに接続
Xeroに接続するには、次の手順を実行します。
Xeroに接続
作成 > コネクションを選択するか、Cを2回押します。
Xeroを検索し、アプリとして選択します。
コネクション名フィールドに名前を入力します。
コネクションを保存する予定のプロジェクトまたはフォルダを選択するには、ロケーションドロップダウンメニューを使用します。
接続する予定の組織の正確なテナント名を入力します。 このフィールドでは大文字と小文字が区別されます。
任意です。 Custom OAuth profileドロップダウンメニューを使用して、このコネクションのカスタムOAuthプロファイルを選択します。
接続をクリックし、Xeroにサインインしてコネクションを認可します。
Xeroログイン
XeroでさまざまなIDを見つける方法
Xeroの各レコードには、Xero IDと呼ばれる一意の識別子があります。 これらのIDは、主に次の2つの方法で取得できます:
Xeroから直接IDを取得する
Xeroで特定の項目のページに移動し、URLの末尾にあるIDを確認します。 この方法は、通常テスト中など、一貫したIDが必要なシナリオに適しています。 例:
連絡先IDは連絡先ページURL内にあります
この例では、連絡先IDは46145141-500e-4a15-b2e1-2752708fdd52で、Xeroの連絡先ページURLの末尾に表示されます。 手動仕訳IDなど、他のIDもそのページURLの末尾で確認できます。
Workatoアクションを使用したIDの取得
検索、作成、更新などのWorkatoアクションを使用して、Xero IDを取得することもできます。 Workatoは、Xeroレコードとやり取りする際に、APIレスポンスでレコードのIDを取得します。 次の例は、この方法を示しています:
- 連絡先ID
- 新規/更新された連絡先、連絡先を検索、連絡先をアップサートなどのトリガーおよびアクションを使用して、Xeroの各連絡先の一意の識別子を取得します。 たとえば、名前またはメールで連絡先を検索し、連絡先IDの出力データピルを使用できます。
名前またはメールアドレスで連絡先を検索
Manual Journal IDを検索
支払いIDを検索
- 従業員ID
- 新規/更新された従業員および従業員を作成などのトリガーおよびアクションを使用して、各従業員の一意の識別子を取得します。
- アカウントID
- 新規/更新された支払い、請求書支払いの作成、支払いの取得などのトリガーとアクションを使用して、各アカウントの一意の識別子を取得します。 または、Xero設定>勘定科目表にあるアカウントコードに切り替えます。
パイプラインの設定
Xeroをデータパイプラインソースとして設定するには、次の手順を実行します。
作成 > データパイプラインを選択します。
データパイプライン名フィールドにデータパイプラインの名前を入力します。
データパイプライン設定
ロケーションドロップダウンメニューを使用して、データパイプラインを保存するプロジェクトを選択します。
ビルドを開始をクリックします。
ソースアプリから新規/更新済みレコードを抽出トリガーをクリックします。 このトリガーは、パイプラインがXeroからデータを取得する方法を定義します。
接続済みソースアプリドロップダウンメニューを使用して、Xeroを選択します。
このパイプラインで使用する予定のXeroコネクションを選択します。 または、+ 新規コネクションをクリックして新しいコネクションを作成します。
オブジェクトを追加をクリックして、新しいオブジェクトを追加パネルを開きます。
使用可能なXeroオブジェクトのリストを検索または参照し、同期する予定のオブジェクトを選択して、追加をクリックします。
同期モードはオブジェクトごとに固定
同期モードは、Xero APIがそのオブジェクトの変更タイムスタンプを公開しているかどうかに基づいて、各オブジェクトで固定されています。 変更タイムスタンプがあるオブジェクトは増分同期されます。 変更シグナルを提供しない参照オブジェクトは、実行ごとに完全同期されます。 詳細については、同期モードを参照してください。
選択した各オブジェクトのスキーマを確認してカスタマイズします。 パイプラインは、選択したオブジェクトスキーマを自動的に取得し、同期先がソースと一致するようにします。
オブジェクトを展開してフィールドを表示します。 使用可能なすべてのデータを抽出するには、すべてのフィールドを選択したままにします。または、抽出とスキーマレプリケーションからデータを除外するには、特定のフィールドの選択を解除します。
任意です。 オブジェクトを展開し、各フィールドの処理方法を選択して、フィールドレベルのデータ保護を設定します。
- そのまま複製: ソースのデータ値が宛先に同一に複製されます。
- ハッシュ: 宛先に同期する前に、フィールド内の機密データ値をハッシュ化します。
Workatoでは、個人を特定できる情報(PII)やその他の機密フィールドをハッシュ化することを推奨します。 PIIが一般的に含まれるフィールドのリストについては、機密データの処理を参照してください。
さらにオブジェクトを追加するには、もう一度オブジェクトを追加をクリックします。 この手順を繰り返して、パイプラインに追加のXeroオブジェクトを含めます。
スキーマ変更の処理方法を選択ドロップダウンメニューを使用して、スキーマドリフトの処理オプションを選択します。
- 新しいフィールドを自動同期: ソースに追加された新しいフィールドを自動的に検出して同期します。
- 新しいフィールドをブロック: パイプラインの開始後、スキーマを固定します。 新しいフィールドは手動で追加する必要があります。
任意です。 同時操作数を制限するには、同時実行制限フィールドに値を入力します。 入力できる最大値は100です。 Workatoは、1つの同時操作というXeroパイプライン制限を含む、ワークスペース制限とソース制限を適用します。
標準の時間ベースのスケジュールを選択するか、頻度フィールドでカスタムcron式を定義して、パイプラインがXeroから送信先へデータを同期する頻度を決定します。
サポートされるオブジェクト
XeroデータパイプラインはXero Accounting APIからデータを同期します。 次の表は、サポートされているオブジェクトをカテゴリ別に示しています。 各オブジェクトは、宛先内の個別のテーブルとして同期されます。
子オブジェクトとジャンクションオブジェクトは、個別の正規化されたテーブルとして送信先に表示されます。 それぞれを個別に選択してスケジュールし、コネクターは親オブジェクトを読み取って行を作成します。
invoice、credit_note、bank_transaction、purchase_order、quote、およびmanual_journalオブジェクトは、それぞれの明細項目を個別の子テーブルとして同期します。 invoice、credit_note、およびmanual_journalの明細テーブルは、追跡カテゴリーの割り当てもさらに別の子テーブルとして同期します。
各子テーブルは、親識別子と子キーを組み合わせた複合主キーを使用します。
トランザクション
次のオブジェクトは、組織内の財務トランザクションと、それらに関連付けられた明細項目および追跡カテゴリーを表します。
| オブジェクト | 同期モード | 削除追跡 |
|---|---|---|
invoice | 増分 | はい(ソフト) |
invoice_line | Full sync | はい(宛先で推定) |
invoice_line_tracking_category | Full sync | はい(宛先で推定) |
credit_note | 増分 | はい(ソフト) |
credit_note_line | Full sync | はい(宛先で推定) |
credit_note_line_tracking_category | Full sync | はい(宛先で推定) |
bank_transaction | 増分 | はい(ソフト) |
bank_transaction_line | Full sync | はい(宛先で推定) |
payment | 増分 | はい(ソフト) |
overpayment | 増分 | はい(ソフト) |
prepayment | 増分 | はい(ソフト) |
purchase_order | 増分 | はい(ソフト) |
purchase_order_line | Full sync | はい(宛先で推定) |
quote | 増分 | はい(ソフト) |
quote_line | Full sync | はい(宛先で推定) |
manual_journal | 増分 | はい(ソフト) |
manual_journal_line | Full sync | はい(宛先で推定) |
manual_journal_line_tracking_category | Full sync | はい(宛先で推定) |
repeating_invoice | Full sync | はい(ソフト) |
linked_transaction | Full sync | はい(ソフト) |
bank_transfer | 増分 | いいえ |
連絡先
次のオブジェクトは、組織内の連絡先と、それらが属するグループを表します。
| オブジェクト | 同期モード | 削除追跡 |
|---|---|---|
連絡先 | 増分 | はい(ソフト) |
contact_group | Full sync | はい(宛先で推定) |
contact_group_membership | Full sync | はい(宛先で推定) |
会計設定と参照データ
次のオブジェクトは、勘定科目表と、トランザクションが参照する参照データを表します。
| オブジェクト | 同期モード | 削除追跡 |
|---|---|---|
アカウント | 増分 | はい(ソフト) |
アイテム | 増分 | はい(ソフト) |
tax_rate | Full sync | はい(ソフト) |
currency | Full sync | はい(宛先で推定) |
tracking_category | Full sync | はい(ソフト) |
tracking_category_option | Full sync | はい(ソフト) |
branding_theme | Full sync | はい(宛先で推定) |
budget | Full sync | はい(宛先で推定) |
organisation | Full sync | はい(宛先で推定) |
user | 増分 | いいえ |
アセットとプロジェクト
次のオブジェクトには、特定のXeroモジュールまたはアドオンが必要です。
| オブジェクト | 同期モード | 削除追跡 |
|---|---|---|
fixed_asset | Full sync | はい(ソフト) |
プロジェクト | Full sync | はい(ソフト) |
主キー
ルートオブジェクトは、単一列のid主キーを使用します。 子テーブルとジャンクションテーブルは、親識別子と子キーを組み合わせた複合主キーを使用します。
| オブジェクト | 主キー |
|---|---|
invoice_line, credit_note_line, bank_transaction_line, purchase_order_line, quote_line | 親ID、id |
manual_journal_line | manual_journal_id, line_number |
invoice_line_tracking_category, credit_note_line_tracking_category, manual_journal_line_tracking_category | 親ID、親明細ID、tracking_category_id |
contact_group_membership | contact_group_id, contact_id |
tracking_category_option | tracking_category_id, id |
同期モード
Xeroデータパイプラインは完全同期と増分同期をサポートしています。 同期モードは、オブジェクトが変更タイムスタンプを公開しているかどうかに基づいて、各オブジェクトで固定されています。
フル同期
完全同期では、実行ごとにオブジェクトで使用可能なすべてのレコードを読み取り、送信先のレコードセットを置き換えます。 パイプラインは、tax_rate、currency、tracking_category、branding_themeなど、変更シグナルを提供しない参照オブジェクトに完全同期を使用します。
増分同期
増分同期では、前回の実行以降に作成または更新されたレコードのみを読み取ります。 各増分オブジェクトは、変更タイムスタンプを使用して進行状況を追跡します。これはほとんどのオブジェクトではupdated_date_utc、bank_transferではcreated_date_utcです。 パイプラインは、検出した最も大きいタイムスタンプを保存し、次回実行の開始点として使用します。
各オブジェクトの同期モードを確認するには、サポートされるオブジェクトの表を参照してください。
削除追跡
Xeroにはネイティブの削除ログがないため、パイプラインは2つの方法で削除を検出します。
- ソース駆動のソフト削除: トランザクション、連絡先、アカウント、項目、追跡カテゴリー、税率、固定アセット、プロジェクトの各オブジェクトには、ステータス、アーカイブ、または廃棄のフィールドがあります。 パイプラインはこれらのフィールドを読み取り、送信先行に
_workato_is_deletedを設定します。 これらのオブジェクトははい(ソフト)とマークされます。 請求書、クレジットノート、および手動仕訳は、ステータスがDELETEDまたはVOIDEDの場合に削除済みとしてマークされます。発注書、見積書、支払い、および繰り返し請求書はステータスがDELETEDの場合、過払い、前払い、およびリンクされたトランザクションは無効化された場合、アカウント、追跡カテゴリー、および税率はアーカイブまたは削除された場合、連絡先は削除またはアーカイブされた場合、項目はアーカイブされた場合、固定アセットは廃棄された場合、プロジェクトはクローズされた場合に削除済みとしてマークされます。 - 送信先推定削除: 完全同期オブジェクトは、実行ごとに完全なレコードセットを再読み取りします。 送信先は各実行を前回の実行と比較し、存在しなくなったレコードに
_workato_is_deletedをtrueに設定するため、ソース側のマーカーがなくても削除が追跡されます。 これらのオブジェクトは、サポートされているオブジェクトテーブルではい(送信先推定)とマークされます。
userおよびbank_transferオブジェクトは増分同期され、ステータスフィールドやアーカイブフィールドを公開しないため、パイプラインはこれらの削除を検出できません。 これらのオブジェクトはいいえとマークされます。
manual_journalおよびlinked_transactionのソフト削除検出はベストエフォートです。 XeroのAPIは、削除されたすべての手動仕訳や無効化されたすべてのリンク済みトランザクションを無制限に要求する方法を提供していないため、一部のソース側の削除が、コネクターによるマーク付けのために返されない場合があります。
スキーマとデータ型の処理
コネクターは、データを送信先にレプリケートする際に、特定のXeroフィールドタイプに固有の処理を適用します。
タイムスタンプと日付
Xeroはほとんどのタイムスタンプを.NET日付形式で返します。 コネクターは、これらの値を送信先に書き込む前にISO 8601 UTCに変換します。 date、due_date、fully_paid_on_dateなど、時刻コンポーネントのない日付のみのフィールドは、TIMESTAMPではなくDATEとして保存されます。
複数通貨フィールド
組織で複数通貨を有効にすると、トランザクションにcurrency_codeおよびcurrency_rateフィールドを含め、currencyオブジェクトに有効化された通貨を一覧表示できます。
合成列
Workatoは、宛先テーブルに次の合成列を追加します:
| 列 | タイプ | 目的 |
|---|---|---|
_workato_is_deleted | ブール値 | パイプラインが削除済み、無効化済み、アーカイブ済み、またはソースに存在しなくなったものとして検出したレコードにマークを付けます。 完全同期モードで同期するすべてのオブジェクトに追加されます。 増分モードでは、ソース駆動のソフト削除シグナルがあるオブジェクトにのみ追加されます。 |
_workato_run_id | 文字列 | 最後に行を書き込んだパイプライン実行を識別します。 送信先はこれを使用して、Xeroに存在しなくなった行を検出します。 |
_workato_synced_at | タイムスタンプ | パイプラインが最後に宛先へ行を書き込んだ時刻。 |
宛先での列名の大文字と小文字
宛先は、テーブルを作成するときに列名の大文字と小文字を調整します。 Snowflakeは列名を大文字で保存し、ほとんどの宛先は小文字で保存します。BigQueryとSQL Serverは、コネクターが出力したとおりに保持します。
機密データの処理
Xeroオブジェクトには、個人を特定できる情報(PII)と機密性の高い財務データが含まれる場合があります。 次のオブジェクトには、一般的に機密フィールドが含まれます:
| オブジェクト | 機密フィールド |
|---|---|
連絡先 | name, first_name, last_name, email_address, tax_number, bank_account_details, account_number, website |
user | first_name, last_name, email_address, organisation_role |
manual_journal | narration |
contactオブジェクトは、銀行口座の詳細、税番号、および完全な連絡先レコードを含むため、最もリスクが高くなります。 manual_journalのnarrationフィールドは自由テキストであり、従業員名や支払い参照が含まれる場合があります。 請求書、クレジットノート、およびその他のトランザクションオブジェクトは、連絡先名やメールアドレスを保存するのではなく、contact_idで連絡先を参照します。 このデータを保護するには、contactオブジェクトの機密フィールドをHashし、contact_idで結合します。
パイプライン設定中にフィールドレベルのデータ保護でHashオプションを使用し、PIIが宛先に到達する前に保護します。 Workatoは、GDPR、CCPA、またはAustralian Privacy Actの下で運用されるパイプラインについて、contactおよびuserのPIIをハッシュ化することを推奨します。 詳細については、パイプラインを構成手順を参照してください。
制限事項
Xeroをデータパイプラインソースとして使用する場合、次の制限事項が適用されます。
複数通貨の損益
Xero APIは、未実現為替差益および差損、または銀行再評価を個別のレコードとして公開しません。 これらの値に依存するレポートは、同期されたデータだけでは再構築できません。
サブスクリプションとモジュールの要件
特定のオブジェクトには、特定のXeroサブスクリプションまたは有効化済みモジュールが必要です。
| オブジェクト | 要件 |
|---|---|
currencyおよび複数通貨のトランザクションフィールド | Establishedプラン |
プロジェクト | EstablishedプランとProjectsアドオン |
fixed_asset | Trial以外の組織 |
サブスクリプション、地域、またはモジュールの有効化状況が原因で組織がオブジェクトにアクセスできない場合、そのオブジェクトの同期は権限エラーで失敗します。 残りのオブジェクトを同期するには、パイプラインからそのオブジェクトを削除します。
最小同期頻度
デフォルトの最小同期間隔は15分です。
最終更新日: