Loading
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
Salesforce 組織の設定および管理
目次
絞り込み条件を選択

          結果がありません
          結果がありません
          検索のヒントをいくつかご紹介します

          キーワードの入力ミスがないか確認する。
          より一般的な検索語を使用する。
          絞り込み条件を減らして、検索範囲を広げる。

          Salesforce ヘルプ全体を検索
          Unarchive Apex

          Unarchive Apex

          プログラムで特定の検索条件に基づいてアーカイブアプリケーションのレコードをアーカイブ解除し、要求に一致する検索結果を取得します。

          レコードをアーカイブ解除すると、ルートレコードと子レコードの階層ツリー全体がアーカイブ解除されます。

          メモ
          メモ 検索結果に 1,000 件を超えるレコードが含まれている場合、アーカイブ解除は処理されません。
          メモ
          メモ

          Apex を介したアーカイブ要求は、組織ごとに 1 時間あたり 50 件に制限されます。

          この制限を超えると、HTTP 状況コード 429 を受信します。

          メモ
          メモ Unarchive Apex では、最大 10 個のアーカイブ解除アクションを同時に実行できます。[元に戻す] と Apex [アーカイブ解除] はどちらもアーカイブ解除アクションとみなされます。

          前提条件

          [アーカイブ] [アーカイブを有効化] を有効にして、アーカイブ アプリケーションまたは Apex からレコードをアーカイブ解除しますアーカイブ解除権限が 1 つだけ必要な場合は、次のいずれかのカスタム権限を有効にして、手動でカスタム権限セットまたはプロファイルに割り当てます。

          • アーカイブ解除: アーカイブアプリケーションのレコードのみをアーカイブ解除する権限。
          • Archive Unarchive SDK: Archive SDK を介したレコードのアーカイブ解除のみを許可します。

          Apex 関数のアーカイブ解除

          アーカイブ解除要求ごとに 1 つのオブジェクトを検索し、最大 6 個の検索条件を検索に適用します。

          performUnarchiveSdk(String sObjectName, List<SearchFilter> filters, DateRange dateRange)
          performUnarchiveSdk(String sObjectName, List<SearchFilter> filters)

          Apexパラメータ

          sObjectName
          Apex によって照会されるオブジェクト。このパラメーターは必須です。
          検索条件
          項目条件に基づいて検索結果を絞り込みます。このパラメーターは必須です。
          • 項目名: 絞り込みの基準となる項目 (NameCreatedDate など)。
          • 値または値のリスト: 照合する特定の値。値のリストを使用する場合、Apex データクエリはそれらをOR演算子と組み合わせます。
          日付条件
          日付に基づいて検索するには、DateRange パラメータと必要な検索条件を使用します。DateRange は、ArchiveDateCreatedDateModifiedDate などの項目でレコードを絞り込みます。このパラメーターは省略可能です。日付検索条件のおすすめ:
          • アーカイブ日に基づいて検索するarchive_date日フィールドを追加します。
          • Apex 日付形式 (MM/DD/YYYY) を使用します。

          返される値

          戻り値は ArchiverAccessorResponse です。

          • 実行されたアーカイブ解除操作の要求 ID
          • 検索で取得されたレコードの合計数
          • 状況コード (エラーを含む)
          ArchiverAccessorResponse.getBody(); ⇒ String
          ArchiverAccessorResponse.getStatusCode(); ⇒ integer
            200 - if the request was accepted
            400 - if the request wasn't accepted
          ArchiverAccessorResponse.getErrorMessage(); ⇒ String

          Apex シナリオのアーカイブ解除

          ArchiveアプリケーションでのApexプロセスのアーカイブ解除の例を確認します。

          シナリオ 1: 一致するレコードが 1,000 件未満見つかり、要求が処理された — 成功

          学士号を持つすべての候補者をアーカイブ解除します。

          • Apex アーカイブ解除機能は filter has BA=trueを使用して実行します。
          • 候補リストが検索され、アーカイブされたレコードが 1,000 件未満である。
          • Unarchive SDK 種別の新しい活動が追加され、すべてのアーカイブ解除項目が入力されます。戻り値は、見つかったレコードの数です。

          シナリオ 2: 1,000 件を超える一致レコードが見つかったが、要求が処理されなかった — 失敗

          修士号を持つすべての候補者をアーカイブ解除します。

          • Apex アーカイブ解除機能は filter has MA=trueを使用して実行します。
          • 候補リストが検索され、1,000 件を超えるアーカイブ済みレコードが検出されます。
          • Apex アーカイブ解除プロセスは失敗して終了し、アクティビティは作成されません。戻り値には、見つかったレコード数とエラー「400, scope too large」が含まれます。

          シナリオ 3: レコード数が 1,000 件未満で、一致するレコードが見つからなかった場合、要求が処理されなかった場合 — 失敗

          修士号を持つすべての候補者をアーカイブ解除します。

          • Apex アーカイブ解除機能は filter has MA=trueを使用して実行します。
          • システムによって候補リストが検索され、1,000 件未満のレコードが検出されましたが、一致するレコードは見つかりませんでした。活動は作成されません。戻り値は、見つかったレコードの数です。

          シナリオ 4: 一致するレコードが 1,000 件未満見つかり、要求が処理され、部分的に成功 — 成功!

          学士号を持つすべての候補者をアーカイブ解除します。

          • Apex アーカイブ解除機能は filter has BA=trueを使用して実行します。
          • 候補リストが検索され、1,000 件未満のレコードが検出され、アーカイブが解除されます。
          • 検索条件に一致するレコードが正常にアーカイブ解除されました。Unarchive SDK 種別の新しい活動が追加され、すべてのアーカイブ解除項目が入力されます。戻り値は、見つかったレコードの数です。

          コードドキュメント

          performUnarchiveSdk(String sObjectName, List<SearchFilter> filters, DateRange dateRange)
          performUnarchiveSdk(String sObjectName, List<SearchFilter> filters)

          戻り値: ArchiverAccessorResponse

          ArchiverAccessorResponse.getBody(); ⇒ String
          ArchiverAccessorResponse.getStatusCode(); ⇒ integer
            200 - if the request was accepted
            400 - if the request wasn't accepted
          ArchiverAccessorResponse.getErrorMessage(); ⇒ String

          コード例

          例 1: Own という名前の取引先をアーカイブ解除します。

          List<SearchFilter> request = new List<SearchFilter>();
          String sObjectName = 'Account';
          SearchFilter filter1 = new SearchFilter('Name', 'Own');
          request.add(filter1);
          ArchiverAccessorResponse res = ArchiverAccessor.performUnarchiveSdk(sObjectName, request);
          Map<String, Object> jsonMap = (Map<String, Object>) JSON.deserializeUntyped(res.getBody());
          
          system.debug(jsonMap.get('request_id'));
          system.debug(jsonMap.get('total_result_count'));

          例 2: 検索条件を使用して取引先をアーカイブ解除します。名前は PersonAccount3、日付範囲は過去 150 日間に作成されたレコードです。

          // Initialize a list to hold search filters for the archive operation
          List<SF_Archive.SearchFilter> request = new List<SF_Archive.SearchFilter>();
          
          // Define the Salesforce object name to perform the operation on
          String sObjectName = 'Account';
          
          // Create a search filter based on the 'Name' field with a specific value
          SF_Archive.SearchFilter filter1 = new SF_Archive.SearchFilter('Name', 'PersonAccount3');
          
          // Add the created filter to the request list
          request.add(filter1);
          
          // Create a date range filter to select records created in the last 150 days
          // It calculates the start date by subtracting 150 days from today's date
          SF_Archive.dateRange range = new SF_Archive.dateRange('CreatedDate', system.today()-150, system.today());
          
          // Perform the unarchive operation with the specified object name, filters, and date range
          // This retrieves records from the archival that match the given criteria
          SF_Archive.ArchiverAccessorResponse res = SF_Archive.ArchiverAccessor.performUnarchiveSdk(sObjectName, request, range);
          
          // Deserialize the JSON response body to a Map object to easily access the data
          Map<String, Object> jsonMap = (Map<String, Object>) JSON.deserializeUntyped(res.getBody());
          
          // Debug print the request ID and total result count from the response for logging purposes
          system.debug(jsonMap.get('request_id'));
          system.debug(jsonMap.get('total_result_count'));

          Apex のアーカイブ解除のシナリオ

          ArchiveアプリケーションでのApexプロセスのアーカイブ解除の例を次に示します。

          シナリオ 1: 一致するレコードが 1,000 件未満見つかり、要求が処理された — 成功

          新しいビジネス要求に従って、顧客が学士号を持つすべての候補者のアーカイブを解除したいと考えています。

          1. Apex アーカイブ解除機能は filter has BA=trueと一緒に使用します。
          2. 見つかった候補リストのアーカイブされていないレコードが 1,000 件未満である。
          3. 新しいアクティビティが追加され、新しい typeArchive Apex Unarchive 関数とすべてのアーカイブ解除フィールドが入力されています。

            戻り値 = 見つかったレコード数。

          シナリオ 2: 1,000 件を超える一致レコードが見つかったが、要求が処理されなかった — 失敗

          新しいビジネス要求に従って、顧客は修士号を持つすべての候補者のアーカイブを解除したいと考えています。

          1. Apex アーカイブ解除機能は filter has MA=trueと一緒に使用します。
          2. 見つかった候補リストには、アーカイブされていないレコードが 1,000 件以上あります。
          3. Apex アーカイブ解除プロセスが失敗して終了します。
            活動は作成されません。
            戻り値 = 見つかったレコード数、エラー: 400、範囲が大きすぎます

          シナリオ 3: レコード数が 1,000 件未満で、一致するレコードが見つからなかった場合、要求が処理されなかった場合 — 失敗

          新しいビジネス要求に従って、顧客は修士号を持つすべての候補者のアーカイブを解除したいと考えています。

          1. Apex アーカイブ解除機能は filter has MA=trueと一緒に使用します。
          2. 見つかった候補リストのレコード数が 1,000 件未満。一致するレコードが見つかりません。
            活動は作成されません。
            戻り値 = 見つかったレコード数

          シナリオ 4: 一致するレコードが 1,000 件未満見つかり、要求が処理され、部分的に成功 — 成功

          新しいビジネス要求に従って、顧客は学士号を持つすべての候補者のアーカイブを解除したいと考えています。

          1. Apex アーカイブ解除機能は filter has BA=trueと一緒に使用します。
          2. 見つかった候補リストが 1,000 件未満で、レコードがアーカイブされていない。
          3. 検索条件に一致するレコードが正常にアーカイブ解除されました。
            新しいアクティビティが新しい種別 Unarchive-Apex で追加され、すべてのアーカイブ解除フィールドが入力されます。

            戻り値 = 見つかったレコード数

           
          読み込み中
          Salesforce Help | Article