Загрузить файл в Salesforce, используя соединитель
Я построил поток в mule, который создает случай в Salesforce, используя соединитель Salesforce. Теперь мне нужно загрузить файл в этом случае, используя тот же поток мула. Это может быть сделано программно с помощью следующего кода:
пытаться {
File f = new File("c:\java\test.docx");
InputStream is = new FileInputStream(f);
byte[] inbuff = new byte[(int)f.length()];
is.read(inbuff);
Attachment attach = new Attachment();
attach.setBody(inbuff);
attach.setName("test.docx");
attach.setIsPrivate(false);
// attach to an object in SFDC
attach.setParentId("a0f600000008Q4f");
SaveResult sr = binding.create(new com.sforce.soap.enterprise.sobject.SObject[] {attach})[0];
if (sr.isSuccess()) {
System.out.println("Successfully added attachment.");
} else {
System.out.println("Error adding attachment: " + sr.getErrors(0).getMessage());
}
} catch (FileNotFoundException fnf) {
System.out.println("File Not Found: " +fnf.getMessage());
} catch (IOException io) {
System.out.println("IO: " +io.getMessage());
}
Но для простоты, есть ли какой-нибудь мул-коннектор, который автоматически все это делает и прикрепляет файл к конкретному созданному делу.
1 ответ
Да, вы можете использовать Salesforce Cloud Connector для этого. Пример:
<file:file-to-byte-array-transformer />
<sfdc:create type="Attachment">
<sfdc:objects>
<sfdc:object>
<body>#[payload]</body>
<name>test.docx</name>
<parentid>#[message.inboundProperties['mysfdcparentid']]</parentid>
</sfdc:object>
</sfdc:objects>
</sfdc:create>
В этом примере я устанавливаю тип объекта "Вложение".
Элементом body является сам файл. Обратите внимание, что соединитель будет обрабатывать кодировку base64 для вас, вам просто нужно предоставить ему байтовый массив. Если вы используете File, вы можете использовать file:file-to-byte-array-transformer, например.
Парентид устанавливается с помощью MEL, чтобы получить значение из свойства сообщения. Поэтому, если у вас есть предыдущая операция SFDC, вы можете использовать MEL для извлечения значения предыдущего объекта.