我在 Oracle 集成云服务 (ICS) 版本 13 中开发了一个简单的流程。但是没有选项可以重命名或删除正在添加到流程中的任何组件。下面是屏幕截图
在上述流程中,尝试重命名“AccountCreateEvent”,但没有找到任何选项。
我在 Oracle 集成云服务 (ICS) 版本 13 中开发了一个简单的流程。但是没有选项可以重命名或删除正在添加到流程中的任何组件。下面是屏幕截图
在上述流程中,尝试重命名“AccountCreateEvent”,但没有找到任何选项。
如果您使用的是 Integration Cloud Service 或 Oracle Integration Cloud,则 Web 界面中没有可让您更改集成内适配器名称的功能。这些名称仅用于文档目的,不提供超出可读性和约定的任何功能价值。但是,如果您像我一样重视约定和可读性。
有一种方法可以通过导出或下载 OSB 工件来更改名称。我将概述如何手动执行此操作,然后简要说明如何以更合适的方式执行此操作(提供一些背景信息,说明 ICS 到底是什么)。此外,如果您没有收到 Stack Overflow 的任何回复,Oracle 有一个非常活跃的Customer Cloud Connect论坛,您也可以提交SR
您可以通过修改导出项目的下划线 XML 来手动更新名称。首先导出您的项目,如下所示
导出将下载带有iar
扩展名的文件。这是一个压缩文件,所以解压文件(或用 7z、winrar 等打开)。您应该看到以下目录结构
|-- icspackage
|-- appinstance
|-- project
|-- the_name_of_your_project
|-- PROJECT-INF
|-- layout.json
|-- project.xml
|-- resources
|-- ics_project_attributes.properties
我在这里只向您展示相关的目录树。显然有更多的节点,但它们并不相关。
打开您的 project.xml 文件。这是一个示例文件,其中包含一个 REST 应用程序适配器,没有 HTTP 响应正文、没有调用、没有操作,也没有转换。
<?xml version="1.0" encoding="UTF-8"?>
<ns1:icsproject xmlns="http://www.oracle.com/2014/03/ics/flow/definition" xmlns:ns1="http://www.oracle.com/2014/03/ics/project" xmlns:ns0="http://www.oracle.com/2014/03/ics/project/definition" name="project_1" version="7.3" modelType="freeform">
<ns0:projectCode>LEAD</ns0:projectCode>
<ns0:projectVersion>01.00.0000</ns0:projectVersion>
<ns0:projectName>Lead</ns0:projectName>
<ns0:percentComplete>0</ns0:percentComplete>
<ns0:projectHasErrors>true</ns0:projectHasErrors>
<ns0:projectHasWarnings>false</ns0:projectHasWarnings>
<ns1:icsflow name="flow_1">
<application name="application_8">
<role>source</role>
<adapter>
<type>app-adapter</type>
<code>IC</code>
<name>te</name>
<property name="hasAttachment" value="false"/>
</adapter>
<mep>push-sync</mep>
<outbound name="outbound_9">
<binding>rest</binding>
<operation>execute</operation>
<resourceGroup name="resourcegroup_10">
<resource name="resource_11" location="../resources/application_8/outbound_9/resourcegroup_10/te_REQUEST.jca" type="jca"/>
<resource name="resource_12" location="../resources/application_8/outbound_9/resourcegroup_10/te_REQUEST.wsdl" type="wsdl"/>
</resourceGroup>
<input name="input_14">
<role>response</role>
<messageContextRef refUri="messagecontext_13"/>
</input>
<input name="input_18">
<role>fault</role>
<subRole>APIInvocationError</subRole>
<messageContextRef refUri="messagecontext_17"/>
</input>
<output name="output_16">
<role>request</role>
<messageContextRef refUri="messagecontext_15"/>
</output>
</outbound>
</application>
<processor name="processor_1">
<type>messageTracker</type>
<role>messageTracker:global</role>
<trackingVariableGroup>
<trackingVariable>
<role>tracking_var_1</role>
<primary>true</primary>
<name>tracking_var_1</name>
<output name="output_3">
<messageContextRef refUri="messagecontext_2"/>
</output>
</trackingVariable>
<trackingVariable>
<role>tracking_var_2</role>
<primary>false</primary>
<name>tracking_var_2</name>
<output name="output_5">
<messageContextRef refUri="messagecontext_4"/>
</output>
</trackingVariable>
<trackingVariable>
<role>tracking_var_3</role>
<primary>false</primary>
<name>tracking_var_3</name>
<output name="output_7">
<messageContextRef refUri="messagecontext_6"/>
</output>
</trackingVariable>
</trackingVariableGroup>
</processor>
<processor name="processor_19">
<type>transformer</type>
<role>transformer:response-map</role>
<resourceGroup name="resourcegroup_22">
<resource name="resource_23" location="../resources/processor_19/resourcegroup_22/req_de8ec82b6bfb42da9111bce9ee4ba445.xsl" type="xslt"/>
</resourceGroup>
<input name="input_20">
<messageContextRef refUri="messagecontext_15"/>
</input>
<output name="output_21">
<messageContextRef refUri="messagecontext_13"/>
</output>
<property name="has-mappings" value="false"/>
</processor>
<messageContext name="messagecontext_2">
<rootElement elementName="string" namespace="http://www.w3.org/2001/XMLSchema"/>
</messageContext>
<messageContext name="messagecontext_4">
<rootElement elementName="string" namespace="http://www.w3.org/2001/XMLSchema"/>
</messageContext>
<messageContext name="messagecontext_6">
<rootElement elementName="string" namespace="http://www.w3.org/2001/XMLSchema"/>
</messageContext>
<messageContext name="messagecontext_13">
<resourceRef refUri="application_8/outbound_9/resourcegroup_10/resource_12"/>
<rootElement elementName="executeResponse" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST/types"/>
<wsdlMessage messageName="executeResponseMessage" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST" partName="parameters"/>
</messageContext>
<messageContext name="messagecontext_15">
<resourceRef refUri="application_8/outbound_9/resourcegroup_10/resource_12"/>
<rootElement elementName="execute" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST/types"/>
<wsdlMessage messageName="executeRequestMessage" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST" partName="parameters"/>
</messageContext>
<messageContext name="messagecontext_17">
<resourceRef refUri="application_8/outbound_9/resourcegroup_10/resource_12"/>
<rootElement elementName="APIInvocationError" namespace="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/te"/>
<wsdlMessage messageName="APIInvocationError" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST" partName="parameters"/>
<wsdlFault faultName="APIInvocationError" namespace="http://xmlns.oracle.com/cloud/adapter/REST/te_REQUEST"/>
</messageContext>
<commonNamespaceMaps/>
<orchestration>
<receive id="r0" refUri="application_8/outbound_9/output_16" trackingRefUri="processor_1"/>
<transformer id="m0" refUri="processor_19"/>
<reply id="y0" refUri="application_8/outbound_9/input_14"/>
</orchestration>
</ns1:icsflow>
</ns1:icsproject>
您的文件将具有类似的结构,但在价值方面看起来与我的完全不同。您需要做的就是找到<name>
嵌套在元素中的<adapter>
元素。对您而言,该值应为AccountCreateEvent。将该值更改为您希望的新名称。
重新打包您的iar
文件以包含新的project.xml文件。返回到您的 Integration Cloud 设计控制台并再次下载集成(作为备份),然后将其删除。现在导入更新集成。打开集成,您的应用适配器现在将显示更新后的名称。
Oracle 的集成云服务实际上只是Oracle 服务总线(简称OSB)的一种简化的、基于云的改编。OSB 是 Oracle SOA(构成完整面向服务平台的应用套件)的集成组件。ICS 在运行 OSB 的 Oracle Linux VM 上运行。您的集成实际上只是 OSB 组合,并且实际上在 OSB 上运行(完全安装在运行 ICS 的 VM 上)。如果您想要证明,请导航到https://your-instance-name:443/soa-infra,您将看到您的集成被列为 SOA 组合。
如果您是最新的,您的 ICS 下划线运行时是 SOA 12c(可能是 12.2.1)。如果您真的想熟悉 ICS 平台,我建议您下载Oracle SOA Suite for 12c(基于 JDeveloper 的 IDE,预装了所有 SOA 插件)。然后在 ICS 中查找和集成并下载工件(不是导出)。
安装 JDeveloper(需要几个小时)然后打开 JDeveloper 并使用 Service Bus 项目创建一个新的 Oracle Service Bus 应用程序
导入新的服务总线资源
选择 Resource/zip 然后找到您的 zip 工件。
您的项目现在看起来像这样
您现在已经将您的 ICS 集成变成了 SOA 组合!您可以在此处进行相同的编辑,但更重要的是,它可以让您检查下划线结构,了解它与 OSB/SOA 的匹配度等。ICS 是简单项目的绝佳工具,但如果您需要做更复杂的事情您绝对需要了解下划线的 SOA 运行时并利用它来扩展 ICS/OIC Web 界面上不存在的功能。
附带说明一下,这也可以通过 Process Cloud 来完成,方法是将应用程序导出为 anexp
并将其导入为 BPM 项目。