Сообщество Hi Stack Overflow!
Вопрос Noob, но у меня есть триггер Salesforce Chatter, который отправляет сообщение в виде чата каждый раз, когда происходит обновление поля, которое находится в моем поле, установленном на объекте моей учетной записи.Тем не менее, я хочу сослаться на имя учетной записи, URL-адрес и, если что-нибудь, возможность выделять жирным шрифтом / подчеркивать текст в теле сообщения болтовни.
Каков наилучший способ сделать это?Я действительно борюсь и очень нуждаюсь в помощи !!Спасибо !!
Мой код здесь:
trigger AccountChatter on Account (after update) {
List<Schema.FieldSetMember> lstTrackedFields = SObjectType.Account.FieldSets.AccountChatter.getFields();
if (lstTrackedFields.isEmpty()) return;
List<FeedItem> lstFieldChanges = new List<FeedItem>();
if(!trigger.isUpdate) return;
for (Account objNewAccount : trigger.new) {
String chatterPostBody = '';
final Account oldAccount = trigger.oldmap.get(objNewAccount.Id);
// Iterate over all fields in Fieldset
for (Schema.FieldSetMember objField : lstTrackedFields) {
String fieldName = objField.getFieldPath();
String fieldLabel = objField.getLabel();
if (objNewAccount.get(fieldName) == oldAccount.get(fieldName))
continue;
String oldValue = String.valueOf(oldAccount.get(fieldName));
String newValue = String.valueOf(objNewAccount.get(fieldName));
if (oldValue != null && oldValue.length()>255)
oldValue = oldValue.substring(0,255);
if (newValue != null && newValue.length()>255)
newValue = newValue.substring(0,255);
//chatter body post - this is where I want to add account name and url
chatterPostBody += UserInfo.getName()+' changed '+fieldLabel+' from '+oldValue +' to '+newValue+'\n'+'\n';
}
if(String.isNotEmpty(chatterPostBody)){
FeedItem post = new FeedItem();
post.ParentId = objNewAccount.Id; // RecordId
post.Body = chatterPostBody;
FeedItem groupPost = new FeedItem();
groupPost.ParentId = '0F94B0000008kd1SAA'; // GroupId
groupPost.Body = chatterPostBody;
lstFieldChanges.add(post);
lstFieldChanges.add(groupPost);
}
}
if (!lstFieldChanges.isEmpty()) insert lstFieldChanges;
}