次の方法で共有


Azure Data Factory または Azure Synapse Analytics を使用して QuickBooks Online からデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Microsoft Fabric の Data Factory (企業向けのオールインワン分析ソリューション) を試してみてください。 Microsoft Fabric では、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法については、こちらを参照してください。

この記事では、Azure Data Factory または Azure Synapse Analytics パイプラインのコピー アクティビティを使用して QuickBooks Online からデータをコピーする方法について説明します。 コピー アクティビティに関する概要記事に基づいています。

Important

QuickBooks コネクタ バージョン 1.0 は 削除段階にありますQuickBooks コネクタをバージョン 1.0 から 2.0 にアップグレードすることをお勧めします。

サポートされる機能

QuickBooks コネクタは、次の機能でサポートされています。

サポートされる機能 IR
Copy アクティビティ (ソース/-) (1) (2)
Lookup アクティビティ (1) (2)

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースまたはシンクとしてサポートされているデータ ストアの一覧については、「 サポートされているデータ ストア」を参照してください。

コネクタでは、QuickBooks OAuth 2.0 認証がサポートされています。

作業の開始

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用できます。

UI を使用して QuickBooks へのリンクされたサービスを作成する

  1. Azure portal で、Azure Data Factory または Azure Synapse ワークスペースに移動します。

  2. [ 管理 ] タブに移動し、[ リンクされたサービス] を選択し、[ 新規] を選択します。

    Azure Data Factory の新しいリンクされたサービスを作成するための選択のスクリーンショット。

  3. QuickBooks を検索し、QuickBooks コネクタを選択します。

    QuickBooks コネクタの検索結果のスクリーンショット。

  4. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    QuickBooks のリンクされたサービス構成のペインのスクリーンショット。

コネクタの構成の詳細

プロパティを使用して、QuickBooks コネクタに固有の Data Factory エンティティを定義します。

リンクされたサービスのプロパティ

QuickBooks コネクタでバージョン 2.0 がサポートされるようになりました。 QuickBooks コネクタをバージョン 1.0 からバージョン 2.0 にアップグレードするには、 この記事の後半の手順を参照してください。 次のセクションでは、2 つのバージョンのプロパティの詳細について説明します。

バージョン 2.0

QuickBooks のリンクされたサービスでは、コネクタ バージョン 2.0 の次のプロパティがサポートされています。

プロパティ 説明 必須
type リンクされたサービスの種類。 QuickBooksに設定する必要があります。 はい
version 指定するバージョン。 値は 2.0 です。 はい
endpoint QuickBooks Online サーバーのエンドポイント。 値は quickbooks.api.intuit.com です。 はい
companyId 承認する QuickBooks の会社の会社 ID。 会社 ID の検索方法については、 QuickBooks Online のヘルプ トピックを参照してください。 はい
consumerKey OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント ID。 詳細については、こちらを参照してください はい
consumerSecret OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント シークレット。 このフィールドを SecureString としてマークして安全に保存するか、 Azure Key Vault に格納されているシークレットを参照します はい
refreshToken QuickBooks アプリケーションに関連付けられた OAuth 2.0 更新トークン。 詳細については、こちらを参照してください。 このフィールドを SecureString としてマークして安全に保存するか、 Azure Key Vault に格納されているシークレットを参照します

更新トークンは 180 日後に期限切れになるため、お客様は定期的に更新する必要があります。
はい

次に例を示します。

{
    "name": "QuickBooksLinkedService",
    "properties": {
        "type": "QuickBooks",
        "version": "2.0",
        "typeProperties": {
            "endpoint": "quickbooks.api.intuit.com",
            "companyId": "<company id>",
            "consumerKey": "<consumer key>", 
            "consumerSecret": {
                 "type": "SecureString",
                 "value": "<clientSecret>"
            },
            "refreshToken": {
                "type": "SecureString",
                "value": "<refresh token>"
            }
        }
    }
}

バージョン 1.0

QuickBooks のリンクされたサービスでは、コネクタ バージョン 1.0 の次のプロパティがサポートされています。

プロパティ 説明 必須
type リンクされたサービスの種類。 QuickBooksに設定する必要があります。 はい
connectionProperties QuickBooks への接続方法を定義するプロパティのグループ。 はい
connectionProperties の下:
endpoint QuickBooks Online サーバーのエンドポイント。 値は quickbooks.api.intuit.com です。 はい
companyId 承認する QuickBooks の会社の会社 ID。 会社 ID の検索方法については、 QuickBooks Online のヘルプ トピックを参照してください。 はい
consumerKey OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント ID。 詳細については、こちらを参照してください はい
consumerSecret OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント シークレット。 このフィールドを SecureString としてマークして安全に保存するか、 Azure Key Vault に格納されているシークレットを参照します はい
refreshToken QuickBooks アプリケーションに関連付けられた OAuth 2.0 更新トークン。 詳細については、こちらを参照してください。 このフィールドを SecureString としてマークして安全に保存するか、 Azure Key Vault に格納されているシークレットを参照します

更新トークンは 180 日後に期限切れになるため、お客様は定期的に更新する必要があります。
はい
useEncryptedEndpoints データ ソース エンドポイントを HTTPS 経由で暗号化するかどうかを指定します。 既定値は true です。 いいえ

次に例を示します。

{
    "name": "QuickBooksLinkedService",
    "properties": {
        "type": "QuickBooks",
        "typeProperties": {
            "connectionProperties": {
                "endpoint": "quickbooks.api.intuit.com",
                "companyId": "<company id>",
                "consumerKey": "<consumer key>", 
                "consumerSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
              },
                "refreshToken": {
                     "type": "SecureString",
                     "value": "<refresh token>"
              },
                "useEncryptedEndpoints": true
            }
        }
    }
}

リンク サービスの更新トークンの処理

リンク サービスで QuickBooks Online コネクタを使用する場合は、QuickBooks から OAuth 2.0 更新トークンを正しく管理することが重要です。

リンク サービスは、更新トークンを使用して新しいアクセス トークンを取得します。 ただし、QuickBooks Online は更新トークンを定期的に更新します。 このアクションにより、前のトークンが無効になります。

リンクされたサービスは Azure Key Vault の更新トークンを自動的に更新しないため、接続を中断しないように更新トークンの更新を管理する必要があります。 そうしないと、更新トークンの有効期限が切れた後に認証エラーが発生する可能性があります。

更新トークンの有効期限が切れた場合は、QuickBooks Online ポリシーに基づいて、Azure Key Vault の更新トークンを手動で更新できます。 もう 1 つの方法は、スケジュールされたタスクまたは新しい更新トークンをチェックして Azure Key Vault で更新する Azure 関数 を使用して更新を自動化することです。

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、 Azure Data Factory と Azure Synapse Analytics のデータセットに関するページを参照してください。

QuickBooks Online からデータをコピーするには、データセットの type プロパティを QuickBooksObject に設定します。 QuickBooks データセットでは、次のプロパティがサポートされています。

プロパティ 説明 必須
type データセットの型。 QuickBooksObjectに設定する必要があります。 はい
tableName テーブルの名前。 いいえ (アクティビティ ソースに query が指定されている場合)

次に例を示します。

{
    "name": "QuickBooksDataset",
    "properties": {
        "type": "QuickBooksObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<QuickBooks linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

コネクタ バージョン 2.0 では、次の QuickBooks テーブルがサポートされています。

  • Account
  • 取り付け可能
  • Attachable_AttachableRef
  • Attachable_AttachableRef_CustomField
  • Bill
  • ビルペイメント_ライン
  • BillPayment_Line_LinkedTxn
  • Bill_Account_Based_Expense_Line
  • 請求書品目ベース経費行
  • Bill_LinkedTxn
  • 請求書支払い
  • Bill_TxnTaxDetail_TaxLine
  • 予算
  • 予算の詳細
  • クラス
  • CompanyCurrency_CustomField
  • CompanyInfo_NameValue
  • Company_Currency
  • 会社情報
  • クレジットカード支払い
  • クレジットメモ_カスタムフィールド (CreditMemo_CustomField)
  • クレジットメモ_説明_行
  • クレジットメモ_割引_ライン (CreditMemo_Discount_Line)
  • クレジットメモ_グループ_個別_アイテム_ライン
  • CreditMemo_Group_Item_Line
  • CreditMemo_Sales_Item_Line
  • CreditMemo_Subtotal_Line
  • CreditMemo_TxnTaxDetail_TaxLine
  • クレジットメモ
  • カスタマー
  • CustomerType
  • 部署
  • 預金
  • デポジット_カスタムフィールド
  • 預金ライン
  • Deposit_Line_CustomField
  • 預金関連取引詳細
  • Deposit_Linked_Transaction_Line
  • Deposit_TxnTaxDetail_TaxLine
  • 社員
  • 見積もり
  • Estimate_CustomField
  • 見積り記述ライン
  • 見積_割引_ライン
  • Estimate_Group_Individual_Item_Line
  • Estimate_Group_Item_Line
  • Estimate_LinkedTxn
  • Estimate_Sales_Item_Line
  • Estimate_Subtotal_Line
  • Estimate_TxnTaxDetail_TaxLine
  • 請求書
  • インボイス_カスタムフィールド
  • 請求書_説明_行
  • Invoice_Discount_Line
  • Invoice_Group_Individual_Item_Line
  • Invoice_Group_Item_Line
  • Invoice_LinkedTxn
  • Invoice_Sales_Item_Line
  • Invoice_Subtotal_Line (請求書の小計行)
  • Invoice_TxnTaxDetail_TaxLine
  • Item
  • ジャーナルコード_カスタムフィールド
  • ジャーナルエントリー_説明_行
  • JournalEntry_Line
  • JournalEntry_TxnTaxDetail_TaxLine
  • Journal_Code
  • ジャーナルエントリー
  • 支払い
  • 支払いライン
  • Payment_Line_LinkedTxn
  • 支払い方法
  • 好み
  • 設定_販売フォーム設定_カスタムフィールド
  • Preferences_OtherPrefs_NameValue
  • Preferences_VendorAndPurchasesPrefs_POCustomField
  • 購入
  • Purchase_Account_Based_Expense_Line
  • 購買_商品_ベース_経費_ライン
  • Purchase_TxnTaxDetail_TaxLine
  • 購入注文
  • 発注書_カスタムフィールド
  • PurchaseOrder_Account_Based_Expense_Line
  • PurchaseOrder_Item_Based_Expense_Line
  • PurchaseOrder_LinkedTxn
  • PurchaseOrder_TxnTaxDetail_TaxLine
  • 定期的な取引
  • RecurringTransactionLines
  • 返金領収書_カスタムフィールド
  • RefundReceipt_Description_Line
  • RefundReceipt_Discount_Line
  • RefundReceipt_Group_Individual_Item_Line
  • RefundReceipt_Group_Item_Line
  • RefundReceipt_Sales_Item_Line
  • RefundReceipt_Subtotal_Line
  • RefundReceipt_TxnTaxDetail_TaxLine
  • 返金領収書
  • リインバースチャージ
  • ReimburseCharge_Line
  • 販売伝票_カスタムフィールド
  • 売上領収書_説明_行
  • SalesReceipt_Discount_Line
  • 売上レシート_グループ_個別商品ライン
  • SalesReceipt_Group_Item_Line
  • SalesReceipt_Sales_Item_Line
  • SalesReceipt_Subtotal_Line
  • SalesReceipt_TxnTaxDetail_TaxLine
  • 領収書
  • 課税分類
  • TaxCode_PurchaseTaxRateList_TaxRateDetail
  • TaxCode_SalesTaxRateList_TaxRateDetail
  • 税務署
  • 税コード
  • Tax_Rate
  • 任期
  • Time_Activity
  • 移転
  • 売り手
  • VendorCredit_Account_Based_Expense_Line
  • ベンダークレジット_項目ベース_費用ライン
  • 仕入先クレジット

コピー アクティビティのプロパティ

アクティビティの定義に使用できるセクションとプロパティの完全な一覧については、「 Azure Data Factory と Azure Synapse Analytics のパイプラインとアクティビティ」を参照してください。 このセクションでは、QuickBooks ソースでサポートされるプロパティの一覧を示します。

ソースとしての QuickBooks

QuickBooks Online からデータをコピーするには、コピー アクティビティのソースの種類を QuickBooksSource に設定します。 QuickBooks データセットは、コピー アクティビティの source セクションで次のプロパティをサポートしています。

プロパティ 説明 必須
type コピー アクティビティのソースの種類。 QuickBooksSourceに設定する必要があります。 はい
query カスタム SQL クエリを使用してデータを読み取ります。

QuickBooks コネクタのバージョン 2.0 では、QuickBooks ネイティブ クエリのみを使用できますが、制限があります。 詳細については、Intuit Developer サイトの クエリ操作と構文 に関するページを参照してください。

QuickBooks コネクタのバージョン 1.0 では、SQL-92 クエリを使用できます。 例: "SELECT * FROM "Bill" WHERE Id = '123'"
いいえ (データセット内の tableName が指定されている場合)

次に例を示します。

"activities":[
    {
        "name": "CopyFromQuickBooks",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<QuickBooks input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "QuickBooksSource",
                "query": "SELECT * FROM \"Bill\" WHERE Id = '123' "
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

アクティビティを定義するために使用できるセクションとプロパティの完全な一覧については、「 Azure Data Factory と Azure Synapse Analytics のパイプラインとアクティビティ」を参照してください。

QuickBooks Desktop からデータをコピーする

サービスのコピー アクティビティは、QuickBooks Desktop から直接データをコピーすることはできません。 QuickBooks Desktop からデータをコピーするには、QuickBooks データをコンマ区切り値 (CSV) ファイルにエクスポートし、そのファイルを Azure Blob Storage にアップロードします。 そこから、サービスを使用して、選択したシンクにデータをコピーできます。

クイックブックのデータ型マッピング

QuickBooks からデータをコピーする場合、QuickBooks データ型からサービスが使用する内部データ型へのマッピングが次のように適用されます。 コピー アクティビティでソース スキーマとデータ型をシンクにマップする方法については、 コピー アクティビティでのスキーマとデータ型のマッピングに関するページを参照してください。

QuickBooks データ型 中間サービスのデータ型 (バージョン 2.0 の場合) 中間サービスのデータ型 (バージョン 1.0 の場合)
String string string
Boolean bool bool
DateTime datetime datetime
Decimal decimal (15,2) decimal (15, 2)
Enum string string 
Date datetime datetime
BigDecimal  decimal (15,2) decimal (15, 2)
Integer int int

Lookup アクティビティのプロパティ

ルックアップ アクティビティのプロパティの詳細については、 Azure Data Factory と Azure Synapse Analytics のルックアップ アクティビティに関するページを参照してください。

Quickbooks コネクタのライフサイクルとアップグレード

次の表は、QuickBooks コネクタのバージョンに関する情報をまとめたものです。

Version リリース段階 変更ログ
1.0 Removed 適用されません。
2.0 一般公開 QuickBooks ネイティブ クエリはサポートされており、制限があります。 GROUP BY 句、 JOIN 句、集計関数 (AvgMaxSum) はサポートされていません。 詳細については、Intuit Developer サイトの クエリ操作と構文 に関するページを参照してください。

SQL-92 クエリはサポートされていません。

useEncryptedEndpoints プロパティはサポートされていません。

特定のクイックブック テーブルをサポートします。 サポートされているテーブルの一覧については、「 データセットのプロパティ」を参照してください。

Quickbooks コネクタをバージョン 1.0 からバージョン 2.0 にアップグレードする

  1. Azure portal で、Azure Data Factory または Azure Synapse ワークスペースに移動します。

  2. [ 管理 ] タブに移動し、[ リンクされたサービス] を選択し、リンクされたサービスの [編集] を選択します。

  3. [ リンクされたサービスの編集 ] ウィンドウで、バージョン として 2.0 を選択します。 詳細については、この記事の前の バージョン 2.0 のリンクされたサービス プロパティ を参照してください。

  4. コピー アクティビティ ソースまたはバージョン 1.0 のリンクされたサービスを参照する参照アクティビティで SQL クエリを使用する場合は、それを QuickBooks ネイティブ クエリに変換する必要があります。 ネイティブ クエリの詳細については、この記事の前半の コピー アクティビティのプロパティ と、Intuit Developer サイトの クエリ操作と構文 を参照してください。

  5. バージョン 2.0 では、特定のクイックブック テーブルがサポートされていることに注意してください。 サポートされているテーブルの一覧については、「 データセットのプロパティ」を参照してください。