/ / Niespójne renderowanie daty i wartości identyfikacyjnej na stronie Visualforce - salesforce, apex-code, visualforce, force.com

Niespójne renderowanie daty i wartości ID na stronie Visualforce - salesforce, apex-code, visualforce, force.com

Nie jestem w stanie zrozumieć, dlaczego ta niespójnośćdanych wyświetlanych na stronie VF. Wyświetlam identyfikator i datę w tabeli bloków stron. Używam tagu apex: column do wyświetlania danych. Kiedy deklaruję dane w atrybucie wartości bez spacji, otrzymuję Id z 15 znakami długości, ale gdy zawieram spację w wartości attirbute, wyświetlany jest 18 znaków identyfikatora. Nie jestem w stanie zrozumieć, dlaczego tak jest? wprowadź opis obrazu tutaj

<apex:pageblock>
<apex:pageblockTable value="{!acc}" var="a">
<apex:column value="{!a.Id}" headerValue="Id without space(15 char)"/>
<apex:column value=" {!a.Id}" headerValue="Id with space(18 char)"/>
<apex:column value="{!a.CreatedDate}" headerValue="Date defined in the Value attributes"/>
<apex:column headerValue="Date not declared in the Value Attribute" >{!a.CreatedDate}</apex:column>
</apex:pageblockTable>
</apex:pageblock>

Odpowiedzi:

1 dla odpowiedzi № 1

Gdy ciągniesz tylko kolumnę, bez żadnych spacji, Visualforce wyświetla to pole, używając interfejsu out-of-the box dla tego typu. Na Dokumenty API:

Pola ID w interfejsie użytkownika Salesforce zawierają 15-znakowe, bazowe 62, rozróżniane wielkości liter

Kiedy dodajesz ciąg do pola ID, jesteśkonwersja wartości identyfikatora na ciąg znaków. Ponieważ strona jest zainteresowana tylko wartością, taką jak zapytanie SOQL lub metoda łańcuchowa Apex, zwracana jest wartość "raw".

18-cyfrowa, bezpieczna wersja identyfikatora jest zwracana przez wszystkie wywołania interfejsu API