我通过webservices将在Base64中编码的文件附件发送到OSC,我需要在客户门户上显示。现在我无法在对象资源管理器中检索文件附件。我应该在哪里看?有什么建议吗?
这是我使用的xml片段(webservices请求正常工作):
<n0:RNObjects xsi:type="n1:GenericObject">
<!-- Value to check in OSC // concatenation of Source System ID and Ticket ID -->
<n2:LookupName>TEST2023</n2:LookupName>
<!-- Object reference in OSC // Statutory Control -->
<n1:ObjectType>
<n1:Namespace>testspace</n1:Namespace>
<n1:TypeName>typename</n1:TypeName>
</n1:ObjectType>
<!-- File Attachments -->
<n3:FileAttachments>
<n3:FileAttachmentList xsi:type="n3:FileAttachment" action="add">
<n3:ContentType>application/octet-stream</n3:ContentType>
<n3:Data>dGVzdA==</n3:Data>
<n3:FileName>test.csv</n3:FileName>
<n3:Name>Test File Attachments</n3:Name>
</n3:FileAttachmentList>
</n3:FileAttachments>
</n0:RNObjects>
答案 0 :(得分:1)
客户门户网站不会直接公开连接到自定义对象的文件附件。您需要创建一种机制来使用SOAP API提取与自定义对象关联的文件附件数据,然后通过客户门户提供它。
我可能建议使用ROQL查询与自定义对象关联的文件附件名称的窗口小部件。然后,您可以使用它来显示要下载的文件列表并生成链接。当用户单击该链接时,您将ajax调用回控制器,该控制器将文件从SOAP API(可能使用cURL)提取到CP脚本;您可以将文件保存在/ tmp中。然后,将文件的内容连同指示正确文件类型的标题一起返回到浏览器,以便浏览器可以相应地响应文件类型。
通过客户门户网站显示与事件相关的文件附件有更简单的机制。但是,您需要为自定义对象连接点。