Uppdatera dina integreringar för nya platsformat
Om du integrerar data från externa system till Salesforce eller skickar Salesforce-data till externa tredje parter, använd platsneutrala format när så är möjligt i den relaterade koden. När platsformaten ändras, gå igenom koden som hanterar de format som påverkas.
Versioner som krävs
| Tillgängliga i: både Salesforce Classic och Lightning Experience |
| Tillgängliga i: alla versioner |
Integreringspunkter kan finnas i många olika format, inklusive API-anrop till och från Salesforce. Granska även processer som inkluderar att exportera data till filer, som kommaavgränsade filer (CSV-filer) eller importera data från filer till Salesforce.
Format för adress, valuta, datum, datumtid, heltal, namn och tid kan ändras när en användare ändrar plats. När så är möjligt, använd platsneutrala standardmetoder för att hantera dessa datatyper. Om det inte finns en standardmetod, uppdatera koden så att den täcker de nya formaten.
Specifikt för att migrera från Oracles Java Development Kit (JDK)-format till platsformaten International Components for Unicode (ICU), verifiera integreringar som hanterar data för valuta, datum, datumtid, heltal eller tid.
Om en tredje part anropar Salesforce programmatiskt, arbeta med den parten för att testa och uppdatera processen enligt behov när platsformat ändras. För att söka i din Salesforce-kod, ladda ner metadata. Använd sedan ett kommandoradsgränssnitt, till exempel Salesforce CLI.
Integreringsexempel: Importera datum
Vi tar ett enkelt exempel på hur en ändring i ett platsformat kan påverka integrationer.
I detta exempel har vi ett eget objekt, Konferens, med två ytterligare fält: start_date_time och end_date_time. För att fylla i objektet konferens hämtar en Apex-klass data med en extern API. Klassen kan även hämta data från en CSV-fil, men i detta exempel använder vi ett externt API-anrop.
Det externa API-anropet returnerar ett JSON-objekt som innehåller denna information. Datum/tiddata formateras med JDK-formatet för platsen Engelska (USA) [en_US].
{
"conferences": [{
"name": "conference1",
"start_date_time": "10/20/2021 10:00 AM",
"end_date_time": "10/22/2021 05:00 PM"
}, {
"name": "conference2",
"start_date_time": "11/21/2021 11:00 AM",
"end_date_time": "11/24/2021 05:00 PM"
}]
}Denna Apex-kod infogar konferensposterna.
// Mocking the sample response of API call
String jsonResponse = '{"conferences": [{"name":"conference1", "start_date_time":"10/20/2021 10:00 AM", "end_date_time":"10/22/2021 5:00 PM"}, {"name":"conference2", "start_date_time":"11/21/2021 11:00 AM", "end_date_time":"11/24/2021 05:00 PM"}]}';
Map<String, Object> results = (Map<String, Object>) JSON.deserializeUntyped(jsonResponse);
List<Object> conferences = (List<Object>) results.get('conferences');
for(Object conference: conferences) {
Map<String, Object> conferenceDetails = (Map<String, Object>)conference;
//Initialize object
Conference__c confObject = new Conference__c (
name = String.valueof(conferenceDetails.get('name')),
start_date_time__c = datetime.parse(String.valueof(conferenceDetails.get('start_date_time'))),
end_date_time__c = datetime.parse(String.valueof(conferenceDetails.get('end_date_time')))
);
//insert object
insert confObject;
}datetime.parse() använder datum/tid-formatet för den personliga plats för användaren som kör koden.
Vi förutsätter att användarens personliga plats är Engelska (USA) [en_US]. Formaten för JDK och ICU-datumtider som används för platsen skiljer sig åt.
- JDK:s korta datumtidformat för en_US: 10/20/2021 10:00 AM
- ICU:s korta datumtidformat för en_US: 10/20/2021, 10:00 AM
När organisationen använder JDK-platsformat körs denna kod framgångsrikt. När ICU-platsformat är aktiverade ger denna kod ett tolkningsfel eftersom värdena start_date_time och end_date_time saknar det förväntade kommatecknet efter året.
Detta problem kan också inträffa när data som lagras i Salesforce skickas till ett externt system med ett platsspecifikt format, till exempel vid användning av ett POST-anrop. Precis som i exemplet ovan avgör den personliga plats för användaren som kör koden formatet på datan.
Åtgärda problem
För att undvika dessa problem, använd platsneutrala format när du tar emot, skickar och bearbetar data.
Om du hittar ett problem med data som tagits emot från ett externt system, kontakta avsändaren för att uppdatera formatet på källdata. Om du inte kan kontakta avsändaren, uppdatera din kod för att konvertera de mottagna data till ett platsneutralt format innan du bearbetar dem.
