Salesforce Asked on January 9, 2021
There seems to be some unusual stuff going on with SObjectType
for the enhanced note ContentNote
(ERD) object and the underling ContentDocument
(ERD) structure.
For example, both these return a single row (with the Id taken from an enhanced note I created);
select Id from ContentDocument where Id = '069R00000002J0m'
select Id from ContentNote where Id = '069R00000002J0m'
and these both return “069”:
System.debug(Schema.getGlobalDescribe().get('ContentDocument').getDescribe().getKeyPrefix());
System.debug(Schema.getGlobalDescribe().get('ContentNote').getDescribe().getKeyPrefix());
and this:
System.debug(((Id) '069R00000002J0m').getSObjectType());
outputs ContentDocument
.
This turns out to be quite awkward for a change to some existing code that I am making, in that AFAIK the only way to generically identify an enhanced note versus a File attachment is to check that the ContentDocument.FileType
has the value “SNOTE”. As far as triggers and SObjectType
based logic is concerned, ContentDocument
is the type.
Please share any insight you may have on what is going on here so that I make my code changes in the cleanest way.
ContentDocument contains more fields than ContentNote, ContentDocument will always have LatestPublishedVersionId (As it junction to contentVersion), probably you can use that to your advantage?
if(rec.get('LatestPublishedVersionId')==null){
//Its a Note
}else{
//Its content document.
}
Answered by Pranay Jaiswal on January 9, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP