breadcrumbDescription
API-versioner for Apex-klasser, Apex-udløsere og Visualforce-sider
ICU-landestandardformater (International Components for Unicode) er tilgængelige med API version 45.0 eller nyere. Hvis du vil bruge ICU-landestandardformater i dine tilpasninger, skal du opdatere dine Apex-klasser, Apex-udløsere og Visualforce-sider til den seneste API-version.
EditionsHeading
| Tilgængelig i: både Salesforce Classic og Lightning Experience |
| Tilgængelig i: Alle versioner |
| Brugertilladelser påkrævet | |
|---|---|
| Hvis du vil definere, redigere, slette sikkerhed og indstille versionsindstillinger for Apex- klasser: | Dokumentopretter Apex |
| Hvis du vil køre Apex-test: | Vis opsætning og konfiguration |
| Hvis du vil have vist Apex-udløsere: | Vis opsætning og konfiguration |
| Hvis du vil definere Apex-udløsere: | Dokumentopretter Apex |
Salesforce tilføjede ICU-landestandardformater i Spring ’19, som svarer til API version 45.0. Når ICU-landestandardformater er aktiveret, bruger al Salesforce-leveret funktionalitet ICU-formaterne. Men Apex-klasser, Apex-udløsere og Visualforce-sider bruger kun ICU-landestandardformater, når ICU er aktiveret, og API-versionen af Apex eller Visualforce-siden er 45.0 eller nyere.
Tilpasset kode og komponenter, der bruger API version 44.0 eller tidligere, kan ikke referere til ICU-landestandardformaterne, da de ikke findes i den pågældende API-version. I denne situation returnerer den tilpassede kode og komponenter JDK-landestandardformater, selvom ICU-landestandarder er aktiveret i organisationen.
Hver Visualforce-side, Apex-klasse og Apex-udløser har en API-version. Den indledende API-version er altid API-versionen af din Salesforce-organisation, når komponenten oprettes.
En ny API-version er tilgængelig med hver Salesforce-version. Men Salesforce opdaterer ikke API-versionen af dine Apex-klasser, Apex-udløsere og Visualforce-sider, da vi ikke kan teste dem for nogen potentielle problemer. Ideelt skal du opdatere API-versionen af dine komponenter og validere koden med hver version, men nogle gange vil det ikke ske. Det er f.eks. muligt for en Apex-klasse at bruge API version 41.0 i en organisation på API version 63.0.
Salesforce-partnere og ISV'er bruger også Apex-klasser, Apex-udløsere og Visualforce-sider til at levere funktionalitet i deres pakker. ISV'er er ansvarlige for opdatering af API-versioner af deres pakkekomponenter.
Eksempelscenarie og potentielle fejl
Hvad er den forventede påvirkning for en organisation, der har ICU-landestandardformater aktiveret, og Apex, Apex og Visualforce, der ikke opfylder det mindste påkrævede API version 45.0?
Lad os se på landestandarden Spansk (USA) [es_US] som et eksempel. JDK- og ICU-korte datoformater er forskellige i den rækkefølge, som måneden og dagen er angivet.
- JDK kort datoformat for es_US: Mm/dd/åååå (eksempel: 2/11/2021)
- ICU kort datoformat for es_US: dd/MM/åååå (eksempel: 11/2/2021)
For en organisation med ICU-landestandardformater aktiveret vil alle standardbrugergrænsefladekomponenter og tilpassede komponenter, uanset API-versionen, vise datoer i ICU-formatet som dd/MM/åååå. Tilpassede komponenter, der bruger version 44.0 eller nyere, viser den ukorrekte dato. F.eks. vil JDK-datoen den 11. februar 2021 (2/11/2021) blive vist i ICU-landestandardformatet som den 2. november 2021 (2/11/2021).
I andre scenarier fører denne måned og dags uoverensstemmelse til en ugyldig dato. F.eks. resulterer en JDK-dato på 11/28/2021 (MM/dd/åååå) i en ParseException "Ugyldig dato og tid"-fejl, når ICU-landestandardformatet forsøger at vise den som (dd/MM/åååååå). Fejlen forekommer, fordi der ikke er en 28. måned.
Tilpassede dato/tidsfelter redigeret i Salesforce Classic og indbyggede redigeringer på Visualforce-sider bruger altid den aktuelle Salesforce API-version. På grund af denne adfærd, når ICU er aktiveret, bruger disse tilpassede felter og indbyggede redigeringer altid ICU-landestandardformater, uanset sidens API-version. Dine brugere kan opleve en ParseException-fejl i to situationer:
- Brugeren foretager en indbygget redigering på en Visualforce på API version 44.0 eller tidligere og gemmer deres ændringer med ugyldig dato i ICU-landestandardformatet (f.eks. 11/28/2021 i es_US-landestandarden).
- Brugeren indtaster en dato/tid i et tilpasset felt i Salesforce Classic.
Hvis du vil undgå disse problemer, når ICU er aktiveret, skal du sørge for at dine Apex-klasser, Apex-udløsere og tilpassede Visualforce-sider bruger API version 45.0 eller nyere.
Komponenter i administrerede pakker
Der er to kilder for Apex-klasser, Apex-udløsere og Visualforce-sider i din organisation. Enten har nogen bygget dem direkte i din organisation, eller de er inkluderet i en administreret pakke, der er installeret.
Kun pakkeejere kan redigere de komponenter, der er inkluderet i en administreret pakke. Du kan se de elementer, der er installeret af en administreret pakke, på dine lister, men du kan ikke redigere dem. For at få opdateringer til disse elementer skal du installere en ny version af den pakke, der indeholder opdateringerne.
Hvis du er pakkeejer, skal du opdatere din pakke til at bruge den seneste API-version i Apex-klasser, Apex-udløsere og Visualforce-sider, der refererer til datoer, tider, heltal og valutaer.
- Kontroller for API-versioner
Er du ikke sikker på, om din organisation har Apex-klasser, Apex-udløsere og Visualforce-sider? Hvert har en liste i Opsætning, der inkluderer versionsnummeret. - Opdater API-versionen
API version 45.0 er den minimum krævede version af ICU.
