VisualForce {! Account.Id} retourneert 15 char-id in plaats van 18

Vanuit de Salesforce documentatie :

"Omdat er toepassingen zoals Access zijn die niet herkennen dat 50130000000014c een andere ID is dan 50130000000014C, wordt een 18-cijferige, case-safe versie van de ID geretourneerd door alle API-aanroepen . ID's van 18 tekens zijn gevormd door een suffix toe te voegen aan elke ID in de Force.com API. 18-karakterige ID's kunnen veilig worden vergeleken voor uniekheid door niet-hoofdlettergevoelige applicaties en kunnen worden gebruikt in alle API-aanroepen bij het maken, bewerken of gegevens verwijderen. "

Maar toch, van mijn Visualforce-pagina:

{! Account.Id}

geeft de 15-cijferige ID terug in plaats van de 18-cijferige ID.

Is er een andere parameter/eigenschap die ik kan gebruiken om me de 18-char ID te geven? Waarom is het wanneer de documenten duidelijk zeggen dat alle API-aanroepen de 18-char ID retourneren, Account.Id geeft me de 15-char ID?

3
Ik zou willen voorstellen dat aangezien de documenten het hebben over systemen die niet hoofdlettergevoelig zijn en de API voor externe toepassingen, ze daar alleen de 18 tekens in de vorm van tekens gebruiken. Het lijkt erop dat er geen noodzaak is om de 18 char-versie in SFDC- en VF-pagina's te gebruiken, omdat ze weten dat hun systeem dit op de juiste manier afhandelt.
toegevoegd de auteur Matt Lacey, de bron
Ik kan dat misschien begrijpen, maar deze waarden worden niet alleen intern gebruikt. We verzenden ids als querystring-params naar onze pagina's om delen van onze site met SF te integreren, maar de SF-id's die we hebben, zijn de id's met 18 char en de id's die in onze querystring terechtkomen zijn 15-char ids. Ze moeten een standaard kiezen en alles omzetten naar 18-char-id's.
toegevoegd de auteur Stephen, de bron

2 antwoord

Ik geloof niet dat er een andere parameter is die u kunt gebruiken, maar er zijn verschillende hulpmiddelen om de ID van 18 tekens te krijgen.

Hier is een lijst:

Ik hoop dat het helpt!

4
toegevoegd
Bedankt Matthew, ik heb wel een formuleveld toegevoegd aan het Account-object zoals besproken in de eerste link die je hebt opgegeven. Het lijkt een hacky-oplossing voor iets dat moet worden ingebouwd in SF, maar we doen dat veel!
toegevoegd de auteur Stephen, de bron
Er is ook SystemUtils.to18() in het apex-lang-pakket ( code.google.com/ p/apex-lang ).
toegevoegd de auteur jkraybill, de bron

Ik denk dat hier een paar redenen zijn. Visualforce wordt niet beschouwd als een "API-aanroep" of op zijn minst niet in de traditionele zin. De niet-hoofdlettergevoelige 18-cijferige ID's zijn toegevoegd om te helpen bij gegevensintegratie met systemen zoals Access, maar als u via URL's en queryparameters interageert met andere websites, zijn ze al hoofdlettergevoelig, zodat de 15-cijferige hoofdletteridentificatie moet werken voor jou. Om 18 naar 15 te converteren, verwijdert u gewoon de laatste 3 tekens. Alle inkomende aanvragen voor SFDC (UI, API, VF, Apex, enz.) Accepteren zowel chargestijls voor 15 als 18 tekens.

1
toegevoegd