我们正在将WSO2 ESB与Salesforce集成在一起。我们需要将图像插入到Salesforce Object(Lead(中。图像下载到某个目录中。我想知道完成此任务的有效想法。我有一些想法,例如
- 将图像转换为 Base64 编码,然后将请求发送到 Salesforce APEX。
- 将图像作为 BLOB 插入数据库,然后从数据库中获取该 BLOB,存储到字节数组中,最后将其推送到 Salesforce 中。 但我不知道最好和有效的方法来做到这一点。如果你有一些想法/可能性,请分享给我。注意:对于编写与Salesforce相关的任务,请在此处提供单独的SF Team。我在这里需要的是完成此任务的方法/可能性。Java类也是可能的。 等待您的回复!!
您可以将其另存为内容版本,现在已弃用附件。
public with sharing class ContentVersionUtil {
public ContentVersionUtil() {
}
public static Id createDocument(Id parentId, String fileName, String data, Id contentDocumentId) {
ContentVersion versionData = new ContentVersion();
versionData.ContentLocation = 'S';
versionData.ContentDocumentId = contentDocumentId;
versionData.VersionData = Blob.valueOf(data);
versionData.Title = fileName;
versionData.PathOnClient = filename;
insert versionData;
ContentDocumentLink conDocLink = new ContentDocumentLink();
conDocLink.ContentDocumentId = [SELECT Id, ContentDocumentId FROM ContentVersion WHERE Id = :versionData.Id].ContentDocumentId;
conDocLink.LinkedEntityId = parentId;
conDocLink.ShareType = 'V';
insert conDocLink;
return conDocLink.Id;
}
public static Id createDocument(Id parentId, String fileName, String data) {
return createDocument(parentId, fileName, data, NULL);
}
public static Id createDocumentafterformat(Id parentId, String fileName, String data) {
return createDocument(parentId, fileName, data, NULL);
}
}
测试类:
@isTest
public with sharing class ContentVersionUtilTest {
@TestSetup
static void makeData(){
Account acc = new Account (Name = 'Test Account');
insert acc;
Contact cont = new Contact (LastName = 'Raj', AccountId = acc.Id);
insert cont;
}
@isTest
static void test_content_version_creation_0 () {
Contact eachContact = [SELECT Id from Contact LIMIT 1];
ContentVersionUtil util = new ContentVersionUtil ();
Id conDocLinkId = ContentVersionUtil.createDocument(eachContact.Id, 'testFile', 'csv', 'Some important Data');
System.assertEquals(eachContact.Id, [SELECT Id, LinkedEntityId from ContentDocumentLink WHERE Id =: conDocLinkId].LinkedEntityId);
}
}