U bent hier:
Apex archiveren—Recht op vergetelheid (RTBF)
Regelgeving voor gegevensprivacy verleent individuen het recht om te worden vergeten (RTBF), waardoor organisaties verplicht zijn om op verzoek persoonsgegevens veilig te wissen. Apex archiveren maakt naleving mogelijk door specifieke gegevens te identificeren en te verwijderen uit de app Archiveren, wat zorgt voor grondige verwijdering terwijl de integriteit van andere gearchiveerde gegevens behouden blijft.
Filtercriteria voor RTBF
Geef voor de verwerking van een RTBF-verzoek de juiste filtercriteria op. Bijvoorbeeld:
| Criteria | Voorbeeld |
|---|---|
| Veldnaam | Werknemers-ID |
| Object | Contactpersoon |
| Waarde | ID 123456789011121314 |
Belangrijke overwegingen
- Indieningen zijn beperkt tot 10.000 verzoeken per dag met een zoeklimiet van 10.000 rootrecords.
- Het verwijderingsproces van de RTBF strekt zich uit tot direct en indirect gerelateerde onderliggende records binnen een hiërarchie.
- Overlappende zoekresultaten kunnen sommige records markeren als al verwijderd in het controlebestand.
- Als de limiet voor zoekresultaten is bereikt, geeft de status van Apex activiteit een
200statuscode met deze fout weer.Request processed. Maximum search results reached. Refine your search or submit a new request. - De meeste standaard RTBF-verzoeken worden binnen 30 minuten voltooid.
- Richt u voor optimale resultaten op het rootobject.
- Object- en veldnaamfilters zijn niet hoofdlettergevoelig.
- Archief biedt geen ondersteuning voor gedeeltelijke verwijdering.
Werking van RTBF voor onderliggende records in een gearchiveerde hiërarchie
Bij het uitvoeren van een RTBF-verzoek voor een onderliggende record verwijdert het verzoek de volledige gearchiveerde hiërarchie die eraan is gekoppeld.
Als u bijvoorbeeld een specifieke caserecord zoekt en een verzoek om RTBF archiveren indient, worden de case, de gekoppelde taken en de gerelateerde accountrootrecord verwijderd. Omdat deze records samen zijn gearchiveerd, verwijdert RTBF de gehele gearchiveerde hiërarchie.
Als de account echter afzonderlijk is gearchiveerd, verwijdert het uitvoeren van RTBF voor de caserecord alleen de case en de bijbehorende taken, maar niet de accountrecord.
Hoe RTBF werkt
Het RTBF-proces wordt uitgevoerd als een asynchroon proces en volgt deze sequentiële API-aanroepen.
- Gegevensidentificatie: Apex query's Archiveren om alle records te vinden die overeenkomen met de opgegeven filtercriteria.
- Verwijdering van gegevens: Apex stuurt een verwijderingsverzoek naar Archiveren, waarbij alle overeenkomende records worden verwijderd.
Wanneer het proces is voltooid, wordt er een pictogram RTBF-activiteit weergegeven onder het tabblad Activiteiten in de Archive Console.
RTBF-verzoek, voorbeeld
Een voormalige medewerker, Maria Johnson, dient een RTBF-verzoek in om alle persoonsgegevens uit uw systeem te verwijderen. Uw bedrijf archiveert werknemersrecords in combinatie met hun e-mailcorrespondentie, interacties met klanten en projecttoewijzingen. Gebruik voor het volgen van het RTBF-verzoek dit filtercriterium.
| Object | Veldnaam | Waarde |
|---|---|---|
| Contactpersoon | Maria@own.com | |
| Case | Werknemers-ID | 987654321 |
| Taak | Toegewezen aan | Maria Johnson |
| Afzender | Maria@own.com | |
| Document | Eigenaar | Maria Johnson |
Dit verzoek garandeert de volledige verwijdering van Maria's gegevens, inclusief haar contactgegevens, cases waarbij ze betrokken was, taken die aan haar zijn toegewezen, en alle e-mail- en documentrecords die aan haar zijn gekoppeld. Dit proces helpt naleving van regelgeving voor gegevensprivacy te handhaven en tegelijkertijd te zorgen voor een grondige en nauwkeurige verwijdering van gevoelige informatie.
API-methoden en reactieverwerking
U wordt aangeraden om uw criteria te valideren door de query uit te voeren op Apex Data Query's voordat u het RTBF-verzoek indient.
| Invoer | Uitvoer | Definitie |
|---|---|---|
ArchiverAccessorResponse |
|
De respons van de API-aanroep vergeten. Retourneert een requestId om de status van het verzoek bij te houden met behulp van de methode getRTBFStatus. |
Criteria(tekenreeks sObjectName, tekenreeks fieldName, tekenreeks value) |
||
forgetArchivedRecords(list<Criteria>
inputFilters) |
ArchiverAccessorResponse |
Openbare methode die een verzoek om archivering vergeet maakt en een lijst van te verwijderen criteria. |
getRTBFStatus(string requestId) |
Een CSV-rapport met alle details van de informatie die is verwijderd. | Openbare methode die u de mogelijkheid biedt om gevolg te geven aan uw RTBF-verzoek. |
- Apex archiveren—Een RTBF-verzoek uitvoeren
Test handmatig Apex archiveren en voer een RTBF-verzoek uit in de app Archiveren. - Apex archiveren—RTBF-gebruikscasescenario's
Gebruikscasescenario's voor RTBF in de app Archiveren. - Apex archiveren: persoonsgegevens anonimiseren in de app Archiveren
Persoonlijk identificeerbare informatie (PII) anonimiseren in gearchiveerde records zonder de record zelf te verwijderen. Anonimisering vervangt gevoelige waarden door onomkeerbare plaatshouders om u te helpen te voldoen aan privacyregelgeving terwijl de recordstructuur van de app Archiveren behouden blijft.
Apex archiveren—Een RTBF-verzoek uitvoeren
Test handmatig Apex archiveren en voer een RTBF-verzoek uit in de app Archiveren.
- Klik op het pictogram Instellingen.
- Selecteer Developer Console.
-
Druk voor het openen van de console op
F12ofCtrl+Shift+Iin Windows of opCmd+Eop Mac. -
Voer in de console deze code uit om een criterialijst te maken, een RTBF-verzoek te verzenden en de
requestIdop te halen uit Archief.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); -
Klik op Uitvoeren.
Het verzoek begint. Na voltooiing wordt de
requestIdopgeslagen in het uitvoeringslogboek.
De status van de RTBF-aanvraag weergeven
Nadat u een RTBF-verzoek hebt verzonden, kunt u de status van het verzoek bekijken.
- Klik rechtsboven op de pagina op het pictogram Instellingen.
- Selecteer Developer Console.
-
Druk op
Command + E. -
Voer met behulp van de
requestIdvoor uw RTBF-aanvraag deze code uit.SF_Archive.ArchiverAccessorResponse reportResponse = SF_Archive.ArchiverAccessor.getRTBFStatus(requestId); system.debug(reportResponse.getBody()); -
Klik op Uitvoeren.
Het statusverzoek begint. Wanneer voltooid, wordt een van deze statussen weergegeven in het uitvoeringslogboek.
Request failed, please contact support.Het verzoek is mislukt en mislukt.
Request handled, no matching results were found.:Er zijn geen records die voldoen aan de opgegeven criteria.
Request is open. Scan is still in progress.Het verzoek is nog in behandeling.
Wanneer de aanvraag met succes is voltooid, ontvangt u een CSV-rapport met alle details van de informatie die is verwijderd.
Het CSV-rapport bevat deze informatie.
| Veld | Beschrijving |
|---|---|
| Criteriarecord | Het recordveld dat overeenkomt met de verwijderingscriteria van het verzoek. |
| Recordtype voor criteria | De criteria van het verzoek. |
| Gerelateerde Salesforce-ID die verwijdering heeft uitgelokt | De rij waarnaar wordt verwezen door een andere record in de tabel die ook voldoet aan de criteria. |
| Salesforce ID | De ID van de record in de rapportrij. |
| Status | Geeft aan of de record al dan niet is verwijderd. |
Veel voorkomende fouten bij RTBF
Ongeldige criteria
- Veld moet overeenkomen met een object.
- Er is niet meer dan één criterium met hetzelfde object toegestaan.
- U kunt maximaal 10 criteria per verzoek verzenden.
Geen resultaten
- Waarde mag niet gedeeltelijk zijn.
- Criteria moeten van het recordtype zijn dat is gearchiveerd.
Als u bijvoorbeeld een Account met ID X hebt en u de cases hebt gearchiveerd die bij die ID horen, moet u cases uitsluiten die bij die Account horen. Hiervoor maakt u dit filtercriterium.
Object type: Case, field: AccountId, value: XObject type: Account, field: Id, value: XMet dit criterium wordt niets verwijderd omdat Archiveren niet de relevante account heeft.Apex archiveren—RTBF-gebruikscasescenario's
Gebruikscasescenario's voor RTBF in de app Archiveren.
Scenario 1: RTBF met meerdere objecten
Jane Doe is klant bij XYZ Bank, waar ze de afgelopen 2 jaar een rekening heeft gehad. Onlangs heeft ze besloten dat ze haar RTBF wil uitoefenen onder de Algemene Verordening Gegevensbescherming (AVG). Jane gelooft dat de bank onnodige persoonlijke gegevens over haar heeft en wil deze uit hun records verwijderen.
Jane dient haar RTBF-verzoek in bij XYZ Bank en geeft de persoonlijke gegevens op die ze wil laten wissen, waaronder accountgegevens, transactiehistorie en alle andere persoonlijke gegevens die de bank in bezit heeft. De bank gaat door met het identificeren en lokaliseren van de persoonsgegevens van Jane.
| Criteria | Filteren | Filteren | Filteren | Filteren |
|---|---|---|---|---|
| Object | Account | Transactie_c | Case | |
| Veldnaam | Naam | Transactiegebruiker | Klantnaam | Van |
| Waarde | Jane Doe | Jane Doe | Jane Doe | Jane Doe |
De RTBF-aanvraag kan maximaal 10 afzonderlijke objecten bevatten.
Resultaten:
Archiveren vindt 1 account, 2000 transacties, 15 cases als roots en 30 e-mailberichten.
Scenario 2: Enkelvoudig object RTBF
Een farmaceutisch bedrijf bracht een experimenteel medicijn uit, Eddy's Elixirs, om artritis te behandelen. Het resulteerde echter in ernstige bijwerkingen bij patiënten. Na het terugroepen van het medicijn diende het bedrijf een RTBF-verzoek in om alle openbare records en digitale inhoud gerelateerd aan Eddy's Elixirs te verwijderen.
| Criteria | Filteren |
|---|---|
| Object | Case |
| Veldnaam | Medicijnnaam |
| Waarde | Eddy's Elixirs |
Resultaten:
Met Archiveren worden 1000 cases gevonden als roots en 1000 patiëntenrecords die onder de root worden gearchiveerd als onderliggende records. Het verwijdert ze allemaal.
Er wordt één activiteit gemaakt op het tabblad Console-activiteiten archiveren, met het pictogram RTBF.
Scenario 3: RTBF Meer dan 10.000 rootrecords gevonden
Emily Jones, een regelmatige gebruiker van een populair sociaal mediaplatform genaamd ConnectWorld, deactiveert haar account en vraagt om haar RTBF uit te oefenen op grond van regelgeving voor gegevensbescherming.
| Object | Filteren | Filteren | Filteren |
|---|---|---|---|
| Object | Gebruikersaccount | Contactpersoon | Case |
| Veldnaam | Naam | Telefoon | Gerelateerde ID |
| Waarde | Account-ID voor Emily Jones | Emily's telefoonnummer | Account-ID voor Emily Jones |
Resultaten:
Met Archiveren worden 20.000 rootcaserecords, 300.000 contactpersonen en 10.000 cases als roots gevonden, terwijl 150.000 contactpersonen die onder de root worden gearchiveerd als onderliggende records worden verwijderd.
Er wordt één activiteit gemaakt op het tabblad Console-activiteiten archiveren, met het pictogram RTBF.
getRTBFStatus retourneert een statuscode 200 met het foutbericht "Aanvraag verwerkt. Maximale aantal zoekresultaten bereikt. Verfijn uw zoekopdracht of dien een nieuw verzoek in om meer records te zien".
Archief kan slechts maximaal 10.000 rootrecords per RTBF Apex verzoek verwerken. Voer voor het oplossen van deze fout de query opnieuw uit om de resterende records op te halen.
Apex archiveren: persoonsgegevens anonimiseren in de app Archiveren
Persoonlijk identificeerbare informatie (PII) anonimiseren in gearchiveerde records zonder de record zelf te verwijderen. Anonimisering vervangt gevoelige waarden door onomkeerbare plaatshouders om u te helpen te voldoen aan privacyregelgeving terwijl de recordstructuur van de app Archiveren behouden blijft.
Anonimisering, ook wel bekend als maskeren, helpt u te voldoen aan privacyverzoeken, zoals het Recht op vergetelheid (RTBF). Dit proces voert een in-place update uit op gearchiveerde records. In tegenstelling tot een actie voor opschonen, die gegevens permanent verwijdert, vervangt anonimisering specifieke gevoelige waarden door generieke tekst, zoals redacted@example.com.
Hoe anonimisering werkt
Het systeem detecteert persoonsgegevensvelden, zoals Naam, E-mail, Telefoon en Adres, door middel van objectmetagegevens. Wanneer u een verzoek indient, maskeert het systeem oorspronkelijke PII-waarden met onomkeerbare plaatshouders. Niet-PII-gegevens, zoals record-ID's en tijdstempels, blijven ongewijzigd en doorzoekbaar.
Anonimisering is uitgebreid. Wanneer u een rootrecord anonimiseert, wordt het anonimiseringsproces automatisch trapsgewijs uitgevoerd op alle gerelateerde onderliggende records binnen dezelfde gearchiveerde hiërarchie. Als u bijvoorbeeld een contactpersoonsrecord anonimiseert, worden persoonsgegevens ook geanonimiseerd in de gerelateerde taken en events van die record.
Belangrijke overwegingen
- Het anonimiseringsproces is permanent. U kunt oorspronkelijke persoonsgegevens niet herstellen of weergeven na anonimisering.
- U kunt een record slechts één maal anonimiseren. Als u een duplicaatverzoek indient voor een geanonimiseerde record, negeert het systeem dit.
- Anonimisering deelt de standaardlimiet voor de RTBF-score voor archiveren van 10.000 verzoeken per organisatie per dag.
- U kunt velden niet handmatig selecteren om te anonimiseren. Het systeem identificeert automatisch persoonsgegevensvelden op basis van het algoritme Herstellen.
- U kunt records die wettelijk zijn vastgelegd, niet anonimiseren. Het systeem sluit automatisch records uit die momenteel onder juridische bewaring of bewaarvergrendeling vallen.
Een anonimiseringsverzoek indienen
Definieer uw doelcriteria en dien een anonimiseringstaak in met behulp van de SF_Archive.ArchiverAccessor Apex klasse.
Zorg ervoor dat u aan deze vereisten voldoet.
- De gebruiker die de Apex code uitvoert heeft machtiging voor toegang tot de
SF_Archivenaamruimte. - Toegang tot de Developer Console of een IDE voor het uitvoeren van Execute Anonymous Apex.
- Open de Developer Console of de gewenste Apex uitvoeringstool.
- Open een venster Execute Anonymous (Anoniem uitvoeren).
-
Voer voor het definiëren van de criteria en indienen van het verzoek deze code uit. Dit codeblok anonimiseert het e-mailadresveld in een contactpersoonsrecord.
// 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);
Anonimiseringsstatus verifiëren
Controleer de status van uw anonimiseringstaak en genereer een controlerapport met behulp van de verzoek-ID die tijdens indiening wordt gegenereerd.
Anonimisering is een asynchroon proces. Nadat u een verzoek hebt ingediend, gebruikt u de geretourneerde verzoek-ID om de voortgang ervan bij te houden en de resultaten te verifiëren.
-
Voer voor het controleren van de status van de anonimiseringstaak deze code uit in het venster Execute Anonymous (Anoniem uitvoeren).
// 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); -
Als u een controlerapport wilt genereren nadat de anonimiseringstaak is voltooid, voert u deze code uit in het venster Execute Anonymous (Anoniem uitvoeren).
String requestId = 'YOUR_REQUEST_ID_HERE'; String report = SF_Archive.ArchiverAccessor.getMaskingReport(requestId); System.debug('Anonymization Audit Report: ' + report);
Anonimiseringsresultaten
Controleer hoe persoonsgegevensvelden worden weergegeven nadat het anonimiseringsproces is voltooid. Wanneer de taakstatus HANDLED is, werkt het systeem de gearchiveerde gegevens onmiddellijk bij.
- Zoekopdrachten die de oorspronkelijke persoonsgegevens gebruiken, zoals een e-mailadres, retourneren geen resultaten.
- Zoekopdrachten die niet-gevoelige identifiers gebruiken, zoals een record-ID, retourneren de geanonimiseerde record.
- Wanneer u de record weergeeft via Zoeken, Exporteren of Archiveren ongedaan maken, tonen PII-velden plaatshouderwaarden.
| Veld | Oorspronkelijke waarde | Geanonimiseerde waarde |
|---|---|---|
| Naam | Mickey Mouse | redacted_first_name |
| mickey.mouse@example.com | redacted@example.com | |
| Telefoon | +1-415-555-1234 | 000-000-0000 |
| ContactId | 003XX0000123AbC | 003XX0000123AbC |

