intra-mart Accel Platform Salesforce 連携チュートリアルガイド 第2版 2021-04-01

4. Salesforceオブジェクトのレコード操作

4.1. チュートリアル

このチュートリアルが終了すると、次のような事ができます。

  • Salesforce でカスタムオブジェクトを作成する。

  • オブジェクトのレコードを操作する。
    • 登録
    • 参照
    • 更新
    • 削除
  • Salesforce でレコードを確認する

カスタムオブジェクトの詳細は次の URL を参照してください。

4.1.1. ゴールの説明

このチュートリアルでは、簡単な経費管理オブジェクトの操作を行います。

  1. カスタムオブジェクトの作成

    • 操作対象のオブジェクトを作成します。
  2. レコードの登録

    • レコードを登録するユーザ定義タスクを作成します。
    • 動作確認のためのフロー定義を作成します。
    • 動作確認を行います。
  3. レコードの取得

    • レコードを取得するユーザ定義タスクを作成します。
    • 動作確認のためのフロー定義を作成します。
    • 動作確認を行います。
  4. レコードの更新

    • レコードを更新するユーザ定義タスクを作成します。
      • 動作確認は次章で行います。
  5. レコードの削除

    • レコードを削除するユーザ定義タスクを作成します。
      • 動作確認は次章で行います。

このような順番で経費管理オブジェクトの作成と、 Salesforce オブジェクトのレコード操作の操作方法や作業の流れを説明します。

4.1.2. 準備

チュートリアルの準備 に書かれている準備が行われていることを確認してください。

4.1.3. カスタムオブジェクトの作成

Salesforce 上でカスタムオブジェクトを作成します。
  1. 「設定」から「クイック検索」に「オブジェクト」と入力し、「作成」配下の「オブジェクト」リンクをクリックします。

    ../../_images/sfdc_search_object.png
  2. 「カスタムオブジェクト」画面が表示されるので「新規カスタムオブジェクト」ボタンをクリックします。

    ../../_images/sfdc_custom_object.png
  3. 「表示ラベル」「オブジェクト名」「レコード名」 に「Expense」と入力し、「保存ボタン」をクリックします。

    ../../_images/sfdc_new_custom_object.png
  4. 「Expense」の詳細画面が表示されます。

    ../../_images/sfdc_expense_detail.png
  5. 「Expense」の詳細画面で、「カスタム項目&リレーション」欄の「新規」ボタンをクリックし、次のカスタム項目を追加します。

    データ型 項目表示ラベル 外部ID
    数値 (16, 2) Amount (金額)  
    テキスト (20) Client (クライアント)  
    日付/時間 Date (日付)  
    チェックボックス Reimbursed (払い戻し済み)  
    テキスト (20) MatterNumber(案件番号)
    ../../_images/sfdc_expense_custom_item.png

    コラム

    MatterNumber を外部IDとして使用できるように設定します。

    後述の Salesforce バッチ定義新規作成 で使用しますので忘れずに「外部ID」のチェックボックスにチェックを入れてください。

  6. 「Expense」レコードを表示するため、カスタムオブジェクトタブを作成します。

    1. 「設定」 から、「クイック検索」 ボックスに「タブ」と入力し、「タブ」 を選択します。

      ../../_images/sfdc_search_tab.png
    2. 「カスタムタブ」で、「新規」ボタンをクリックして「新規カスタムタブ」ウィザードを起動します。

      • 「オブジェクト」で、「Expense」を選択します。
      • 「タブスタイル」 でルックアップアイコンをクリックし、クレジットカードアイコンを選択します。
      ../../_images/sfdc_new_expense_tab.png
    3. 残りの項目はデフォルト値のままで、「次へ」をクリックします。

    4. 「次へ」 および 「保存」 をクリックして、タブの作成を終了します。

    5. これで「Expense」タブが画面上部に表示されます。

これでカスタムオブジェクトの作成が完了です。

4.1.4. レコードの登録

次に、 IM-LogicDesignerのユーザ定義タスクを作成します。作成するのは Salesforceオブジェクト操作定義 です。

後述の「操作」を「CREATE」として作成することで Salesforceのレコードの登録を行うようにします。

4.1.4.1. オブジェクト操作定義の作成

  1. intra-mart Accel Platformにテナント管理者またはLogicDesigner管理者でログインします。

  2. 「サイトマップ」→「LogicDesigner」→「 Salesforceオブジェクト操作定義新規作成」から、「 Salesforceオブジェクト操作定義編集」を開きます。

    ../../_images/sobject_sitemap.png
  3. Salesforceへ接続するクライアントIDを選択します。ここでは default を選択していますが、ご自分の環境にあったものを選択してください。

    ../../_images/sobject_select_clientid.png
  4. 「オブジェクト検索」リンクをクリックし、「オブジェクト検索」ダイアログを表示します。

    ../../_images/sobject_click_search_object_link.png
  5. 「絞り込み」に「exp」と入力し「検索」ボタンをクリックします。

    ../../_images/search_object_dialog.png

    コラム

    絞り込み検索は大文字小文字の区別なく、部分一致検索を行います。

  6. 一覧に表示された「Expense」の行のチェックボックスにチェックを入れ「決定」ボタンをクリックします。

    ../../_images/search_object_dialog2.png
  7. その他の項目は以下のように入力してください。

    ユーザ定義ID CreateExpense
    ユーザ定義名 CreateExpense
    ユーザカテゴリID SampleCategory
    操作 CREATE
    外部IDを使用する 非選択
  8. 「登録」ボタンをクリックします。

  9. 確認ダイアログで「OK」ボタンをクリックします。

  10. ユーザ定義一覧が表示され、作成したユーザ定義が表示されます。

    ../../_images/sobject_userdefinition_list.png

これで Salesforce オブジェクト操作定義の作成は終了です。

4.1.4.2. フロー定義の作成

続いてフロー定義の作成を行います。

  1. 「サイトマップ」→「LogicDesigner」→「フロー定義一覧」を開きます。

    ../../_images/sitemap_flow.png
  2. 「ロジックフロー新規作成」リンクをクリックし、「ロジックフロー定義編集」画面を表示します。

    ../../_images/flow_list_new.png
  3. 「入出力設定」リンクをクリックし、「入力」に次のような項目を追加し、「決定」ボタンをクリックします。

    キー名
    Name string
    Amount double
    Client string
    Date string
    Reimbursed boolean
    MatterNumber string
    ../../_images/sobject_in_out.png
  4. ロジックフロー定義編集画面のデザイナに、先ほど作成した「CreateExpense」タスクを追加し、「開始」「終了」と接続します。

    ../../_images/sobject_flow.png
  5. 「CreateExpense」タスクをクリックし、「マッピング設定」ボタンをクリックします。

    ../../_images/sobject_mapping_button.png
  6. 「入力」の各項目と、「CreateExpense」の各項目を紐づけ、「決定」ボタンをクリックします。

    ../../_images/sobject_mapping.png
  7. 「新規保存」リンクをクリックし、新規保存ダイアログを表示します。ダイアログに次のような内容を入力し「決定」ボタンをクリックします。

    フロー定義ID Expense
    フロー定義名 標準 Expense
    フローカテゴリID SampleCategory
    ../../_images/sobject_save_flow.png
  8. 「確認」ダイアログで「決定」ボタンをクリックします。

  9. 「ロジックフロー定義一覧」画面に遷移します。ツリー内のカテゴリ「SampleCategory」を展開することで、作成した「Expenes」フローが表示されていることを確認できます。

    ../../_images/sobject_flow_definition.png

これでフロー定義の作成が終了です。

4.1.4.3. 動作確認

最後に動作確認を行います。 IM-LogicDesignerのデバッグ機能を使ってフローを実行し、 Salesforceにレコードが作成することを確認します。

  1. 「Expense」フローを選択後に「編集」ボタンをクリックします。

    ../../_images/sobject_edit_flow.png
  2. 「ロジックフロー定義編集」画面の「デバッグ」リンクをクリックします。

    ../../_images/sobject_open_debugger.png
  3. 「ロジックフロー定義のデバッグ」画面の「実行」リンクをクリックします。

    ../../_images/sobject_start_debugger.png
  4. 「デバッグの実行」ダイアログが表示されるので、次のように入力し「実行」ボタンをクリックし、「確認」ダイアログで「決定」ボタンをクリックします。

    Name 文房具
    Amount 100
    Client XX文具店
    Date 2016-08-01T10:08:00.000+09:00
    Reimbursed false
    MatterNumber null
    ../../_images/sobject_debugger_dialog.png
  5. 「フローの実行が正常終了しました。」とメッセージが表示されます。

    ../../_images/sobject_debugger_success.png

これで Salesforceに入力した情報のレコードが作成されました。

本当に作成されたかどうかを確認します。

  1. Salesforceにログインし、「Expense」タブをクリックします。

    ../../_images/sfdc_click_expense_tab.png
  2. 「ビュー:すべて選択」の「Go!」ボタンをクリックします。

    ../../_images/sfdc_show_all_expense.png
  3. 「すべて選択」画面の「文房具」リンクをクリックします。

    ../../_images/sfdc_click_stationery.png
  4. 「文房具」画面が表示され、フローのデバッグ画面で入力した値でレコードが作成されていることを確認できます。

    ../../_images/sfdc_show_stationery_detail.png

以上で Salesforce のカスタムオブジェクト、 Salesforceオブジェクト操作定義の作成を行い、 IM-LogicDesignerのフロー定義の実行を通じて Salesforceのレコードを作成できました。

コラム

オブジェクトとして「ドキュメント」を指定すると Salesforceのファイルを扱うことができます。

「ドキュメント」の「Body」にパブリックストレージやセッションスコープストレージのファイルの内容を セットしてレコードの登録を行うと Salesforceにファイルをアップロードすることができます。 ただし「Body」の型は string なので Base64 のエンコード関数を利用してバイナリデータを文字列に変換する必要があります。

なお「ドキュメント」オブジェクトのレコードを取得しても、「Body」にバイナリデータは含まれません。 「Body」にはバイナリデータを取得できる URL がセットされるので、その URL にアクセスしてファイルをダウンロードしてください。

4.1.5. レコードの取得

次に、 レコードを参照する IM-LogicDesignerのユーザ定義タスクを作成します。作成するのは Salesforce オブジェクト操作定義 です。

「操作」を「READ」として作成することで Salesforceのレコードの取得を行うようにします。

4.1.5.1. オブジェクト操作定義の作成

レコードの登録 の 1 から 6 までの手順を繰り返してください。

  1. その他の項目は以下のように入力してください。

    ユーザ定義ID ReadExpense
    ユーザ定義名 ReadExpense
    ユーザカテゴリID SampleCategory
    操作 READ
    外部IDを使用する 非選択
  2. 返却値から不要な項目を削除します。次の項目を選択し、「削除」リンクをクリックします。項目の前に×アイコンが付くことを確認します。

    • IsDeleted
    • CreatedDate
    • CreatedById
    • LastModifiedDate
    • LastModifiedById
    • SystemModstamp
    • LastViewedDate
    • LastReferencedDate
    ../../_images/sobject_read_output.png

    コラム

    これは SQL で SELECT 文の列名を指定する事に相当します。×アイコンが付いていない項目を選択します。

    コラム

    Shiftキーを押しながら項目をクリックすると範囲選択が、Ctrlキーを押しながら項目をクリックすると複数選択ができます。

  3. 「登録」ボタンをクリックします。

  4. 確認ダイアログで「OK」ボタンをクリックします。

  5. ユーザ定義一覧が表示され、作成したユーザ定義が表示されます。

    ../../_images/sobject_userdefinition_list2.png

これで Salesforce オブジェクト操作定義の作成は終了です。

4.1.5.2. フロー定義の作成

続いてフロー定義の作成を行います。

今回は レコードの登録 で作成したフローに、ユーザ定義を追加します。

  1. 「サイトマップ」→「LogicDesigner」→「フロー定義一覧」を開きます。

    ../../_images/sitemap_flow.png
  2. 「Expense」フローを選択後に「編集」ボタンをクリックします。

    ../../_images/sobject_edit_flow.png
  3. ロジックフロー定義編集画面のデザイナに、先ほど作成した「ReadExpense」タスクを追加し、「CreateExpense」「終了」と接続します。

    ../../_images/sobject_flow2.png
  4. 「ReadExpense」タスクをクリックし、「マッピング設定」ボタンをクリックします。

    ../../_images/sobject_mapping_button2.png
  5. 「CreateExpense1」を入力に追加し、CreateExpense1/id と ReadExpense1/id を紐づけ、「決定」ボタンをクリックします。

    ../../_images/sobject_mapping2.png
  6. 「保存」リンクをクリックし、保存ダイアログを表示します。ダイアログに次のような内容を入力し「決定」ボタンをクリックします。

    保存方法 新しいバージョン番号(2)を追加して保存する
    フロー定義名 標準 Expense
    フローカテゴリID SampleCategory
    ../../_images/sobject_save_flow2.png
  7. 「確認」ダイアログで「決定」ボタンをクリックします。

  8. 「ロジックフロー定義一覧」画面に遷移します。作成した「Expenes」フローが表示されていることを確認できます。

    ../../_images/sobject_flow_definition.png

これでフロー定義の作成が終了です。

4.1.5.3. 動作確認

最後に動作確認を行います。 IM-LogicDesignerのデバッグ機能を使ってフローを実行し、指定した情報が取得できることを確認します。

  1. 「Expense」フローを選択後に「編集」ボタンをクリックします。

    ../../_images/sobject_edit_flow.png
  2. 「ロジックフロー定義編集」画面の「デバッグ」リンクをクリックします。

    ../../_images/sobject_open_debugger.png
  3. 「ロジックフロー定義のデバッグ」画面の「実行」リンクをクリックします。

    ../../_images/sobject_start_debugger.png
  4. 「デバッグの実行」ダイアログが表示されるので、次のように入力し「実行」ボタンをクリックし、「確認」ダイアログで「決定」ボタンをクリックします。

    Name 雑誌
    Amount 980
    Client XXブックス
    Date 2016-08-01T13:42:00.000+09:00
    Reimbursed false
    MatterNumber null
    ../../_images/sobject_debugger_dialog2.png
  5. 「フローの実行が正常終了しました。」とメッセージが表示されます。

    ../../_images/sobject_debugger_success2.png
  6. 「フロー定義の変数情報」の中から「ReadExpense1」を探して確認するとユーザ定義を作成した際に指定した項目が取得できていることがわかります。

    ../../_images/sobject_read_expense1.png

以上でレコードを取得するための Salesforceオブジェクト操作定義の作成を行い、 IM-LogicDesignerのフロー定義の実行を通じて Salesforceのレコードを取得することができました。

4.1.6. レコードの更新

次に、 レコードを更新する IM-LogicDesignerのユーザ定義タスクを作成します。作成するのは Salesforce オブジェクト操作定義 です。

「操作」を「UPDATE」として作成することで Salesforceのレコードの更新を行うようにします。

4.1.6.1. オブジェクト操作定義の作成

レコードの登録 の 1 から 6 までの手順を繰り返してください。

  1. その他の項目は以下のように入力してください。

    ユーザ定義ID UpdateExpense
    ユーザ定義名 UpdateExpense
    ユーザカテゴリID SampleCategory
    操作 UPDATE
    外部IDを使用する 非選択
  2. 入力値から不要な項目を削除します。次の項目を選択し、「削除」リンクをクリックします。項目の前に×アイコンが付くことを確認します。

    • OwnerId
    • Name
    • Amount__c
    • Client__c
    • Date__c
    ../../_images/sobject_update_input.png
  3. 「登録」ボタンをクリックします。

  4. 確認ダイアログで「OK」ボタンをクリックします。

  5. ユーザ定義一覧が表示され、作成したユーザ定義が表示されます。

    ../../_images/sobject_userdefinition_list3.png

以上でレコードを更新するための Salesforceオブジェクト操作定義の作成ができました。実際の動作確認は、SOQLによるレコードの検索 の章で行います。

4.1.7. レコードの削除

最後に、レコードを削除する IM-LogicDesignerのユーザ定義タスクを作成します。作成するのは Salesforce オブジェクト操作定義 です。

「操作」を「DELETE」として作成することで Salesforceのレコードの削除を行うようにします。

4.1.7.1. オブジェクト操作定義の作成

レコードの登録 の 1 から 6 までの手順を繰り返してください。

  1. その他の項目は以下のように入力してください。

    ユーザ定義ID DeleteExpense
    ユーザ定義名 DeleteExpense
    ユーザカテゴリID SampleCategory
    操作 DELETE
    外部IDを使用する 非選択
  2. 「登録」ボタンをクリックします。

  3. 確認ダイアログで「OK」ボタンをクリックします。

  4. ユーザ定義一覧が表示され、作成したユーザ定義が表示されます。

    ../../_images/sobject_userdefinition_list4.png

以上でレコードを削除するための Salesforceオブジェクト操作定義の作成ができました。実際の動作確認は、SOQLによるレコードの検索 の章で行います。

4.1.8. まとめ

以上で Salesforceオブジェクトのレコード操作 のチュートリアルは全て完了です。

これまでのチュートリアルを通して、以下のことを学びました。

  • Salesforce でカスタムオブジェクトを作成する。

  • オブジェクトのレコードを操作する。
    • 登録
    • 参照
    • 更新
    • 削除
  • Salesforce でレコードを確認する

次章 SOQLによるレコードの検索 では、SOQL クエリを発行し、 Salesforce のレコードを検索するチュートリアルを用意しています。

この章では動作確認を行わなかった レコードの更新レコードの削除 で作成したユーザ定義を使用するフロー定義を作成します。