【问题标题】:Is there any ways to save image to Salesforce by using Salesforce APEX是否有任何方法可以使用 Salesforce APEX 将图像保存到 Salesforce
【发布时间】:2019-10-03 03:48:54
【问题描述】:

我们正在将 WSO2 ESB 与 Salesforce 集成。我们需要将图片插入 Salesforce 对象(Lead)。图像下载到某个目录中。我想知道完成这项任务的有效想法。我有一些想法,例如

  1. 将图像转换为 Base64 编码,然后向 Salesforce APEX 发送请求。
  2. 将图像作为 BLOB 插入数据库,然后从数据库中获取该 BLOB,存储到字节数组中,最后将其推送到 Salesforce。 但我不知道最好和最有效的方法来做到这一点。如果您有一些想法/可能性,请与我分享。 注意: 为编写 Salesforce 相关任务,这里有单独的 SF Team。我在这里需要的是完成这项任务的方法/可能性。 Java 类也可以。 等待您的回复!!!

【问题讨论】:

    标签: java image salesforce apex tobase64string


    【解决方案1】:

    您可以将其保存为内容版本,现在不推荐使用附件。

    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);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多