Procure-to-Pay プロセス向けの SAP アクセラレータは、Cloud Data Fusion の SAP テーブル バッチ ソース機能の実装例です。SAP Procure to Pay アクセラレータは、エンドツーエンドの Procure-to-Pay プロセスと分析を作成する際に役立ちます。このアクセラレータには、次のタスクを行うように構成できるサンプルの Cloud Data Fusion パイプラインが含まれています。
- SAP データソースに接続する。
- Cloud Data Fusion でデータの変換を行う。
- BigQuery にデータを保存する。
- Looker で分析を設定する。これには、ダッシュボードと ML モデルが含まれます。ここでは、Procure-to-Pay プロセス用の重要業績評価指標(KPI)を定義できます。
このガイドでは、実装のサンプルと、構成の開始方法について説明します。
このアクセラレータは、バージョン 6.4.0 以降で動作している Cloud Data Fusion 環境で利用できます。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Data Fusion and BigQuery APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Data Fusion and BigQuery APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- SAP テーブル バッチ ソースをダウンロードします。
- Looker Block をインストールするには、Looker インスタンスへのアクセス権があり、マーケットプレイス Labs 機能 を有効にしている必要があります。無料トライアルを リクエスト すると、インスタンスにアクセスできるようになります。
必要なスキル
SAP Procure to Pay アクセラレータを設定するには、次のスキルが必要です。
- SAP On-Prem ERP システムと構成に関する専門知識
- Cloud Data Fusion に関する知識
- BigQuery に関する知識
- Looker に関する知識
- Identity and Access Management(IAM)サービス アカウントとアクセス制御の基本知識
- SQL クエリの作成など、データ分析に関する知識
- Kimball のディメンション データモデルに関する知識
必要なユーザー
このページで説明する構成では、SAP システムと で Google Cloudの変更が必要になります。この構成を行うには、これらのシステムに関する次のユーザーと連携する必要があります。
| ユーザーの種類 | Description |
|---|---|
| SAP 管理者 | SAP サービス サイトにアクセスしてソフトウェアをダウンロードできる SAP システムの管理者。 |
| SAP ユーザー | SAP システムへの接続を認可された SAP ユーザー。 |
| GCP 管理者 | 組織の IAM アクセスを管理する管理者。サービス アカウントの作成とデプロイを行い、Cloud Data Fusion、BigQuery、Looker に関する権限を付与します。 |
| Cloud Data Fusion ユーザー | Cloud Data Fusion でデータ パイプラインを設計、実行する権限があるユーザー。 |
| BigQuery データオーナー | BigQuery データセットの作成、表示、変更する権限があるユーザー。 |
| Looker デベロッパー | このユーザーは、Marketplace から Looker Block をインストールできます。このユーザーには、develop 権限、manage_model 権限、deploy 権限が必要です。 |
必要な IAM のロール
アクセラレータのサンプル実装には、次の IAM ロールが必要です。プロジェクトが他の Google Cloud サービスに依存している場合は、追加のロールが必要になることがあります。
- BigQuery 管理者(
roles/bigquery.admin) - BigQuery データオーナー(
roles/bigquery.dataOwner) - Storage オブジェクト閲覧者
(
roles/storage.objectViewer) - Managed Service for Apache Spark サービス アカウントに付与する必要がある Cloud Data Fusion 実行者
(
roles/datafusion.runner)
プロセスの概要
アクセラレータをプロジェクトに実装する手順は次のとおりです。
- SAP ERP システムを構成し、提供された SAP トランスポートをインストールします。
- SAP テーブル バッチ ソース プラグインを使用するように Cloud Data Fusion 環境を設定します。
- BigQuery でデータセットを作成します。 アクセラレータには、ステージング テーブル、ディメンション テーブル、ファクト テーブルのサンプル データセットが用意されています。
- アクセラレータのサンプル Cloud Data Fusion パイプラインを構成して、SAP データを統合します。
- Cloud Data Fusion Hub から、Procure-to-Pay 分析プロセスに関連するパイプラインをデプロイします。BigQuery データセットを作成するには、これらのパイプラインを正しく構成する必要があります。
- Looker を BigQuery プロジェクトに接続します。
- Looker Block をインストールしてデプロイします。
詳細については、SAP テーブル バッチ ソース プラグインの使用をご覧ください。
BigQuery のサンプル データセット
このアクセラレータのサンプル実装では、次のデータセットが BigQuery に作成されます。
| データセット名 | Description |
|---|---|
sap_cdf_staging |
そのビジネス プロセスに対して、指定された SAP ソースシステムのすべてのテーブルが含まれます。 |
sap_cdf_dimension |
顧客ディメンションやマテリアル ディメンションなどの主要なディメンション エンティティが含まれます。 |
sap_cdf_fact |
パイプラインから生成されたファクト テーブルが含まれます。 |
Cloud Data Fusion のサンプル パイプライン
このアクセラレータのサンプル パイプラインは、Cloud Data Fusion Hub で入手できます。
Hub からサンプル パイプラインを取得する手順は、次のとおりです。
- インスタンスに移動します:
Google Cloud コンソールで、Cloud Data Fusion のページに移動します。
Cloud Data Fusion Studio でインスタンスを開くには、[インスタンス]、[インスタンスを表示] の順にクリックします。
- [Hub] をクリックします。
- [SAP] タブを選択します。
- [パイプライン] を選択します。サンプル パイプラインのページが開きます。
- 目的のパイプラインを選択してダウンロードします。
各パイプラインには、ご利用の環境で実行するように構成できるマクロが含まれています。
サンプル パイプラインには次の 3 つのタイプがあります。
- ステージング レイヤ パイプライン: このタイプのパイプラインのステージング データセットは、SAP 内の元のソーステーブルに直接マッピングされます。サンプルのステージング レイヤ パイプラインには、SAP ソーステーブルと BigQuery ターゲット テーブルを参照する名前があります。たとえば、
LFA1_Supplier_Masterという名前のパイプラインは、SAP ソーステーブル(LFA1)と BigQuery ターゲット テーブル(CustomerMaster)を参照します。 - ディメンション レイヤ パイプライン: このタイプのパイプラインのディメンション レイヤ データセットは、分析に必要なディメンションとファクトを作成する、キュレートされ、調整されたバージョンのステージング データセットです。このサンプル パイプラインには、ターゲット BigQuery データセット内のターゲット エンティティを参照する名前があります。たとえば、
customer_dimensionというパイプラインは、BigQuery データセットsap_cdf_factの顧客ディメンション エンティティを参照します。 - ファクト レイヤ パイプライン: ファクト レイヤ データセットは、分析に必要なファクトを作成する、キュレートされ、調整されたバージョンのステージング データセットです。これらのサンプル パイプラインには、ターゲットの BigQuery データセット内のターゲットのエンティティを参照する名前があります。たとえば、
sales_order_factという名前のパイプラインは、対応する BigQuery データセットsap_cdf_factのセールス オーダー ファクト エンティティにキュレートされたデータを配信します。
以下のセクションでは、ご利用の環境でパイプラインを取得する方法についてまとめています。
ステージング レイヤ パイプラインを構成する
ステージング パイプラインには次の 2 つの構成手順があります。
- ソース SAP システムを構成する。
- ターゲットの BigQuery データセットとテーブルを構成する。
SAP テーブル バッチ ソース プラグインのパラメータ
SAP テーブル バッチ ソース プラグインは、SAP テーブルまたはビューのコンテンツを読み取ります。アクセラレータには次のマクロが用意されています。これらのマクロを変更して、SAP 接続を集中管理できます。
| マクロ名 | 説明 | 例 |
|---|---|---|
${SAP Client} |
使用する SAP クライアント | 100 |
${SAP Language} |
SAP ログオン言語 | EN |
${SAP Application Server Host} |
SAP サーバー名または IP アドレス | 10.132.0.47 |
${SAP System Number} |
SAP システム番号 | 00 |
${secure(saplogonusername)} |
SAP ユーザー名 | 詳細については、Using Secure Keys をご覧ください。 |
${secure(saplogonpassword)} |
SAP ユーザーのパスワード | 詳細については、Using Secure Keys をご覧ください。 |
${Number of Rows to Fetch} |
抽出されるレコードの数を制限します。 | 100000 |
詳細については、プラグインの構成をご覧ください。
BigQuery ターゲットのパラメータ
アクセラレータには、BigQuery ターゲット用に次のマクロが用意されています。
BigQuery ターゲット コネクタの構成
| マクロ名 | 説明 | 例 |
|---|---|---|
${ProjectID} |
BigQuery データセットが作成されたプロジェクト ID。 | sap_adaptor |
${Dataset} |
ターゲット データセット | sap_cdf_staging |
Procure-to-Pay KPI に使用されるパイプラインの例
アクセラレータのサンプル パイプラインに対応した、Procure-to-Pay 処理における主なビジネス エンティティは次のとおりです。これらのパイプラインは、こうしたエンティティに関する分析を後押しするデータを提供します。
| 主なビジネス エンティティ | 対応するパイプライン名 |
|---|---|
Supplier SAP ソーステーブルは、ビジネスに関連するサプライヤの詳細情報を取得します。これらのテーブルからの情報は、データ ウェアハウスのディメンション レイヤ内にある supplier_dimension に追加されます。 |
LFA1_SupplierMaster
|
Material または Product は、企業とその顧客との間で取引される商品です。これらのテーブルから得られた情報は、データ ウェアハウスのディメンション レイヤ内にある material_dimension に追加されます。 |
MARA_MaterialMaster |
| Procure-to-Pay プロセスは、物品の注文の数量と詳細情報が含まれる注文から開始されます。 |
EKKO_PurchaseOrderHeader
|
| 受領書サブプロセス。物品の移動の詳細情報が含まれます。 |
MATDOC_GoodsReceipt
|
| 請求書発行サブプロセス。リクエストされた請求書ドキュメントの詳細が含まれます。 |
RBKP_InvoiceHeader
|
| 請求書の支払いがシステムに記録されると、Procure-to-Pay のプロセスが終了します。 |
ACDOCA_UniversalJournalItem
|
すべての Cloud Data Fusion ステージング パイプライン
アクセラレータでは、次の Cloud Data Fusion ステージング パイプラインのサンプルを使用できます。
ACDOCA_JournalLedgerDetailsADR6_SupplierMasterEMailDetailsADRC_SupplierMasterAddressDetailsBKPF_AccountingDocumentHeaderDetailBSEG_AccountDocumentItemBUT000_BusinessPartnerGeneralDataDetailsBUT020_BusinessPartnerAddressDetailsCEPCT_ProfitCenterDescriptionEBAN_PurchaseRequisitionDetailsEKBE_PurchaseOrderHistoryDetailEKET_PurchaseOrderScheduleLinesDetailEKKO_PurchaseOrderHeaderDetailEKPO_PurchaseOrderItemDetailFINSC_BTTYPE_T_BusinessTransactionTypeDescriptionFINSC_LEDGER_T_JournalLedgerDescriptionLFA1_SupplierMasterDetailsLFB1_SupplierMasterCompanyCodeDetailsMARA_MaterialMasterMATDOC_MaterialMovementDetailsMKPF_MaterialMovementHeaderDetailMSEG_MaterialMovementItemDetailRBKP_InvoiceReceiptHeaderDetailRSEG_IncomingInvoiceItemDetailT001_CompanyCodesT001_CompanyCodesT001K_ValuationAreaDetailsT001L_MaterialStorageLocationT001W_PlantDetailsT002T_LanguageKeyDescriptionT003T_AccountingDocumentTypeDescriptionT005_CountryMasterT006A_UnitOfMeasureT007S_PurchaseSalesTaxCodeDescriptionT023T_MaterialGroupDescriptionT024_PurchasingGroupsDetailsT024E_PurchasingOrganizationsDetailsT024W_PlantPurchasingOrganizationsDetailsT156HT_MaterialMovementTypeDescriptionT161T_PurchasingDocumentTypeDescriptionT163M_ConfirmationCategoryDescriptionT16FE_PurchaseDocumentReleaseIndicatorDescriptionTBSLT_PostingKeyDescriptionTCURT_CurrencyCodesTextTKA01_ControllingAreaMaster
ディメンション レイヤのパイプラインを構成する
KPI は、ソース SAP テーブルから抽出できます。分析用にデータを準備するには、BigQuery テーブルのスキーマ構造と一致するように、ソーステーブルのデータを整理します。
アクセラレータによって、次のサンプル テーブルが作成されます。
| テーブル名 | テーブルの説明 |
|---|---|
Supplier_dimension |
サプライヤーおよび関連するファクトのキュレートされたリスト*(サプライヤーの全般情報、サプライヤーの販売関連情報など)。 |
Material_dimension |
物品および関連するファクトのキュレートされたリスト(SKU 番号、プロダクト階層、分類など)。 |
Purchase_Order_Fact |
注文書のリスト(購入組織、グループ、注文の種類など)。 |
Goods_Receipt_Fact |
受領書のキュレートされたリスト(プロフィット センターや移動の種類に関する情報など)。 |
Invoice_Fact |
請求書に関する情報のキュレートされたリスト(請求書のタイプ、アイテム数、価額、請求書の発行日など)。 |
Accounting_Fact |
各注文書の項目の会計記録のキュレートされたリスト。 |
*このコンテキストでは、キュレートされたリストは、選択された列のリストに適用されるビジネス ロジックから生成されます。
アクセラレータは、SQL スクリプトを使用して BigQuery データセットのディメンション レイヤを構築します。これはプロジェクトで変更できます。たとえば、これらのスクリプトを適応させて、ターゲットの BigQuery データセット エンティティに列を追加できます。
スタースキーマへの変換: BigQuery エグゼキュータのパイプライン名
Cloud Data Fusion の以下の BigQuery エグゼキュータ パイプラインは、ディメンション テーブルとファクト テーブルにデータを読み込みます。
すべてのディメンション変換パイプライン
Supplier_dimensionMaterial_dimensionPurchase_Order_FactGoods_Receipt_FactInvoice_FactAccounting_Fact
BigQuery エグゼキュータの構成
| マクロ名 | 例 |
|---|---|
${ProjectID} |
sap_adaptor |
${StagingDatasetName} |
sap_cdf_staging |
${TargetDatasetName} |
sap_cdf_dimension |
Looker を BigQuery プロジェクトに接続する
Looker を BigQuery に接続するには、BigQuery 接続に関する Looker のドキュメントをご覧ください。
ブロックをインストールする
GitHub で SAP Looker Block にアクセスできます。
次のステップ
- Cloud Data Fusion について学ぶ。
- SAP on Google Cloud について学ぶ。
- BigQuery の詳細を確認する。
- Looker Block について学ぶ。