“读取 OData”活动

此活动会将 OData URL 以及查询参数、有效内容和 HTTP 头视为输入,并创建提供所使用对象、主键详细信息以及有效内容(如存在)的详细信息的输出。此输出用作业务逻辑执行的一部分以及编排中的其他活动。

用于“读取 OData”活动的配置属性

表 1. 配置面板属性
字段名 描述
OData 版本 此活动使用的 OData 版本。在单个编排中,需要在所有活动上使用相同版本。当前唯一支持的版本为 4.0。
选择输入数据 选择有关如何向“读取 OData”活动提供业务数据结构的一个选项。将基于提供的此业务结构创建 OData API。
  • 现有 XML 模式:选择此选项以浏览编排中提供的现有模式。使用此选项只能选择一个对象,这意味着 OData API 仅支持一个顶级对象。如果 Cast Iron 编排需要公开 OData API,那么使用此选项。
  • 端点 URL (OData API):选择此选项以与外部 OData API 应用程序进行谈话。在此情况下,Cast Iron 充当客户机。需要提供外部应用程序的服务根 URL。直到 V7.5.1 不支持此选项,将在未来版本中添加此选项。
  • 新建 XML 模式以支持多个实体:选择此选项以支持 OData API 中的多个顶级对象。包含一个或多个全局元素的 XML 模式需要粘贴在提供的文本区域。 如果 Cast Iron 编排需要公开 OData API,那么使用此选项。例如,请参阅以下给定的样本 XML 模式。

给定包含帐户和产品对象的样本 XML 模式示例。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 xmlns:ras="http://www.sample.com/xmlns/prod/sample"
 targetNamespace="http://www.sample.com/xmlns/prod/sample">
 <element name="account" type="ras:AccountObject"/>
 <element name="product" type="ras:ProductObject"/>
 <complexType name="AccountObject">
  <sequence maxOccurs="1" minOccurs="1">                       
        <element maxOccurs="1" minOccurs="0" name="accountId" type="int"/>                       
        <element maxOccurs="1" minOccurs="0" name="accountName" type="string"/>                       
        <element maxOccurs="1" minOccurs="0" name="valid" type="boolean"/>           
  </sequence>
 </complexType>
 <complexType name="ProductObject"> 
  <sequence maxOccurs="1" minOccurs="1">
   <element maxOccurs="1" minOccurs="1" name="pid" type="int"/>
   <element maxOccurs="1" minOccurs="0" name="productName" type="string"/>                       
   <element maxOccurs="1" minOccurs="0" name="description" type="string"/>                       
   <element maxOccurs="1" minOccurs="0" name="stock" type="int"/>           
  </sequence> 
 </complexType>
</schema>
表 2. 映射输入属性
字段名 描述
serviceName 这是 OData ReST API 的名称并且将作为 URL 的一部分。此属性的值必须与 HTTP“接收请求”活动的“配置”面板中的“URL(主机名之后的路径)”属性的值相同。在点击具有此名称的 URL(例如:http://host/serviceName)时,将在响应中提供服务文档。
protocol OData ReST API 支持的协议。该值需要缺省为两个受支持的值(HTTP 或 HTTPS)之一。
host API 运行所在的主机。必须从 HTTP“接收请求”活动的输出映射此属性的值。
method 请求的 http 方法。必须从 HTTP“接收请求”活动的输出映射此属性的值。
uri HTTP 请求的 URL。必须从 HTTP“接收请求”活动的输出映射此属性的值。
Accept Accept 头值。此属性的值可设置为缺省值或者从 HTTP“接收请求”活动的输出进行映射。受支持的值为 application/json 和 application/xml。
Content-Type Content-Type 头值。此属性的值可设置为缺省值或者从 HTTP“接收请求”活动的输出进行映射。受支持的值为 application/json 和 application/xml。
PrimaryKeys 需在所选业务数据结构中标为主键的字段。该属性为字符串数组类型,可采用多个值来支持组合主键。

字段值语法如下。

语法:objectName:fieldName

例如:对于上述提供的模式,值可以是 account:accountId 或 product:pid

readODataInputPayload 需为 POST、PUT 和 PATCH HTTP 方法传递的 OData 请求有效内容。必须从 HTTP“接收请求”输出的主体属性映射此属性的值。
readODataHttpHeadersInput 可以从 HTTP“接收请求”活动的头输出映射此属性。

响应中的某些属性与输入中可用的属性相同。以下说明了其他映射输出属性:

表 3. 映射输出属性
字段名 描述
isMetadataDocumentRequest 当此属性为 True 时,它指示针对元数据文档进行请求调用 (/serviceName/$metadata),并在“metadataDocument”属性中提供响应元数据文档
metadataDocument 此属性包含进行 /serviceName/$metadata 调用时的元数据文档。
isServiceDocumentRequest 当此属性为 True 时,它指示针对服务文档进行请求调用 (/serviceName),并在“serviceDocument”属性中提供响应服务文档
serviceDocument 此属性包含进行 /serviceName 调用时的服务文档。
resourcePath 此属性包含调用的 URL 路径。
entities 此属性为字符串数组类型,包含 URL 中请求的实体集名称。例如,如果 serviceName 为 /test 并且选中的业务数据结构为 account(来自于以上模式),那么用于获取所有帐户详细信息的 URL 为 http://hostname/test/accounts。在此示例中,实体集名称为 accounts。
fieldName 如果在业务数据结构中提供字段名称请求,那么将在此属性中提供字段的名称。例如,如果请求的 URL 为 http://hostname/test/accounts(5)/accountName,那么 fieldName 的值将为 accountName。
additionalpath 如果请求 URL 中有诸如 $value 或 $count 等任何其他令牌,那么此属性中将存在该值。
primaryKeys

如果请求 URL 包含主键,那么此字段中存在该信息。

URL 示例:

http://hostname/test/accounts(5)

http://hostname/test/salesorder(orderid='so1',name='ask')

primaryKeys 结构将包含主键的字段名称、值和数据类型。

readODataHttpHeadersOutput 包含作为请求的一部分发送的头信息。
readODataQueryParametersOutput 包含由 OData 定义的标准查询参数及任何其他查询参数。
readODataOutputPayload 如果有效内容作为请求的一部分发送(针对 POST 和 PUT 操作),那么将解析此有效内容,并填充在响应业务数据结构中。