Vous êtes ici :
Archive Apex – Droit à l’oubli (RTBF)
La réglementation sur la confidentialité des données accorde aux individus le droit à l'oubli (RTBF), exigeant des organisations qu'elles effacent en toute sécurité les données personnelles sur demande. Archive Apex permet la conformité en identifiant et en supprimant des données spécifiques de l'application Archive, ce qui garantit un retrait complet tout en préservant l'intégrité des autres données archivées.
Critères de filtrage RTBF
Pour traiter une requête RTBF, spécifiez les critères de filtrage appropriés. Par exemple :
| Critères | Exemple |
|---|---|
| Nom du champ | ID d’employé |
| Objet | Contact |
| Valeur | ID 123456789011121314 |
Considérations importantes
- Les soumissions sont limitées à 10 000 requêtes par jour avec une limite de 10 000 recherches d'enregistrement racine.
- Le processus de suppression de la RTBF s'étend aux enregistrements enfants directement et indirectement associés dans une hiérarchie.
- Le chevauchement des résultats de recherche peut marquer certains enregistrements comme déjà supprimés dans le fichier d'audit.
- Si la limite en résultats de recherche est atteinte, le statut d'activité Apex affiche un code de statut
200avec cette erreur.Request processed. Maximum search results reached. Refine your search or submit a new request. - La plupart des requêtes RTBF standard sont effectuées en 30 minutes.
- Pour des résultats optimaux, ciblez l'objet racine.
- Les filtres Objet et Nom du champ ne sont pas sensibles à la casse.
- Archive ne prend pas en charge la suppression partielle.
Comportement RTBF pour les enregistrements enfants dans une hiérarchie archivée
Lors de l'exécution d'une requête RTBF sur un enregistrement enfant, la requête retire toute la hiérarchie archivée qui lui est associée.
Par exemple, si vous recherchez un enregistrement Requête spécifique et soumettez une requête Archive RTBF, la requête retire la Requête, ses Tâches associées et son enregistrement racine Compte associé. Comme ces enregistrements ont été archivés ensemble, la RTBF supprime toute la hiérarchie archivée.
Cependant, si le Compte a été archivé séparément, l'exécution de la RTBF sur l'enregistrement Requête retire uniquement la Requête et ses Tâches, mais pas l'enregistrement Compte.
Fonctionnement de la RTBF
Le processus RTBF est exécuté en tant que processus asynchrone et suit ces appels d'API séquentiels.
- Identification des données : Apex interroge Archive pour localiser tous les enregistrements correspondant aux critères de filtrage spécifiés.
- Suppression des données : Apex envoie une requête de suppression à Archive, en retirant tous les enregistrements correspondants.
Lorsque le processus est terminé, une icône d'activité RTBF est affichée sous l'onglet Activités dans la Console d'archivage.
Exemple de requête RTBF
Une ancienne employée, Maria Johnson, soumet une demande de la RTBF pour supprimer toutes les données personnelles de votre système. Votre entreprise archive les enregistrements des employés avec leur correspondance par e-mail, les interactions avec les clients et les attributions de projet. Pour suivre la requête RTBF, utilisez ce critère de filtrage.
| Objet | Nom du champ | Valeur |
|---|---|---|
| Contact | Maria@own.com | |
| Requête | ID d’employé | 987654321 |
| Tâche | Attribué à | Maria Johnson |
| Expéditeur | Maria@own.com | |
| Document | Propriétaire | Maria Johnson |
Cette demande garantit le retrait complet des données de Maria, y compris ses coordonnées, les requêtes dans lesquelles elle a été impliquée, les tâches qui lui ont été attribuées, et tous les enregistrements d'e-mail et de document qui lui sont liés. Ce processus permet de maintenir la conformité aux réglementations sur la confidentialité des données tout en garantissant une suppression complète et précise des informations confidentielles.
Méthodes d'API et traitement des réponses
Nous recommandons de valider vos critères en exécutant la requête sur Requêtes de données Apex avant de soumettre la requête RTBF.
| Entrée | Sortie | Définition |
|---|---|---|
ArchiverAccessorResponse |
|
La réponse de l'appel d'API Forget. Renvoie un requestId pour suivre le statut de la requête en utilisant la méthode getRTBFStatus. |
Criteria(sObjectName de chaîne, fieldName de chaîne, value de chaîne) |
||
forgetArchivedRecords(list<Criteria>
inputFilters) |
ArchiverAccessorResponse |
Méthode publique qui crée une requête Oublier à Archiver et une liste de critères à supprimer. |
getRTBFStatus(string requestId) |
Un rapport CSV contenant tous les détails des informations supprimées. | Méthode publique qui vous donne la possibilité de suivre votre requête RTBF. |
- Archiver Apex : exécuter une requête RTBF
Testez manuellement Archive Apex et exécutez une requête RTBF dans l'application Archive. - Archiver Apex : scénarios de cas d'utilisation de la RTBF
Utilisez des scénarios de cas pour la RTBF dans l'application Archive. - Archiver Apex : anonymiser les informations d’identification personnelle dans l’application Archive
Anonymisez les informations d'identification personnelle (PII) dans les enregistrements archivés sans supprimer l'enregistrement lui-même. L'anonymisation remplace les valeurs confidentielles par des espaces réservés irréversibles pour vous aider à respecter les réglementations relatives à la protection de la vie privée tout en conservant la structure des enregistrements de l'application Archive.
Archiver Apex : exécuter une requête RTBF
Testez manuellement Archive Apex et exécutez une requête RTBF dans l'application Archive.
- Cliquez sur l'icône Paramètres.
- Sélectionnez Developer Console.
-
Pour ouvrir la console, appuyez sur
F12ouCtrl+Shift+Isous Windows, ou surCmd+Esous Mac. -
Dans la console, exécutez ce code pour créer une liste de critères, envoyer une requête RTBF et récupérer le
requestIddepuis Archive.SF_Archive.Criteria criteria1 = new SF_Archive.Criteria('Account', 'Name', 'example name'); list<SF_Archive.Criteria> lst = new list<SF_Archive.Criteria>(); lst.add(criteria1); SF_Archive.ArchiverAccessorResponse response = SF_Archive.ArchiverAccessor.forgetArchivedRecords(lst); Map<String, String> values = (Map<String, String>)JSON.deserialize(response.getBody(), Map<String, String>.class); String requestId = values.get('request_id'); system.debug(requestId); -
Cliquez sur Execute.
La requête commence. Une fois terminé, le
requestIdest stocké dans le Journal d'exécution.
Affichage du statut de la requête RTBF
Après avoir envoyé une demande RTBF, vous pouvez consulter le statut de la demande.
- En haut à droite de la page, cliquez sur l'icône Paramètres.
- Sélectionnez Developer Console.
-
Appuyez sur
Command + E. -
En utilisant le
requestIdde votre requête RTBF, exécutez ce code.SF_Archive.ArchiverAccessorResponse reportResponse = SF_Archive.ArchiverAccessor.getRTBFStatus(requestId); system.debug(reportResponse.getBody()); -
Cliquez sur Execute.
La demande de statut commence. Une fois terminé, l'un de ces statuts est affiché dans le Journal d'exécution.
Request failed, please contact support.La demande a échoué et échoué.
Request handled, no matching results were found.:Aucun enregistrement ne correspond aux critères spécifiés.
Request is open. Scan is still in progress.La requête est toujours en cours.
Lorsque la requête est terminée avec succès, vous recevez un rapport CSV contenant tous les détails des informations supprimées.
Le rapport CSV contient ces informations.
| Champ | Description |
|---|---|
| Enregistrement des critères | Le champ d'enregistrement qui correspond aux critères de suppression de la requête. |
| Type d'enregistrement Critères | Les critères de la requête. |
| ID Salesforce associé qui a provoqué la suppression | La ligne référencée par un autre enregistrement du tableau qui correspond également aux critères. |
| ID Salesforce | L'ID de l'enregistrement contenu dans la ligne du rapport. |
| Statut | Indique si l'enregistrement a été supprimé ou non. |
Erreurs courantes RTBF
Critères non valides
- Le champ doit correspondre à un objet.
- Un seul critère avec le même objet n'est pas autorisé.
- Vous pouvez envoyer jusqu'à 10 critères par requête.
Aucun résultat
- La valeur ne peut pas être partielle.
- Les critères doivent être de type enregistrement qui a été archivé.
Par exemple, si vous avez un Compte avec un X ID et que vous avez archivé les requêtes appartenant à cet ID, vous devez exclure les requêtes appartenant à ce Compte. Pour cela, créez ce critère de filtrage.
Object type: Case, field: AccountId, value: XObject type: Account, field: Id, value: XCe critère ne supprime rien, car Archive n'a pas le compte approprié.Archiver Apex : scénarios de cas d'utilisation de la RTBF
Utilisez des scénarios de cas pour la RTBF dans l'application Archive.
Scénario 1 : RTBF avec plusieurs objets
Jane Doe est une cliente de la banque XYZ, où elle possède un compte depuis 2 ans. Récemment, elle a décidé de vouloir exercer sa RTBF dans le cadre du Règlement général sur la protection des données (RGPD). Jane pense que la banque détient des données personnelles inutiles à son sujet et souhaite qu'elles soient effacées de leurs dossiers.
Jane soumet sa demande de RTBF à la banque XYZ et spécifie les données personnelles qu'elle souhaite supprimer, qui peuvent inclure les informations du compte, l'historique des transactions et toutes les autres données personnelles détenues par la banque. La banque procède à l'identification et à la localisation des données personnelles de Jane.
| Critères | Filtrage | Filtrage | Filtrage | Filtrage |
|---|---|---|---|---|
| Objet | Compte | Transaction_c | Requête | |
| Nom du champ | Nom | Utilisateur de la transaction | Nom du client | De |
| Valeur | Jane Doe | Jane Doe | Jane Doe | Jane Doe |
La requête RTBF peut contenir jusqu'à 10 objets distincts.
Résultats :
Les archives trouvent 1 compte, 2000 transactions, 15 requêtes en tant que roots et 30 e-mails.
Scénario 2 : Objet unique RTBF
Une société pharmaceutique a sorti un médicament expérimental, les Elixirs d'Eddy, pour traiter l'arthrite. Cependant, il a entraîné des effets indésirables graves parmi les patients. Après le rappel du médicament, la société a soumis une demande de la RTBF pour retirer tous les enregistrements publics et contenus numériques liés aux Elixirs d'Eddy.
| Critères | Filtrage |
|---|---|
| Objet | Requête |
| Nom du champ | Nom du médicament |
| Valeur | Élixirs d'Eddy |
Résultats :
Archive trouve 1000 requêtes en tant que racines et 1000 enregistrements de patient archivés sous la racine en tant qu'enregistrements enfants. Ça les retire tous.
Une activité est créée sous l'onglet Archiver les activités de la console, montrant l'icône RTBF.
Scénario 3 : RTBF Plus de 10 000 enregistrements racine trouvés
Emily Jones, utilisatrice régulière d'une plateforme populaire sur les réseaux sociaux appelée ConnectWorld, désactive son compte et demande à exercer sa RTBF en vertu de la réglementation sur la protection des données.
| Objet | Filtrage | Filtrage | Filtrage |
|---|---|---|---|
| Objet | Compte utilisateur | Contact | Requête |
| Nom du champ | Nom | Phone | ID associé |
| Valeur | ID de compte pour Emily Jones | Numéro de téléphone d'Emily | ID de compte pour Emily Jones |
Résultats :
L'archive récupère 20 000 enregistrements Requête racine, 300 000 Contacts et 10 000 Requêtes en tant que racines, et 150 000 Contacts archivés sous la racine en tant qu'enregistrements enfants sont retirés.
Une activité est créée sous l'onglet Archiver les activités de la console, montrant l'icône RTBF.
getRTBFStatus renvoie un code de statut 200 avec le message d'erreur « Demande traitée. Nombre maximal de résultats de recherche atteints. Affinez votre recherche ou soumettez une nouvelle requête pour afficher plus d'enregistrements".
Archiver ne peut traiter que 10 000 enregistrements racine maximum par requête Apex RTBF. Pour résoudre cette erreur, réexécutez la requête pour récupérer les enregistrements restants.
Archiver Apex : anonymiser les informations d’identification personnelle dans l’application Archive
Anonymisez les informations d'identification personnelle (PII) dans les enregistrements archivés sans supprimer l'enregistrement lui-même. L'anonymisation remplace les valeurs confidentielles par des espaces réservés irréversibles pour vous aider à respecter les réglementations relatives à la protection de la vie privée tout en conservant la structure des enregistrements de l'application Archive.
L'anonymisation, également appelée masquage, vous aide à satisfaire aux demandes de confidentialité, telles que le Droit à l'oubli (RTBF). Ce processus effectue une mise à jour en place sur les enregistrements archivés. Contrairement à une action de purge, qui supprime définitivement des données, l'anonymisation remplace des valeurs confidentielles spécifiques par un texte générique, par exemple redacted@exemple.com.
Fonctionnement de l'anonymisation
Le système détecte les champs PII, tels que Nom, E-mail, Téléphone et Adresse, en utilisant des métadonnées d'objet. Lorsque vous soumettez une requête, le système masque les valeurs d'informations d'identification personnelle d'origine avec des espaces réservés irréversibles. Les données non-PII, telles que les ID d'enregistrement et les horodatages, restent inchangées et peuvent être recherchées.
L'anonymisation est complète. Lorsque vous anonymisez un enregistrement racine, le processus d'anonymisation s'applique automatiquement en cascade à tous les enregistrements enfants associés dans la même hiérarchie archivée. Par exemple, l'anonymisation d'un enregistrement Contact anonymise également les informations d'identification personnelle dans les tâches et les événements associés à cet enregistrement.
Considérations importantes
- Le processus d'anonymisation est permanent. Vous ne pouvez pas récupérer ni afficher les valeurs d'informations d'identification personnelle d'origine après l'anonymisation.
- Vous pouvez anonymiser un enregistrement une seule fois. Si vous soumettez une requête en double pour un enregistrement anonymisé, le système l'ignore.
- L'anonymisation partage la limite standard de 10 000 requêtes Archive RTBF par organisation et par jour.
- Vous ne pouvez pas sélectionner manuellement les champs à anonymiser. Le système identifie automatiquement les champs PII en fonction de l'algorithme Recover.
- Vous ne pouvez pas anonymiser des enregistrements légalement détenus. Le système exclut automatiquement les enregistrements actuellement détenus légalement ou verrouillés de rétention.
Voir également :
Soumission d'une demande d'anonymisation
Définissez vos critères cibles et soumettez une tâche d'anonymisation en utilisant la classe Apex SF_Archive.ArchiverAccessor.
Assurez-vous de remplir les conditions ci-dessous.
- L'utilisateur qui exécute le code Apex est autorisé à accéder à l'espace de noms
SF_Archive. - Accès à la Developer Console ou à un IDE pour exécuter Execute Anonymous Apex.
- Ouvrez la Developer Console ou votre outil d'exécution Apex préféré.
- Ouvrez une fenêtre Exécuter anonyme.
-
Pour définir les critères et soumettre la requête, exécutez ce code. Ce bloc de code anonymise le champ d'adresse e-mail dans un enregistrement Contact.
// 1. Define the criteria for the records to anonymize. // Syntax: new Criteria('ObjectAPIName', 'FieldAPIName', 'ValueToMatch'); List<SF_Archive.Criteria> criteriaList = new List<SF_Archive.Criteria>(); // Example: Anonymize a specific Contact by Email criteriaList.add(new SF_Archive.Criteria( 'Contact', 'Email', 'mickey.mouse@example.com' )); // 2. Submit the anonymization request. SF_Archive.ArchiverAccessorResponse response = SF_Archive.ArchiverAccessor.maskArchivedRecords(criteriaList); // 3. Process the response to get the request ID. Map<String, String> values = (Map<String, String>)JSON.deserialize(response.getBody(), Map<String, String>.class); String requestId = values.get('request_id'); // Output the request ID for tracking. System.debug('Anonymization Job Submitted. Request ID: ' + requestId);
Vérification du statut d'anonymisation
Vérifiez le statut de votre tâche d'anonymisation et générez un rapport d'audit en utilisant l'ID de requête généré lors de la soumission.
L'anonymisation est un processus asynchrone. Après avoir soumis une requête, utilisez l'ID de requête renvoyé pour suivre sa progression et vérifier les résultats.
-
Pour vérifier le statut de la tâche d'anonymisation, exécutez ce code dans la fenêtre Exécuter anonyme.
// Paste the Request ID found in the Debug Log from the anonymization request. // Example: String requestId = '0Qn5e000000abcD'; String requestId = 'YOUR_REQUEST_ID_HERE'; // Check the status. String statusResponse = SF_Archive.ArchiverAccessor.getMaskingStatus(requestId); System.debug('Anonymization Job Status: ' + statusResponse); -
Pour générer un rapport d'audit une fois la tâche d'anonymisation terminée, exécutez ce code dans la fenêtre Exécuter anonyme.
String requestId = 'YOUR_REQUEST_ID_HERE'; String report = SF_Archive.ArchiverAccessor.getMaskingReport(requestId); System.debug('Anonymization Audit Report: ' + report);
Résultats d'anonymisation
Examinez l'affichage des champs PII une fois le processus d'anonymisation terminé. Lorsque le statut de la tâche est HANDLED, le système met immédiatement à jour les données archivées.
- Les recherches qui utilisent les informations d'identification personnelle d'origine, par exemple une adresse e-mail, ne renvoient aucun résultat.
- Les recherches qui utilisent des identifiants non confidentiels, par exemple un ID d'enregistrement, renvoient l'enregistrement anonymisé.
- Lorsque vous visualisez l'enregistrement via Rechercher, Exporter ou Désarchiver, les champs PII affichent des valeurs d'espace réservé.
| Champ | Valeur d'origine | Valeur anonymisée |
|---|---|---|
| Nom | Mickey Mouse | redacted_first_name |
| mickey.mouse@exemple.com | redacted@exemple.com | |
| Téléphone | +1-415-555-1234 | 000-000-0000 |
| ContactId | 003XX0000123AbC | 003XX0000123AbC |

