检索导致错误的元数据连接器 - 无法解析未打包的流
Retrieve Metadata connector resulting in error - Unable to parse the unpackaged stream
根据评论here,我正在尝试使用 Mulesoft 中的检索元数据 连接器来实现对象的描述。
- 创建了 package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>CustomObject</name>
</types>
<version>54.0</version>
</Package>
- Documentation 建议为了使用
Unpackaged
字段,格式应为 Binary
。因此,我读取了 package.xml 文件,然后使用此 dwl 将其转换为二进制格式
%dw 2.0
output text/plain
import dw::Crypto
---
Crypto::hashWith(write(payload,"application/xml"),'MD5')
- 下面是我在连接器中配置的
检索元数据连接器配置
<salesforce:retrieve-metadata doc:name="Retrieve metadata" doc:id="d2aa6e13-3012-4e53-a448-3c00f5058f55" config-ref="Salesforce_Config" unpackaged="#[payload]" />
这导致下面的堆栈跟踪
********************************************************************************
Message : Unable to parse the unpackaged stream
Element : sf-testFlow/processors/2 @ sf-test:sf-test.xml:74 (Retrieve metadata)
Element DSL : <salesforce:retrieve-metadata doc:name="Retrieve metadata" doc:id="d2aa6e13-3012-4e53-a448-3c00f5058f55" config-ref="Salesforce_Config" unpackaged="#[payload]"></salesforce:retrieve-metadata>
Error type : MULE:UNKNOWN
FlowStack : at sf-testFlow(sf-testFlow/processors/2 @ sf-test:sf-test.xml:74 (Retrieve metadata))
--------------------------------------------------------------------------------
Root Exception stack trace:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
不确定连接器需要这种格式吗?或者这种做法是否错误?
您没有将 XML 转换为二进制文件,而是对其进行数字哈希处理,这使得无法恢复原始内容。基本上就是加密内容,丢掉密钥。
您是否尝试过 <salesforce:read-metadata>
操作?参考https://docs.mulesoft.com/salesforce-connector/10.11/salesforce-connector-reference#ReadMetadata
示例:
<salesforce:read-metadata type="CustomObject" config-ref="config">
<salesforce:full-names><![CDATA[#[["Lead"]]]]></salesforce:full-names>
</salesforce:read-metadata>
根据评论here,我正在尝试使用 Mulesoft 中的检索元数据 连接器来实现对象的描述。
- 创建了 package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>CustomObject</name>
</types>
<version>54.0</version>
</Package>
- Documentation 建议为了使用
Unpackaged
字段,格式应为Binary
。因此,我读取了 package.xml 文件,然后使用此 dwl 将其转换为二进制格式
%dw 2.0
output text/plain
import dw::Crypto
---
Crypto::hashWith(write(payload,"application/xml"),'MD5')
- 下面是我在连接器中配置的
检索元数据连接器配置
<salesforce:retrieve-metadata doc:name="Retrieve metadata" doc:id="d2aa6e13-3012-4e53-a448-3c00f5058f55" config-ref="Salesforce_Config" unpackaged="#[payload]" />
这导致下面的堆栈跟踪
********************************************************************************
Message : Unable to parse the unpackaged stream
Element : sf-testFlow/processors/2 @ sf-test:sf-test.xml:74 (Retrieve metadata)
Element DSL : <salesforce:retrieve-metadata doc:name="Retrieve metadata" doc:id="d2aa6e13-3012-4e53-a448-3c00f5058f55" config-ref="Salesforce_Config" unpackaged="#[payload]"></salesforce:retrieve-metadata>
Error type : MULE:UNKNOWN
FlowStack : at sf-testFlow(sf-testFlow/processors/2 @ sf-test:sf-test.xml:74 (Retrieve metadata))
--------------------------------------------------------------------------------
Root Exception stack trace:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
不确定连接器需要这种格式吗?或者这种做法是否错误?
您没有将 XML 转换为二进制文件,而是对其进行数字哈希处理,这使得无法恢复原始内容。基本上就是加密内容,丢掉密钥。
您是否尝试过 <salesforce:read-metadata>
操作?参考https://docs.mulesoft.com/salesforce-connector/10.11/salesforce-connector-reference#ReadMetadata
示例:
<salesforce:read-metadata type="CustomObject" config-ref="config">
<salesforce:full-names><![CDATA[#[["Lead"]]]]></salesforce:full-names>
</salesforce:read-metadata>