はじめに
(Mac環境の記事ですが、Windows環境も同じ手順になります。環境依存の部分は読み替えてお試しください。)
この記事を最後まで読むと、次のことができるようになります。
- iOS/AndroidアプリからSalesforceのレコードを作成する
- SalesforceのレコードをiOS/Androidアプリで表示する
Salesforceのイメージ画像
アプリのイメージ画像
関連する記事
- Kony AppPlatformを使ってiOS/Androidアプリを作成する
- Kony AppPlatformで作成したiOS/AndroidアプリのAuto Layoutについて学ぶ
- Kony AppPlatformで作成したiOS/Androidアプリのコーディングについて学ぶ
実行環境
- macOS Mojave 10.14.1
- Kony Visualizer 8.3.10
- Salesforce Winter '19
ソースコード
実際に実装内容やソースコードを追いながら読むとより理解が深まるかと思います。是非ご活用ください。
事前準備
- シナリオ
- iOS/AndroidアプリからSalesforce(Sampleアプリ)のレコード(First Name, Last Name)を登録する。
- 登録したレコードをiOS/Androidアプリで表示する。
Salesforce
-
Kony AppPlatformと繋ぐオブジェクトを作成する
項目名 API参照名 Sample Sample__c First Name First_Name__c Last Name First_Name__c -
接続アプリケーションを設定する
設定 -> 作成 -> アプリケーション -> 接続アプリケーション ->
新規
をクリックする項目名 設定値 接続アプリケーション名 Sample API 参照名 Sample 取引先責任者 メール sample@gmail.com OAuth 設定の有効化 TRUE コールバック URL https://sample.auth0.com/login/callback 選択した OAuth 範囲 基本情報へのアクセス Web サーバフローの秘密が必要 TRUE 接続アプリケーションを使用する前に、サーバ上で変更が有効になるまで 2 ~ 10 分お待ちください。
Kony AppPlatform
-
メニュー画面を作成する
項目名 オブジェクト 説明 lblMenu ラベル タイトル btnAdd ボタン Salesforceレコード登録 btnView ボタン Salesforceレコード表示 btnExit ボタン アプリ終了 -
登録画面を作成する
項目名 オブジェクト 説明 lblAdd ラベル タイトル lblFirstName ラベル First Nameラベル txtFirstName テキストボックス First Name入力 lblLastName ラベル Last Nameラベル txtLastName テキストボックス Last Name入力 btnAdd ボタン Salesforceレコード登録 btnBack ボタン Menuへ戻る -
表示画面を作成する
項目名 オブジェクト 説明 lblView ラベル タイトル segView セグメント Salesforceリスト表示 btnBack ボタン Menuへ戻る
Salesforce(Sample)の登録
設定手順
-
OAuth設定
Data ->
Configure
をクリックGET DATAのSalesforceをクリック
項目名 設定値 Name Sample Authentication Specify Login Endpoint Endpoint URL Salesforce接続アプリケーションのコンシューマ鍵 (参照1) Client ID Salesforce接続アプリケーションのコンシューマの秘密 (参照1) User ID SalesforceユーザID Password Salesforceパスワード + セキュリティトークン (参照2) 最後に
SAVE & GENERATE
をクリックします。(参照1)
(参照2)
セキュリティトークンは、私の設定 -> 個人用 ->
私のセキュリティトークのリセット
から再発行ができます。 -
Salesforce(Sample)の接続
SAVE & GENERATE
の続きです。Sample__c
を検索しチェックボックにチェックを入れます。最後にNext
->GENERATE
の順番にクリックします。Data Modelに
Sample__c
追加されたら接続完了です。
レコード登録の実装
設定手順
-
データマッピング
Projectタブ -> Mobile -> Forms -> frmAdd -> flxAdd ->
btnAdd
をクリックします。Propertiesタブ -> ActionたタブのonClickの
Edit
をクリックします。Network APIsの中の
Invoke Object Service
をクリックします。Select Serviceに
Sample$Sample__c
、Select Methodにcreate
を設定します。Call Object Serviceをクリックしてから
Open Mapping Editor
をクリックします。iOS/AndroidアプリとSalesforce(Sample)のデータをクリックしてマッピングします。
アプリ Mapping Salesforce txtFirstNameのtext -> FirstName__c txtLastNameのtext -> LastName__c -
テキストボックスのクリア
CallbackをクリックしてFunctionsの中から
Add Snippet
をクリックします。データ送信後にテキストボックスをクリアするコードを記述します。
CodeSnippet.jsself.view.txtFirstName.text = null; self.view.txtLastName.text = null;
-
Infoポップアップ表示
CallbackをクリックしてExternalの中から
Show Alert
をクリックします。データ送信後のInfoポップアップ表示を設定します。
項目名 設定値 Alert Type Info Alert Title Result Yes Label OK Alert Message Sent Data.
動作確認
-
登録画面の確認
Menu ->
Addボタン
をタップしてSalesforceのレコードを登録します。Salesforceに登録されたことを確認します。
-
Infoポップアップ表示の確認
レコードを登録した後にInfoポップアップが表示されることを確認します。
-
テキストボックスクリアの確認
レコードを登録した後にテキストボックスがクリアされることを確認します。
レコード表示の実装
設定手順
-
表示項目テンプレートの作成
Templatesタブ -> Segments -> 右クリック ->
New Template
をクリックします。項目名 オブジェクト 説明 lblFirstName ラベル First Nameラベル txtFirstName ラベル Salesforce First Name表示 lblLastName ラベル Last Nameラベル txtLastName ラベル Salesforce Last Name表示 注) flxViewDetailsの中でFlexContainerを使うとNetwork APIsのMappingができない(正確にはMappingはできるがデータ連携ができない)。セグメントの中ではFlexContainerを使わない方が良さそうです。
例) lblFirstNameとtxtFirstNameをFlexContainerでグループ化するなど
-
テンプレートの割り当て
Projectタブ -> Mobile -> Forms -> frmView -> flxView ->
segView
をクリックします。Propertiesタブ -> SegmentたタブのRow Templateに
segViewDetails
を設定します。テンプレートが設定されます。
-
データマッピング
Projectタブ -> Mobile -> Forms ->
frmView
をクリックします。Propertiesタブ -> ActionたタブのonMappingの
Edit
をクリックします。Network APIsの中の
Invoke Object Service
をクリックします。Select Serviceに
Sample$Sample__c
、Select Methodにget
を設定します。CallbackをクリックしてからMappingの中の
Add Mapping
をクリックします。Salesforce(Sample)とiOS/Androidアプリのデータをクリックしてマッピングします。
Salesforce Mapping アプリ records -> masterdatamap FirstName__c -> txtFirstNameのtext LastName__c -> txtLastNameのtext