2016-08-22 1 views
0

Я получаю запрос JSON с 3 атрибутами, и один из атрибутов - это содержимое изображения, которое является base64 в строчном формате. После получения этого запроса я создаю приложение Salesforce, используя соединитель Salesforce.DataWeave Transform Преобразования сообщений 8192 байта при развертывании в Cloudhub

Теперь, когда я тестирую это через мою локальную Anypoint Studio, все в порядке, однако после развертывания в Cloudhub fileContent (содержимое изображения) усекается до 8192 байт и создает вложение как поврежденное.

я могу видеть, API принимает содержание, так как длина содержимого сообщения 38820 (как местная, так и Cloudhub), и это выглядит как сообщение заблудиться после трансформации сообщения, и код выглядит следующим образом:

 <processor-chain doc:name="Processor Chain"> 
      <dw:transform-message doc:name="Transform Message"> 
       <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
{ 
    accountId : payload.accountId, 
    name : 'MyProfilePicture', 
    ContentType: payload.contentType, 
    fileContent : payload.fileContent 
}]]></dw:set-payload> 
      </dw:transform-message> 

      <set-session-variable variableName="accountId" value="#[payload.accountId]" doc:name="Session Variable - accountId"/> 
      <set-session-variable variableName="contentType" value="#[payload.ContentType]" doc:name="Session Variable - contentType"/> 
      <logger message="payload.fileContent Before Conversion size #[payload.fileContent.length()], data:#[payload.fileContent] " level="INFO" doc:name="Logger"/> 
      <set-session-variable variableName="fileContent" value="#[(org.apache.commons.codec.binary.Base64.decodeBase64(payload.fileContent))]" mimeType="binary/octet-stream" doc:name="Session Variable - fileContent"/> 
      <dw:transform-message metadata:id="1676949a-75ba-4e51-82ac-b5788a8e87dc" doc:name="Transform Message"> 
       <dw:input-payload/> 
       <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
[{ 
    Name: 'MyProfilePicture', 
    ParentId: sessionVars.accountId, 
    ContentType: sessionVars.contentType, 
    Body: sessionVars.fileContent 
}]]]></dw:set-payload> 
      </dw:transform-message> 
      <logger message="Payload after Transform Message: #[payload]" level="INFO" doc:name="Logger"/> 
      <sfdc:create config-ref="Salesforce__Cfg" type="Attachment" doc:name="Salesforce"> 
       <sfdc:objects ref="#[payload]"/> 
      </sfdc:create> 
     </processor-chain> 

Может ли кто-нибудь помочь в этом? почему при развертывании в Cloudhub обрабатывается только 8192 байта?

Спасибо,

Томас

ответ

0

Это может быть исправлено путем перехода на устаревшей DataMapper для огромных base64 преобразований.

Смежные вопросы