コンテンツへスキップ
All articles
Setup

エンタープライズERP:SAPとNetSuite

SellioをSAP(OData)またはNetSuite(REST)と双方向で接続する手順ガイド:アカウント、注文、請求書をERPに送信し、イベント(請求書支払い済み、注文/顧客更新)を受け取ります。BYOモデル:ERPと認証情報はあなたのものです。

この連携は、SellioをSAP(OData経由)またはNetSuite(REST Record Service経由)のいずれかであなたのエンタープライズERPに接続し、深く、双方向の同期を実現します。単純なエンドポイントへのPOSTのみを行う汎用「ERP/請求」コネクタを補完するもので、ここでは各プラットフォームの型付きAPIと、それぞれの実際の認証方式で直接やり取りします。BYOモデル:アカウントと認証情報はあなたのものであり、当社側でのコストはありません。すべては無効な状態で始まります。設定して有効化するまで何も送受信されません。シークレットは暗号化して保存され、再表示されることはありません。

各方向で起きること:「送信」(Sellio → ERP)では、あなたが(または自動化が)トリガーすると、CRMはERPの言語でレコードを組み立て(SAPではOData EntitySet、NetSuiteではrecordType)、認証付きPOSTを行います。「受信」(ERP → Sellio)では、ERPが各イベント(請求書支払い済み、注文更新、顧客更新)ごとにSellioのwebhook URLを呼び出します。Sellioは金額+通貨で保留中の支払いを照合するか(それが支払い済みの請求書/注文の場合)、対応する連絡先に活動を記録します。重複するイベントは外部IDで重複排除されます。

💡 お使いのプラットフォームに応じて経路を選んでください。SAP、NetSuite、または両方を設定できます。それぞれ設定 → 連携に独自のカードと独自のwebhook URLがあります。

1. 前提条件

SAP(S/4HANA Cloud、SAP Gateway経由のS/4HANAオンプレミス、またはSAP BTP):同期する各エンティティ用に公開されたODataサービス(例えば、アカウント/連絡先用の標準サービスAPI_BUSINESS_PARTNER、注文用のAPI_SALES_ORDER_SRV、請求書用のAPI_BILLING_DOCUMENT_SRV)と、それを呼び出すための認証情報が必要です。認証情報には2つの選択肢があります:(a)Basic AuthのCommunication User、または(b)SAP BTP上のOAuth 2.0クライアント(client credentials)。権限:ユーザー/クライアントは、選択したODataエンティティへの作成(POST)権限が必要です。

NetSuite(SuiteTalk REST):アカウントで「SuiteTalk(SOAP and REST Web Services)」機能と「Token-Based Authentication」機能が有効になっていること、また同期するオブジェクト(Customers、Sales Orders、Invoices)のLists/Records権限と「REST Web Services」権限(Setup配下)を持つRoleのユーザーが必要です。Integration Record(Consumer Key/Secret)とAccess Token(Token ID/Secret)を作成します。

  • コネクタを保存・有効化するには、Sellioの管理者(設定を管理する権限)である必要があります。
  • URL/IDを手元に用意してください:SAPではODataサービスのベースURL、NetSuiteではあなたのAccount ID(例:1234567、サンドボックスの場合は1234567_SB1)。

2. プロバイダー側(SAP):ODataを公開し、認証情報を作成する

  1. 目的のエンティティのODataサービスを公開/有効化します。S/4HANAオンプレミスでは、トランザクション/IWFND/MAINT_SERVICEを使ってサービス(例:API_BUSINESS_PARTNER)を追加・有効化し、結果として得られるベースURL(https://yourhost:44300/sap/opu/odata/sap/API_BUSINESS_PARTNERのようなもの)をメモします。S/4HANA Cloudでは、サービスはすでに公開されているため、対応するCommunication ArrangementからService URLをコピーします。
  2. 通信認証情報を作成します。Basic Authの場合:Communication Management → Maintain Communication Usersで、ユーザー名とパスワードを持つCommunication Userを作成し、Communication Arrangementsで、そのユーザーをODataサービスを公開するCommunication Scenarioに紐付けます。OAuth 2.0(BTP)の場合:サービスインスタンスを作成し、Client ID、Client Secret、Token URL(エンドポイント/oauth/token)をメモします。
  3. ユーザー/クライアントがエンティティへのPOST(作成)権限を持っていることを確認します。同じ認証情報でコレクションのGETをブラウザ/Postmanで素早くテストし、アクセスを確認します。

2. プロバイダー側、NetSuite(Integration Record + Access Token TBA)

  1. 機能を有効化します:Setup → Company → Enable Features → SuiteCloudタブ →「SOAP Web Services」および/または「REST Web Services」と「Token-Based Authentication」にチェックを入れます。保存します。
  2. Integration Recordを作成します:Setup → Integration → Manage Integrations → New。名前を付け(例:「Sellio CRM」)、「Token-Based Authentication」をチェックしたままにし、TBAのみを使う場合は「TBA: Authorization Flow」と「OAuth 2.0」のチェックを外して保存します。NetSuiteはConsumer KeyとConsumer Secretを「一度だけ」表示するので、今すぐ両方をコピーしてください(再表示されません)。
  3. Access Tokenを作成します:Setup → Users/Roles → Access Tokens → New。Application Name(作成したIntegration Record)、User、Role(Records権限+「REST Web Services」を持つロール)を選択します。保存します。NetSuiteはToken IDとToken Secretを「一度だけ」表示するので、今すぐ両方をコピーしてください。
  4. あなたのAccount IDをメモします:Setup → Company → Company Information(「Account ID」フィールド)、例:1234567(本番)または1234567_SB1(サンドボックス)。
💡 Consumer Key/SecretとToken ID/Secretは安全に保管してください。NetSuiteは二度と表示しません。紛失した場合は、再度生成する必要があります。

3. Sellioで:認証情報を貼り付けて有効化する

  1. 設定 → 連携を開き、「SAP(エンタープライズERP)」または「NetSuite(エンタープライズERP)」カードを見つけます。
  2. SAP:「ODataサービスURL」に、サービスのベースURLを貼り付けます(末尾のスラッシュとEntitySet名は不要です。SellioがEntitySetを正しく付加します)。「認証タイプ」で、Basic(ユーザー名+パスワードを貼り付け)またはOAuth 2.0(トークンURL+Client ID+Client Secretを貼り付け)を選択します。
  3. NetSuite:「Account ID」にIDを貼り付けます(例:1234567または1234567_SB1)。「認証タイプ」でToken-Based Authentication(TBA)を選択し、Consumer Key、Consumer Secret、Token ID、Token Secretを貼り付けます。(OAuth 2.0を使いたい場合は、そのオプションを選択してAccess Tokenを貼り付けます。)
  4. ERPのイベントをSellioに送り返す場合は、「Webhookシークレット」を入力します。受信には「必須」です:イベントは支払いを確定させ得るため、セキュリティ上、Sellioはこのシークレット/署名を伴うwebhookのみを受け付けます。ないと受信は拒否されます(手順4を参照)。暗号化して保存されます。
  5. 「コネクタを保存」をクリックします。認証情報は暗号化して保存されます。その後「有効化」をクリックします。送信と受信は、コネクタが「有効化」されて初めて機能します。

ERPイベントを受信するには:保存後、「webhook URLを生成」を使い、そのURL(形式:https://app.../api/inbound/erp/YOUR_TOKEN)をコピーします。そのURLをERPのwebhook送信先に貼り付けます:SAPでは自動化/ミドルウェア(Event Mesh、SAP BTP、またはPOSTするジョブ)に、NetSuiteではUser Event Script/RESTlet、またはイベントをPOSTする自動化ツール(SuiteFlow+スクリプト)に。プロバイダー(SAPまたはNetSuite)はトークン自体によって識別されるため、URL内で選択する項目はありません。

4. テスト方法

  1. コネクタが有効化された状態で、カードの「テストレコードを送信」をクリックします。Sellioは架空のアカウント(「Sellio CRM」接続テスト)を組み立てて、あなたのERPに送信します。
  2. ERP側で確認します:SAPでは対応するエンティティで新しく作成されたBusiness Partnerを、NetSuiteではLists → Relationships → Customersで新しいCustomerを探します。
  3. 「テストレコードがERPに送信されました」と表示されれば、認証とエンドポイントは正しいということです。次に、「実際の」レコードを送信するには、CRMレコード(アカウント、連絡先、注文、商談、または請求書)から送信をトリガーしてください。Sellioは同じ経路を使用します。
  4. 「受信」をテストするには:ERP内でイベントを生成(またはシミュレート)し(例えば請求書を支払い済みにする)、Sellio内で同じ金額の保留中支払いが照合されたか、または対応する連絡先に活動が現れたかを確認します。
💡 テスト送信は、あなたのCRMに「何も」書き込みません。接続を検証するためのERPへの呼び出しにすぎません。実際のレコードを送信する際は、あなたの権限を尊重してIDでレコードを取得します。

5. トラブルシューティング

  • 401(unauthorized):認証情報が間違っているか期限切れです。SAP Basic → Communication Userのユーザー名/パスワードを確認、SAP OAuth → Client ID/Secretとトークン URLを確認、NetSuite TBA → Consumer Key/SecretとToken ID/Secretを確認してください(1文字の過不足で署名が無効になります)。シークレットを貼り直してください(セキュリティ上、サーバーから再取得できません)。
  • 無効なTBA署名(NetSuite):Token-Based Authenticationは、メソッド、正確なURL(クエリパラメータを含む)、Account ID(realm)に依存するHMAC-SHA256のOAuth 1.0aを使用します。Account IDが正しいこと(サンドボックスでは_SB1サフィックス付き)、4つの値(Consumer Key/Secret、Token ID/Secret)がスペースなしで貼り付けられていることを確認してください。NetSuiteでトークンを再生成した場合は、Sellioでも更新してください。
  • 403(forbidden):認証情報は認証されていますが、ロール/ユーザーがそのレコードを作成する権限を持っていません。NetSuiteではRoleの権限(Lists/Records+「REST Web Services」)を、SAPではODataエンティティ/Communication ScenarioへのPOST権限を確認してください。
  • Entity/recordTypeが見つからない(404):SAPではODataサービスURLが間違っているか、サービスが有効化されていません。ベースURL(EntitySetなし)を確認し、/IWFND/MAINT_SERVICEでサービスを有効化してください。NetSuiteでは、デフォルトのrecordTypeがあなたのものと一致しない場合があり、カスタムのアカウント/注文/請求書には異なるrecordTypeが必要になることがあります(マッピングの調整についてサポートにお問い合わせください)。
  • フィールドが拒否される:SAPとNetSuiteはプロパティ名に厳格です。Sellioは共通フィールドの控えめなセット(name、email、phone、company、amount、currency、reference)を送信します。ERPが追加の必須フィールド(例:SAPのBP Category、NetSuiteのsubsidiary)を要求する場合、それらはマッピングされる必要があるため、設定でマッピングを調整するか、サポートにお問い合わせください。
  • Webhookが届かない(受信):コネクタが「有効化」されていること(無効化されたコネクタのwebhookは404を返します)、ERPに貼り付けたURLが(トークン付きで)完全であること、「Webhookシークレット」を設定した場合はERPがX-Sellio-Secretヘッダーでシークレットを送信するか、本文のHMAC-SHA256を署名ヘッダーで送信していることを確認してください。そうでない場合、レスポンスは401になります。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

無料アカウントを作成
エンタープライズERP:SAPとNetSuite · Sellio