Vous êtes ici :
Désarchiver Apex
Désarchivez par programmation les enregistrements dans l'application Archiver en fonction de filtres spécifiques et récupérez les résultats de recherche correspondant à votre requête.
La désarchivage d'un enregistrement entraîne également la désarchivage de toute son arborescence hiérarchique d'enregistrements racine et enfants.
Les requêtes de désarchivage via Apex sont limitées à 50 par heure et par organisation.
Si vous dépassez cette limite, vous recevez le code de statut HTTP 429.
Prérequis
Activez Archiver Activez Désarchiver pour désarchiver des enregistrements depuis l'application Archive ou Apex. Si vous avez besoin d'une seule autorisation de désarchivage, activez l'une de ces autorisations personnalisées et attribuez-la manuellement à un ensemble d'autorisations ou à un profil personnalisé.
- Désarchiver : Autorisation de désarchivage d'enregistrements uniquement depuis l'application Archive.
- Archiver Désarchiver SDK : Autorisation de désarchivage d'enregistrements uniquement via Archive SDK.
Désarchiver les fonctions Apex
Recherchez un objet par requête de désarchivage et appliquez au maximum six filtres à la recherche.
performUnarchiveSdk(String sObjectName, List<SearchFilter> filters, DateRange dateRange)
performUnarchiveSdk(String sObjectName, List<SearchFilter> filters)Paramètres Apex
- sObjectName
- L'objet interrogé par Apex Ce paramètre est obligatoire.
- Filtres de recherche
- Filtres qui affinent les résultats de recherche en fonction des conditions de champ. Ce paramètre est obligatoire.
- Nom du champ : Le champ par lequel filtrer, par exemple
NameouCreatedDate. - Valeur ou liste de valeurs : La ou les valeurs spécifiques correspondant. Si vous utilisez une liste de valeurs, les requêtes de données Apex les combinent à un opérateur
OR.
- Nom du champ : Le champ par lequel filtrer, par exemple
- Filtres de date
- Pour rechercher par date, utilisez le paramètre
DateRangeet les filtres requis.DateRangefiltre les enregistrements par des champs tels queArchiveDate,CreatedDateetModifiedDate. Ce paramètre est facultatif. Recommandations de filtres de date :- Ajoutez le champ de date de
archive_dateà la recherche basée sur la date d'archivage. - Utilisez le format de date Apex : MM/JJ/AAAA.
- Ajoutez le champ de date de
Valeurs renvoyées
La valeur renvoyée est ArchiverAccessorResponse.
- ID de requête de l'opération de désarchivage effectuée
- Nombre total d'enregistrements récupérés par la recherche
- Code de statut, y compris les erreurs
ArchiverAccessorResponse.getBody(); ⇒ String
ArchiverAccessorResponse.getStatusCode(); ⇒ integer
200 - if the request was accepted
400 - if the request wasn't accepted
ArchiverAccessorResponse.getErrorMessage(); ⇒ StringScénarios Apex désarchivés
Examinez des exemples de processus Apex de désarchivage dans l'application Archive.
Scénario 1 : Moins de 1000 enregistrements correspondants trouvés, demande traitée : Réussir !
Vous souhaitez désarchiver tous les candidats qui ont un baccalauréat.
- Vous exécutez la fonction Archive Apex Unarchive avec le
has BA=truede filtrage. - Le système recherche dans la liste des candidats et trouve moins de 1000 enregistrements archivés.
- Une nouvelle activité de type Désarchiver le kit de développement est ajoutée et tous les champs de désarchivage sont remplis. La valeur renvoyée est le nombre d'enregistrements trouvés.
Scénario 2 : Plus de 1000 enregistrements correspondants trouvés, demande non traitée - Échec
Vous souhaitez désarchiver tous les candidats qui ont un master.
- Vous exécutez la fonction Archive Apex Unarchive avec le
has MA=truede filtrage. - Le système recherche dans la liste des candidats et trouve plus de 1000 enregistrements archivés.
- Le processus de désarchivage Archive Apex se termine sans succès, et aucune activité n'est créée. La valeur renvoyée inclut le nombre d'enregistrements trouvés et une erreur : 400, portée trop grande.
Scénario 3 : Moins de 1000 enregistrements, aucun enregistrement correspondant trouvé, aucune demande traitée - Échec
Vous souhaitez désarchiver tous les candidats qui ont un master.
- Vous exécutez la fonction Archive Apex Unarchive avec le
has MA=truede filtrage. - Le système recherche dans la liste des candidats et trouve moins de 1000 enregistrements, mais aucun enregistrement correspondant n'est trouvé. Aucune activité n'est créée. La valeur renvoyée est le nombre d'enregistrements trouvés.
Scénario 4 : Moins de 1000 enregistrements correspondants trouvés, demande traitée, réussite partielle : réussite !
Vous souhaitez désarchiver tous les candidats qui ont un baccalauréat.
- Vous exécutez la fonction Archive Apex Unarchive avec le
has BA=truede filtrage. - Le système recherche dans la liste des candidats, trouve moins de 1000 enregistrements et les désarchive.
- Les enregistrements correspondant au filtre sont désarchivés avec succès. Une nouvelle activité de type Désarchiver le kit de développement est ajoutée et tous les champs de désarchivage sont remplis. La valeur renvoyée est le nombre d'enregistrements trouvés.
Documentation sur le code
performUnarchiveSdk(String sObjectName, List<SearchFilter> filters, DateRange dateRange)
performUnarchiveSdk(String sObjectName, List<SearchFilter> filters)Valeur de retour : ArchiverAccessorResponse
ArchiverAccessorResponse.getBody(); ⇒ String
ArchiverAccessorResponse.getStatusCode(); ⇒ integer
200 - if the request was accepted
400 - if the request wasn't accepted
ArchiverAccessorResponse.getErrorMessage(); ⇒ StringExemples de code
Exemple 1 : Désarchiver les comptes nommés Propriétaire.
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'));Exemple 2 : Désarchiver les comptes avec un filtre, où le nom est PersonAccount3 et la plage de dates correspond aux enregistrements créés au cours des 150 derniers jours.
// 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'));- Scénarios Apex désarchivés
Voici des exemples de processus Apex de désarchivage dans l'application Archive.
Scénarios Apex désarchivés
Voici des exemples de processus Apex de désarchivage dans l'application Archive.
Scénario 1 : Moins de 1000 enregistrements correspondants trouvés, demande traitée : Réussi !
Selon une nouvelle demande commerciale, un client souhaite désarchiver tous les candidats qui ont un baccalauréat.
-
Utilisez la fonction Archive Apex Unarchive avec le
has BA=truede filtrage. - La liste des candidats trouvée contient moins de 1000 enregistrements non archivés.
-
Une nouvelle activité est ajoutée avec une nouvelle fonction Désarchiver Apex typeArchive et tous les champs Désarchiver remplis.
Valeur renvoyée = le nombre d'enregistrements trouvés.
Scénario 2 : Plus de 1000 enregistrements correspondants trouvés, demande non traitée : échec
Selon une nouvelle demande commerciale, le client souhaite désarchiver tous les candidats qui ont un master.
-
Utilisez la fonction Archive Apex Unarchive avec le
has MA=truede filtrage. - La liste des candidats trouvée contient plus de 1000 enregistrements non archivés.
-
Le processus de désarchivage Archive Apex se termine sans succès.
Aucune activité n'est créée.Valeur renvoyée =# enregistrements trouvés, erreur : 400, portée trop grande
Scénario 3 : Moins de 1000 enregistrements, aucun enregistrement correspondant trouvé, aucune demande traitée : échec
Selon une nouvelle demande commerciale, le client souhaite désarchiver tous les candidats qui ont un master.
-
Utilisez la fonction Archive Apex Unarchive avec le
has MA=truede filtrage. -
La liste des candidats trouvée contient moins de 1000 enregistrements. Aucun enregistrement correspondant n'est trouvé.
Aucune activité n'est créée.Valeur renvoyée = nombre d'enregistrements trouvés
Scénario 4 : Moins de 1000 enregistrements correspondants trouvés, demande traitée, réussite partielle : réussite !
Selon une nouvelle demande commerciale, le client souhaite désarchiver tous les candidats qui ont un baccalauréat.
-
Utilisez la fonction Archive Apex Unarchive avec le
has BA=truede filtrage. - La liste des candidats trouvée est inférieure à 1000 enregistrements, et les enregistrements ne sont pas archivés.
-
Les enregistrements correspondant au filtre sont désarchivés avec succès.
Une nouvelle activité est ajoutée avec un nouveau type Apex et tous les champs Unarchive sont remplis.
Valeur renvoyée = nombre d'enregistrements trouvés

