Как переименовать любой компонент в потоке, разработанном с помощью Oracle Integration Cloud Service (ICS)?

Я разработал простой поток в Oracle Integration Cloud Service (ICS) версии 13. Но нет возможности переименовать или удалить какие-либо компоненты, добавляемые в поток. Ниже приведен снимок экрана.

Как переименовать любой компонент в потоке, разработанном с помощью Oracle Integration Cloud Service (ICS)?

В приведенном выше потоке пытались переименовать AccountCreateEvent, но не нашли для этого никакой возможности.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 053
1

Ответы 1

Краткий ответ

Если вы используете Integration Cloud Service или Oracle Integration Cloud, в веб-интерфейсе нет функций, позволяющих изменить имя адаптера внутри интеграции. Эти имена предназначены только для целей документации и не представляют никакой функциональной ценности, кроме удобочитаемости и условностей. Однако, если вы похожи на меня, вы цените условность и удобочитаемость.

Более длинный ответ

Есть способ изменить имя, экспортировав или загрузив артефакт OSB. Я опишу, как это сделать вручную, а затем дам краткое описание того, как это сделать более подходящим способом (с некоторой справочной информацией о том, что на самом деле находится под крышкой ICS). Кроме того, если вы не получаете ответов от Stack Overflow, у Oracle есть очень активный форум Клиент Cloud Connect, и вы также можете разместить SR

1. Вручную

Вы можете вручную обновить имя, изменив подчеркнутый XML-файл экспортного проекта. Сначала экспортируйте свой проект, как показано ниже export image

При экспорте будет загружен файл с расширением 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 и снова загрузите интеграцию (в качестве резервной копии), а затем удалите ее. Теперь импортируйте интеграцию обновления. Откройте интеграцию, и ваш адаптер приложения теперь будет отображать обновленное имя.

2. JDeveloper и OSB

Облачный сервис 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 с проектом служебной шины

OSB

Импорт нового ресурса служебной шины

OSB Resource

Выберите Resource / zip, затем найдите свой zip-архив.

artifact

Ваш проект теперь будет выглядеть так

SOA project

Теперь вы превратили интеграцию ICS в состав SOA! Здесь вы можете внести те же изменения, но, что более важно, это позволит вам проверить структуру подчеркивания, увидеть, как она сочетается с OSB / SOA и т. д. ICS - отличный инструмент для простых проектов, но если вам нужно делать более сложные вещи вам абсолютно необходимо понимать подчеркнутую среду выполнения SOA и использовать ее преимущества для расширения функциональности, отсутствующей в веб-интерфейсе ICS / OIC.

В качестве примечания: это также можно сделать с помощью Process Cloud, экспортировав приложение как exp и импортировав его как проект BPM.

Другие вопросы по теме