Я разработал простой поток в Oracle Integration Cloud Service (ICS) версии 13. Но нет возможности переименовать или удалить какие-либо компоненты, добавляемые в поток. Ниже приведен снимок экрана.
В приведенном выше потоке пытались переименовать AccountCreateEvent, но не нашли для этого никакой возможности.
Если вы используете Integration Cloud Service или Oracle Integration Cloud, в веб-интерфейсе нет функций, позволяющих изменить имя адаптера внутри интеграции. Эти имена предназначены только для целей документации и не представляют никакой функциональной ценности, кроме удобочитаемости и условностей. Однако, если вы похожи на меня, вы цените условность и удобочитаемость.
Есть способ изменить имя, экспортировав или загрузив артефакт OSB. Я опишу, как это сделать вручную, а затем дам краткое описание того, как это сделать более подходящим способом (с некоторой справочной информацией о том, что на самом деле находится под крышкой ICS). Кроме того, если вы не получаете ответов от Stack Overflow, у Oracle есть очень активный форум Клиент 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
I am only showing you the pertinent directory tree here. There is obviously more nodes but they are not pertinent.
Откройте ваш файл 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 Integration Cloud на самом деле представляет собой упрощенную облачную адаптацию Сервисная шина Oracle (сокращенно OSB). OSB - это интеграционный компонент Oracle SOA (набор приложений, составляющих платформу, ориентированную на полный спектр услуг). ICS работает на виртуальной машине Oracle Linux, на которой работает OSB. Ваши интеграции на самом деле представляют собой просто композиты OSB и фактически работают на OSB (которая полностью установлена на виртуальной машине, на которой работает ICS). Если вам нужны доказательства, перейдите к https: // ваше-имя-экземпляра: 443 / soa-infra, и вы увидите, что ваша интеграция указана как составная SOA.
Если вы обновлены, ваша среда выполнения подчеркивания ICS - SOA 12c (вероятно, 12.2.1). Если вы действительно хотите познакомиться с платформой ICS, я предлагаю вам загрузить Oracle SOA Suite для 12c (IDE на основе JDeveloper со всеми предустановленными надстройками SOA). Затем внутри ICS найти и интегрировать и Скачать Артефакты (не экспортировать).
Установите JDeveloper (это займет несколько часов), затем откройте JDeveloper и создайте новый Приложение Oracle Service Bus с проектом служебной шины
Импорт нового ресурса служебной шины
Выберите Resource / zip, затем найдите свой zip-архив.
Ваш проект теперь будет выглядеть так
Теперь вы превратили интеграцию ICS в состав SOA! Здесь вы можете внести те же изменения, но, что более важно, это позволит вам проверить структуру подчеркивания, увидеть, как она сочетается с OSB / SOA и т. д. ICS - отличный инструмент для простых проектов, но если вам нужно делать более сложные вещи вам абсолютно необходимо понимать подчеркнутую среду выполнения SOA и использовать ее преимущества для расширения функциональности, отсутствующей в веб-интерфейсе ICS / OIC.
В качестве примечания: это также можно сделать с помощью Process Cloud, экспортировав приложение как exp
и импортировав его как проект BPM.