はじめに
WinActorのOAuth関連ライブラリを使用して、Salesforce Lightning Platform (以降、Salesforceと記載します。) の Leadオブジェクトに対し、データを登録するサンプルシナリオについて説明します。
本サンプルシナリオの概要
本サンプルシナリオは、以下の処理を行います。
- OAuthを使用して、Salesforce のアクセストークンを取得します。
- Excelファイルから情報を読み出します。
- OAuthを使用して、SalesforceのLeadに対してデータを登録します。
- 全データ分処理を実施した後、使用したSalesforce のアクセストークンを開放します。
使用するWinActorモジュール
本サンプルシナリオでは、以下のWinActorモジュールを使用します。
- ノード/アクション/スクリプト実行
- ノード/アクション/クリップボード
- ノード/ユーザ/待機ボックス
- ノード/変数/カウントアップ
ノード/変数/変数値設定
01_WinActor制御/02_シナリオ制御/シナリオ停止.ums5
- 07_文字列操作/03_連結/文字列の連結(2つ).ums5
07_文字列操作/03_連結/文字列の連結(3つ).ums5
- 13_ファイル関連/02_ファイル操作/ファイル移動.ums5
- 13_ファイル関連/02_ファイル操作/ファイル削除.ums5
- 13_ファイル関連/02_ファイル操作/ファイル存在有無チェック.ums5
- 13_ファイル関連/03_フォルダ操作/フォルダ作成.ums5
13_ファイル関連/05_ファイル名/シナリオフォルダのファイルパス.ums5
- 18_Excel関連/01_ファイル操作/Excel開く(前面化).ums5
- 18_Excel関連/01_ファイル操作/Excel操作(保存なしで閉じる).ums5
18_Excel関連/03_行列操作/Excel操作(行コピー).ums5
- 99_外部サービス連携/01_OAuth関連/アクセストークンの取得.ums5
- 99_外部サービス連携/01_OAuth関連/アクセストークンの取り消し.ums5
99_外部サービス連携/01_OAuth関連/RESTful API実行.ums5
本サンプルシナリオの入力ファイル
Excelファイルを入力ファイルとします。
シナリオ内でExcelファイルをオープンし、処理を実施するのに必要な情報を取得します。
入力ファイルの詳細は入力ファイルの形式を参照してください。
本サンプルシナリオの出力ファイル
登録時の実施結果を、JSON形式のログファイルとして保存します。
詳細はログファイルを参照してください。
本サンプルシナリオの想定レベル
本ドキュメントは、以下の技術レベルのユーザを対象としています。
- Salesforce の REST API の使い方について理解している。
- OAuth認証の用語について理解している。
動作確認環境
サンプルシナリオは以下の環境で確認しています。
- Windows 10
- WinActor 5.3.1
- Microsoft Excel 2016
- Salesforce REST API v44.0
制約事項
- 本サンプルシナリオを実行するためには、Salesforce Lightning Platform Developer Editionにアクセスするためのインターネット環境が必要です。
- 本サンプルシナリオおよびドキュメントは、Salesforce Lightning Platform Developer Edition のアカウントを新規作成した状態を前提に記載されています。
- Salesforce Lightning Platform Developer Editionの利用方法やREST APIの使用、OAuth認証用パラメータの取得方法などは、Salesforce社のドキュメントを参照してください。
- 本サンプルシナリオは WinActor 5.3.1 でサポートされた機能を使用しています。WinActor 5.3.1 より古いバージョンでは動作しません。
- 本サンプルシナリオは、大量データでの動作は未検証です。問題が発生した場合は、一度に登録するデータを減らして処理を分割してみてください。
本サンプルシナリオの使い方
本サンプルシナリオの実施方法は以下の通りです。
Step 1. Salesforceの接続アプリケーション設定
本サンプルシナリオでSalesforce にアクセスする場合、Salesforce 側にも接続用のアプリケーションが必要です。まだ 接続アプリケーションを作成していない場合は、 Salesforce.com日本語公開ヘルプサイトの「接続アプリケーションの作成」 を参照して、以下の接続アプリケーションを作成してください。
- OAuth 設定の有効
- データへのアクセスと管理 (api)実施可能
- Web サーバフローの秘密が必要
- 存在しないURLのコールバックを指定(例:mysampleapp://auth/success)
Step 2. 入力ファイルをディレクトリに配置
本サンプルシナリオ(SS1903_5448_AccessSalesforceLead_Add.ums5)が格納されているディレクトリに移動します。
このディレクトリに入力ファイルを配置します。
本サンプルシナリオには、サンプルのExcelファイル(sample.xlsx)が添付されています。
このファイルを使用して、登録を行うことができます。 他の入力ファイルを使用する場合は、入力データを格納したファイルを、本サンプルシナリオと同じディレクトリに配置する必要があります。
Step 3. WinActorで本サンプルシナリオを読み込み
WinActorを起動し、本サンプルシナリオを読み込みます。
Step 4. Salesforceアクセス用情報を設定
Salesforceの接続アプリケーションにアクセスするための値を、変数一覧で設定します。
アクセス用情報の設定 を参照してください。
Step 5. 入力ファイル名を設定
本サンプルシナリオを実行するために必要な値を、変数一覧で設定します。
本サンプルシナリオの実行にあたり、事前に設定が必要な変数は下記の通りです。
- 入力ファイル
- 本サンプルシナリオの入力ファイル名を指定します。
例) sample.xlsx
- 本サンプルシナリオの入力ファイル名を指定します。
Step 6. WinActorで本サンプルシナリオを実行
本サンプルシナリオを実行開始します。
入力ファイルにあるデータをすべて実施するまで、サンプルシナリオはループします。
Step 7. サンプルシナリオ実行終了後の確認
Salesforceのサイトにアクセスし、データがすべて格納されていることを確認してください。
トラブルシューティング
本サンプルシナリオでは、シナリオ固有のエラーメッセージ、および使用しているライブラリ由来のエラーメッセージを表示することがあります。
以下に、シナリオ固有のエラーメッセージについて記載します。
エラーメッセージ | エラー内容 |
---|---|
ヘッダに有効な情報がありません。 処理を中断します。 |
入力ファイルのヘッダ(1行目)に項目名がありません。 入力ファイルを見直してください。 注:ヘッダにID列しかない場合も、有効情報なしとみなします。 |
ライブラリ由来のエラーメッセージについては、ライブラリのエラーメッセージ一覧を参照してください。
サンプルシナリオ解説
本サンプルシナリオで使用している実装テクニックについて説明します。
入力ファイルの形式
入力ファイル(Excel)は以下の形式をとります。
行番号 | 指定内容 | 詳細 |
---|---|---|
1行目 | ヘッダ | 登録対象のデータの項目名を登録。1列1項目名 1 2 |
2行目以降 | 登録データ | 登録用情報。項目名分格納すること。 |
登録時に何のデータを書き込むかを、入力ファイルの1行目ヘッダで指定します。
必須項目、および任意の項目を指定可能です。
本サンプルシナリオで確認している項目については、Salesforce Leadのデータ項目 を参照してください。
2行目以降に、登録するデータを1行1レコードとして格納します。
本サンプルシナリオの場合、必須項目がないレコードは登録時にエラーとなります。
また、いずれかのデータが最大長を超える場合、エラーとなります。
Salesforceでは、Lead等の各オブジェクトに新しいデータを追加したり、データ形式を変更することができます。
Leadの初期値に無い項目を指定することも可能ですが、本サンプルシナリオでは、Leadの初期状態でのみ動作確認を行っています。
入力ファイルを自作する場合の注意事項
本サンプルシナリオは、Excelのセルの表示上の文字列を、Excelの行コピー使用して取得した後、Salesforceに保存します。
入力ファイルを自作する場合は、表示上の文字列が正しいかを確認してください。
セルに以下のようなデータを格納している場合、Excelのセル書式によっては表示が変換されていることがあります。
セルに入力した値 | 入力例 | Excelの表示例 | 標準書式時にExcelで表示される値 |
---|---|---|---|
数値や数式と認識されるデータ | 0120156489 | 120156489 | 先頭の0が欠落したり、数式の計算結果が表示されます。 |
12桁以上の数値データ | 123456789123406 | 1.23457E+14 | 指数表記になります。 |
日付と認識されるデータ | 11/9 | 11月9日 | 日付のフォーマットに変換されます。 |
入力した通りの値をSalesforceに保存したい場合、これらの文字列が格納されるセルの書式を、事前に文字列に設定してから値を入力してください。
Salesforceに送る情報(RESTful API実行.ums5 ライブラリの送信用データファイル)
本サンプルシナリオは、「JSONファイル作成」処理で、Excel上の1行(1レコード)毎に1つのJSONファイルを作成します。
「JSONファイル作成」処理では、以下の処理を実施します。
Excelの1行分のデータをJSON形式の文字列にします。
この時、本サンプルシナリオでは以下の文字のみエスケープを行います。- 改行
- ダブルクォーテーション
上記以外に何らかのエスケープ処理を埋め込む場合は、この「JSONファイル作成」処理に追加してください。
作成した文字列をUTF8に変換して、ファイル出力します。
ここで作成されたファイルが RESTful API実行.ums5 ライブラリを経由してSalesforceに渡されます。
Salesforceの実施結果取得(RESTful API実行.ums5 ライブラリの受信用データファイル)
本サンプルシナリオは、「登録結果確認」処理で、Salesforceから送られた実施結果のJSONファイルを解析します。
「登録結果確認」処理では、以下の処理を実施します。
- ファイルをUTF8として読み出します。
- 読み出した結果をHtmlFile オブジェクトを使用して、JSONParse します。
- パースされたJSONのデータから、実施結果の情報を取得します。
実施結果が「False」だった場合、「エラー内容取得」処理で実施結果のファイルからerrorコード、errorメッセージを取得します。
ログファイル
本サンプルシナリオでは、変数一覧で指定された [ログフォルダ/log] のディレクトリに、ログファイルを出力します。
どちらのファイルも、登録データの数だけ出力されます。
ログファイル名 | ログ内容 |
---|---|
RequestJson_x行目_{日時}.txt | 登録時に作成したJSONファイル。 x:入力ファイル内の行番号 日付:登録実施日時。YYYYMMDDhhmmssの形式 |
ResponseJson_ZZx行目_{日付}.txt | 登録の実施結果を格納したJSONファイル。 ZZ:実施結果。正常終了時はOK、異常終了時はNG。 x:入力ファイル内の行番号 日付:登録実施日時。YYYYMMDDhhmmssの形式 |
変更履歴
版数 | 日付 | 修正内容 |
---|---|---|
1.0版 | 2019/03/25 | 初版 |
1.1版 | 2023/6/12 | 注意事項を削除 |