CData API Server を使って Power Automate で SAP SuccessFactors タスクを自動化
Microsoft Power Automate は、クラウドベースのローコード/ノーコードプラットフォームで、さまざまなアプリケーションやサービス間で反復タスクの自動化やビジネスプロセスの効率化を簡単に実現できます。
CData API Server は、オンプレミスやクラウドを問わず、複数のソースやアプリケーションからデータへのアクセスを可能にし、Power Automate の機能を拡張します。API Server の SAP SuccessFactors コネクタ(または 250 種類以上の他のコネクタ)を使用すると、OData や Swagger などの業界標準のデータアクセスプロトコルを使用して、Power Automate でアクションや複雑なワークフローをネイティブに作成し、トリガーできます。
この記事では、Power Automate と CData API Server をセットアップし、SAP SuccessFactors テーブルのリードが特定の条件に一致したときにメールや通知を送信するシンプルなトリガーを作成します。
それでは始めましょう!
前提条件
- CData API Server: こちらから無料トライアルをダウンロードできます。
- Microsoft Power Automate: こちらから無料トライアルにサインアップできます。
- データにアクセスできるアクティブな SAP SuccessFactors アカウント。
概要
以下の手順で進めていきます。
- CData API Server をインストールし、SAP SuccessFactors への接続を設定して、API Server 内で SAP SuccessFactors のデータ の OData API エンドポイントを作成します。
- これらのエンドポイントを Power Automate で使用し、SAP SuccessFactors テーブルから特定の条件が満たされたときにトリガーに基づいて自動的にメールを送信するフローを構築します。
ステップ 1:API Server のインストールと SAP SuccessFactors への接続設定
1.1 API Server のインストール
まだインストールしていない場合は、CData API Server ページからお使いの OS 用のインストーラーをダウンロードしてください。インストールウィザードに従ってセットアップを完了します。
インストールが完了したら、以下の方法でサーバーを起動できます。
- Windows: CData API Server はデフォルトでサービスとして実行されます。サービスが実行されていることを確認し、ブラウザで http://localhost:8080/ を開いて API Server 管理コンソールにアクセスします。
- Linux/Mac: サーバーを手動で実行するか、サービスとして実行できます。手動で起動するには、インストールディレクトリに移動して java -jar apiserver.jar を実行します。
- また、root 権限で service.sh を実行して、API Server を Linux システムサービスとしてセットアップすることもできます。
1.2 CORS の有効化
Microsoft Power Automate と CData API Server が異なるドメインでホストされている場合、シームレスなクロスドメイン通信を可能にするために CORS(Cross-Origin Resource Sharing)を有効にする必要があります。API Server で CORS を有効にするには:
- 「Settings」に移動し、 アイコンをクリックして CORS 設定を編集します。
- Cross-Origin Resource Sharing (CORS) を有効にします。
- Allow all domains without '*' を有効にして、すべてのオリジンを許可します。
- Access-Control-Allow-Origin に SAP SuccessFactors のオリジンドメインを入力するか、* を使用してすべてのドメインを許可します(パブリック API に適しています)。
- Access-Control-Allow-Credentials を有効にして、Cookie と認証ヘッダーを許可します。
- Access-Control-Allow-Methods に GET, PUT, POST, OPTIONS を入力します。
- Access-Control-Allow-Headers に Authorization, Content-Type を入力します。
- Access-Control-Max-Age(デフォルト:3600 秒)を設定して、プリフライトリクエストをキャッシュします。
- 「Save」をクリックします。
1.3 API Server で SAP SuccessFactors 接続を追加
- 「Settings」に移動し、右上の Add Connection をクリックします。
- SAP SuccessFactors を選択します。表示されない場合は、Only Installed をオフにしてすべてのコネクタを表示します。
- Install Connector をクリックして自動インストールします。手動セットアップの場合は、Manual Install を選択してダウンロードした ZIP ファイルをアップロードします。
- インストールが完了したら、SAP SuccessFactors を再度クリックして接続設定を開き、以下の詳細を使用して設定します。
- URL:SuccessFactors をホストするサーバーのURL
- CompanyId:SAP SuccessFactors テナントに割り当てられた一意の識別子。この値はAPI 認証に必要で、組織固有のものです
- SAP SuccessFactors LMS インスタンスのクライアントグラント種別
- SAML-2 Bearer グラント種別
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI
- OAuthClientSecret (クライアントグラント種別のみ):アプリケーションの登録時に割り当てられたクライアントシークレット
- PrivateKey (SAML-2 Bearer グラント種別のみ):カスタムOAuth アプリケーションの作成時にダウンロードした秘密鍵証明書のパス、またはその証明書のbase64 でエンコードされた内容
- CData 製品がSAP SuccessFactors からアクセストークンを取得し、それを使ってデータをリクエストします
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます
- 「Save & Test」をクリックして接続設定を検証し完了します。
SAP SuccessFactorsへの接続
それでは、SAP SuccessFactors に接続していきましょう。CData 製品は、デフォルトで有効になっているOData API を介してSAP SuccessFactors と通信します。追加の権限が必要な場合は、SAP サポートサイトをご確認ください。
認証方法として、Azure AD 認証、SAP IAS 認証、OAuth 認証(推奨)、Basic 認証(非推奨)のいずれかを使用してSAP SuccessFactors に認証できます。
必要な接続プロパティ
選択したAuthScheme に関わらず、SAP SuccessFactors 環境を識別するために以下の接続プロパティを設定しましょう。
OAuth 認証
SAP SuccessFactors では、OAuth 認証を2種類のグラント種別でサポートしています。
OAuth 認証を有効にするには、すべてのOAuth フローでカスタムOAuth アプリケーションを作成し、適切なプロパティを設定する必要があります。
デスクトップアプリケーションでカスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。
OAuth アクセストークンの取得およびリフレッシュ
以下のプロパティを設定してください。
接続すると、CData 製品がデフォルトブラウザでSAP SuccessFactors のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えてください。
アプリケーションにアクセス許可を与えると、CData 製品がOAuth プロセスを完了します。
アクセストークンの期限が切れた際は、CData 製品が自動でアクセストークンをリフレッシュします。
カスタムOAuth アプリケーションの作成やその他の認証方法については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご確認ください。
1.4 ユーザーの追加と設定
作成した OData エンドポイントへの安全なアクセスを許可するために、CData API Server でユーザーを作成・設定します。各ユーザーには認証情報とロールベースのアクセス制御があり、適切なロールを持つ承認されたユーザーのみが接続されたデータをクエリできるようになります。
- ナビゲーションペインから「Users」に移動し、右上の Add User をクリックします。
- Username を入力し、ユーザーの安全な Password を設定します。
- Role を選択します:
- Admin: 設定や接続を含むすべての機能へのフルアクセス。
- Query: API エンドポイント経由のデータアクセスに限定(Power Automate での使用に適しています)。
- (オプション)レート制限を設定:
- Requests Per Hour: 1 時間あたりの許可される API コール数(デフォルト:1000)。
- Max Concurrent Requests: 許可される並列 API リクエスト数(デフォルト:10)。
- ユーザーの Privileges を定義:
- GET: データの取得を許可。
- POST: 新しいレコードの作成を許可。
- PUT, MERGE, PATCH: 既存レコードの更新を許可。
- DELETE: レコードの削除を許可。
- 「Add User」をクリックしてユーザーアカウントを保存し、有効化します。
ユーザーを追加すると、Authtoken が自動的に生成されます。このトークンは、パスワードの代わりに安全な認証方法として API リクエストで使用できます。
また、Authtoken を更新したり、無効にしたり、ユーザー設定で Token Expiration オプションを有効にして有効期限ルール(例:有効期限までの日数)を設定することもできます。
1.5 エンドポイント用のテーブルを追加
SAP SuccessFactors のデータを OData 経由で Power Automate で利用できるようにするには、API Server を通じて目的のテーブルを公開する必要があります。手順は以下のとおりです。
- CData API Server で、左側のナビゲーションから「API」に移動し、右上の Add Table をクリックします。
- 先ほど設定した SAP SuccessFactors 接続を選択し、「Next」をクリックします。
- Tables セクションを展開して、利用可能なエンティティとスキーマを参照します。個々のテーブルを選択するか、上部の TABLE NAME チェックボックスをクリックしてすべてを選択します。次に「Confirm」をクリックします。
1.6 Power Automate でエンドポイントにアクセス
API の設定が完了したので、Power Automate から OData エンドポイントに接続してタスクを自動化できます。以下は使用できる OData エンドポイントの URL 形式です。
| エンドポイント | URL | |
|---|---|---|
| エンティティ一覧 | http://address:port/api.rsc/ | |
| テーブルメタデータ(例:albums) | http://address:port/api.rsc/albums/$metadata?@json | |
| テーブルデータ(例:albums) | http://address:port/api.rsc/albums |
これらの OData エンドポイントは、URL を使用して Power Automate で直接利用できるようになりました。Power Automate は OData をサポートしているため、ワークフローの自動化、アクションのトリガー、SAP SuccessFactors からのライブデータを自動化プロセスに統合することが簡単にできます。
CData API Server は完全な OData フィルタリング機能をサポートしています。カスタムクエリやフィルターされたビジュアライゼーションには、$select、$filter、$orderby、$top、$skip などの標準 OData クエリパラメータをリクエストに追加できます。
ステップ 2:Power Automate でメールトリガーを自動化
CData API Server が起動し、SAP SuccessFactors データから利用可能な OData エンドポイントができました。次に、条件に基づいてメールトリガーを自動化する Power Automate フローを構築しましょう。
この例では、SAP SuccessFactors の Opportunity テーブルからリードと商談データを読み取るフローを構築します。このフローは ExpectedRevenue カラムで最も高い値を持つリードを特定し、そのリードの詳細を含むメールを自動的に送信します。
ここでは、Windows 11 上の Outlook アプリと Power Automate Desktop を使用します。Windows マシンに Outlook がインストールされていない場合は、Microsoft 365 公式サイトからダウンロードするか、Microsoft Store からインストールできます。
2.1 API OData エンドポイントのフィルタリング
CData API Server は OData URL フィルター (OData ABNF) を完全にサポートしているため、URL でテーブル (リソース) を直接フィルターして、フローに取り込む前に結果を制限・ソートできます。これにより、読み込み時間が短縮され、効率が向上します。サポートされているフィルターオプションの完全なリストは こちらで確認できます。
この例では、フィルターされた URL は次のようになります: http://localhost:8080/api.rsc/public_Opportunity?$top=1&$orderby=ExpectedRevenue desc
このようにエンドポイント URL を構築できます。各部分の意味は以下のとおりです:
| URL パート | 説明 |
|---|---|
| http://localhost:8080 | CData API Server がホストされているホスト名とポートを含むベース URL |
| /api.rsc/ | CData が API リソースを公開するために使用するデフォルトのエンドポイントパスプレフィックス |
| public_Opportunity | クエリするテーブル名(リソース)— この場合は public_Opportunity テーブル |
| ? | フィルタリングやソートなどに使用されるクエリ文字列パラメータの開始を示す |
| $top=1 | フィルターされた結果セットから最初のレコードのみを返す |
| $orderby=ExpectedRevenue desc | 結果を ExpectedRevenue カラムで降順にソート |
2.2 Power Automate Desktop でフローを構築
- Power Automate Desktop を起動し、左上の New をクリックして新しいフローを追加します。
-
フローに名前を付け(例:Email-Trigger)、「Create」をクリックします。
- フローデザイナーダッシュボードで、Actions ペインの下から Region を検索し、ダブルクリックして追加します。わかりやすい名前を付けて「Save」をクリックします。
-
Invoke Web Service を検索し、ダブルクリックして追加して、以下を設定します:
- URL: 先ほど作成したフィルター済み OData URL を入力します。
- Method: GET
- Accept: application/json
- Content-Type: application/json
- Save response: Get text into variable (for web pages)
- 「Save」をクリックします。
-
Convert JSON to Custom Object を検索し、ダブルクリックして追加します。
- 青い {x} アイコンをクリックし、変数 %WebServiceResponse% を選択します。
- 「Save」をクリックします。
- Outlook を検索し、Launch Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
-
Outlook を検索し、Send email message through Outlook を選択します。ダブルクリックして追加し、以下を設定します:
- Outlook instance: %OutlookInstance%
- Account: Outlook メールアドレスを入力します。
- Send email message from: Account
- To: 受信者のメールアドレスを入力します。
- Subject: メールの件名を追加します(例:New Opportunity with Highest Expected Revenue)
-
Body: 以下のシンプルな HTML コードを貼り付けます。ラベルとテーブル名は自分のものに置き換えてください:
Top Lead Details: Account ID: %JsonAsCustomObject['value'][0]['AccountId']% Name: %JsonAsCustomObject['value'][0]['Name']% Expected Revenue: %JsonAsCustomObject['value'][0]['ExpectedRevenue']% Close Date: %JsonAsCustomObject['value'][0]['CloseDate']% - Body is HTML: このオプションをオンにします。
- 「Save」をクリックします。
- Outlook を検索し、Close Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
- End region を検索し、ダブルクリックしてフローに追加します。
-
最終的なフローは次のようになります:
-
上部の「Run」をクリックしてフローを開始します。プロセスは自動的に Outlook を開き、フローで指定された受信者にメールを送信します。メールは次のようになります:
2.3 フローのスケジュールと改善
これで、最も高い ExpectedRevenue を持つ新しいリードが見つかったときにメールを送信するフローができました。Power Automate Desktop には組み込みのスケジュール機能がないため、Windows タスク スケジューラまたは Power Automate(クラウド)を使用して、設定した間隔で継続的に実行する必要があります。
重複メールを避けるには、Power Automate の Write text to file アクションを使用して Id フィールドをファイル(例:lastLead.txt)に保存します。実行するたびに、Read text from file アクションを使用して現在の Id と比較します。一致した場合はメールをスキップし、新しいリードに対してのみアラートが送信されるようにします。
このフローは始まりにすぎません。CRM レコードの更新、高価値リードの Excel へのログ記録、リアルタイム Slack アラートの送信など、リード管理プロセスのさらに多くのステップを自動化するように拡張できます。
CData API Server を 30 日間無料でお試しください
ローコード/ノーコードプラットフォームで OData REST API を構築し、ライブデータとのシームレスな統合を実現しましょう。CData API Server を 30 日間無料でお試しいただき、SAP SuccessFactors(または 250 種類以上の他のコネクタ)からのライブデータを使用して Power Automate でタスクを自動化する方法を体験してください。
こちらから無料トライアルを開始できます。