Опубликован: 14.08.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Компания IBM
Лекция 9:

Реализация. Создание корпоративной сервисной шины

9.6.5 Создание потоков AssessorReport

На рис. 9.84 показаны потоки, которые должны быть созданы для взаимодействий, связанных с отчетами оценщиков (Assessor Report).

Потоки AssessorReport

увеличить изображение
Рис. 9.84. Потоки AssessorReport
Input6

Поток Input6 ( рис. 9.85) получает запрос на отчет об оценке от процесса ExternalClaimAssessor, передает управление в поток Flow6 для проверки и обработки и обрабатывает любые ошибки, возвращая SOAP-ошибку. Используется та же схема, что для потока Input3.

Поток Input6

Рис. 9.85. Поток Input6

Сконфигурируйте узел Http Input следующим образом:

  1. На закладке Basic (Общие) установите в поле URL Selector (Выбор URL) значение, предоставленное архитектором решения в файле AllocateAssessmentRequest(6). wsdl: http://SAH414A:9080/AllocateAssessmentRequest и значение тайм-аута 60 секунд.
  2. На закладке Default (По умолчанию) укажите свойства набора сообщений так, как показано на рис. 9.69.
  3. На закладке Validation (Проверка) укажите в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
Поток Flow6

Поток Flow6 ( рис. 9.86) проверяет запрос, полученный из потока Input6, перед отправкой оценщику запроса на отчет об оценке. В потоке Flow6 используется та же схема, что и в потоке Flow3.

Поток Flow6

Рис. 9.86. Поток Flow6
Поток Flow7

Поток Flow7 ( рис. 9.87) посылает запрос отчета об оценке конкретному оценщику. В таблице ACTIONASSESSOR для целей аудита хранится запись о запросах, в которую в потоке flow8 заносятся ответы. URL оценщика устанавливается в вычислительном узле set SOAP address. Код ESQL будет описываться ниже.

Поток Flow7

увеличить изображение
Рис. 9.87. Поток Flow7
  1. Создайте следующие узлы:
    • узел TryCatch для предотвращения возврата ошибок в предыдущий поток, в данном случае поток flow6, а также создайте связанный с ним поток ClientError для обработки ошибок;
    • узел Database Delete (Удаление из базы данных) для очистки устаревших записей в таблице ACTIONASSESSOR, указанных комбинацией ключей claimID/assessorID;
    • связующий узел (Mapping) с именем Map flow6 to flow7;
    • узел Database Insert (Вставка в базу данных) с именем Insert Audit trail into ACTIONASSESSOR;
    • вычислительный узел с именем set SOAP address;
    • узел HTTP Request с именем SOAP/Http Request;
    • трассировочный узел с именем Trace Reply 3058 для перехвата ответов.
  2. На этот раз узел Database Delete очищает предыдущий экземпляр претензии, по- сланной конкретному оценщику.

    Этот экземпляр узла Database Delete отличается от узла, описанного в разделе "Конфигурирование узла DataDelete с именем Delete claim status", тем, что существует два ключевых поля и их нужно объединить, чтобы выбрать правильный набор строк.

    Для этого нужно выполнить следующие действия:

    • Установите связь между сообщением ActionAssessor(6) и таблицей ACTIONASSESSOR, как показано на рис. 9.88.
      Связи для удаления претензии, направленной конкретному оценщику, в потоке Flow6

      увеличить изображение
      Рис. 9.88. Связи для удаления претензии, направленной конкретному оценщику, в потоке Flow6
    • Щелкните по полям ASSESSORID и CLAIMID в представлении Outline (Общий обзор), удерживая клавишу Shift, чтобы выбрать оба столбца, и нажмите правую кнопку мыши ( рис. 9.89).
      Выбор обоих полей для формирования связующего выражения

      Рис. 9.89. Выбор обоих полей для формирования связующего выражения
    • Выберите пункт меню Combine to same row (Объединить в одну строку) \to Remove selected mappings (Удалить выбранные связи) и изучите условие ( рис. 9.90). Нажмите OK.
      Изучение связующего выражения

      Рис. 9.90. Изучение связующего выражения
    • Вы можете просмотреть выражение для удаления данных, выделив объединенную связь или одно из ее полей и щелкнув правой кнопкой мыши, выбрать пункт Edit Mapping (Редактировать связь). Нажмите OK ( рис. 9.91).
      Редактирование выражения для удаления данных

      Рис. 9.91. Редактирование выражения для удаления данных
  3. Сгенерируйте ESQL-модуль по умолчанию для вычислительного узла Set SOAP address, назвав его Flow7_Set_SOAP_address.
  4. Сконфигурируйте свойства узла HttpRequest следующим образом:
    • закладка Basic (Общие):
      • укажите в поле Web service URL (URL Web-службы) значение http://SAH414A:7080/UNKNOWN, как это делалось для потока Flow4;
      • для тестирования укажите в поле Request Timeout (Таймаут запроса) значение 60 секунд;
      • выберите вариант Follow Http redirection (Выполнять HTTP-перенаправление) в поле Http Redirection Requests (Запросы перенаправления HTTP).
    • оставьте без изменения параметры на закладках Advanced (Дополнительно) и Error (Ошибка);
    • параметры на закладке Default (По умолчанию) установите так, как показано на рис. 9.69;
    • укажите на закладке Validation (Проверка) в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
  5. Связи, идущие от потока flow6 к потоку flow7, показаны на рис. 9.92.
    Связи от потока flow6 к потоку flow7

    увеличить изображение
    Рис. 9.92. Связи от потока flow6 к потоку flow7
  6. Вставка в базу данных показана на рис. 9.93.
    Вставка запроса отчета об оценке в таблицу ACTIONASSESSOR

    увеличить изображение
    Рис. 9.93. Вставка запроса отчета об оценке в таблицу ACTIONASSESSOR
    Важно! Не забудьте объединить все связи в одной строке, иначе каждая связь будет вводиться в таблицу как одна строка.

    Выделите все связи с помощью мыши, удерживая клавишу Shift, и выберите в меню правой кнопки мыши пункт Combine to same row (Объединить в одну строку) > Remove selected mappings (Удалить выбранные связи).

  7. Для тестирования запишите ответ в журнал событий, как в потоке Flow4.
Поток Flow7a

Данный поток сообщений ( рис. 9.94) получает сообщение Flow7a от оценщика, который был выбран для создания отчета об оценке, проверяет сообщение, отправляет подтверждение и вызывает поток Flow6a, чтобы вернуть данные о согласии или отказе оценщика в процесс ExternalClaimAssessors. Этот поток похож на поток Flow4a.

Поток Flow7a

Рис. 9.94. Поток Flow7a
  1. Создайте следующие узлы:
    • узел HttpInput для ожидания сообщения о готовности;
    • вычислительный узел Validate для проверки входного сообщения;
    • связующий узел Generate Reply для связывания ответа с сообщением-ответом.
  2. Перетащите потоки Reply, Fault и Flow6a в данный поток.
  3. Сконфигурируйте узел HttpInput:
    • На закладке Basic (Общие) проделайте следующее:
      • Значение для поля URL selector (Селектор URL) предоставляется архитектором решения. Установите http://SAH414A:7080/DeliverAssessmentRespons.
      • Для тестирования укажите в поле Maximum Client Wait time (Максимальное время ожидания клиента) значение 60 секунд.
    • На закладке Default (По умолчанию) укажите параметры набора сообщений так, как показано на рис. 9.69.
    • На закладке Validation (Проверка) укажите в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
  4. Переименуйте сгенерированный ESQL-модуль для вычислительного узла Validate в Flow7a_Validate.
  5. Сконфигурируйте связи для подтверждения так, как показано на рис. 9.95.
Связи для сообщения-подтверждения для потока Flow7a

увеличить изображение
Рис. 9.95. Связи для сообщения-подтверждения для потока Flow7a
Поток Flow6a

Поток Flow6a ( рис. 9.96) форматирует ответ с согласием оценщика для вывода потоком Output6a и сохраняет аудиторскую запись об ответе в таблице ACTIONASSESSORS.

Поток Flow6a

Рис. 9.96. Поток Flow6a
  1. Создайте в потоке Flow6a следующие узлы:
    • узел TryCatch и подпоток ClientError для изоляции возникающих здесь ошибок;
    • узел Database Update для хранения аудиторской записи;
    • связующий узел (Mapping), форматирующий сообщения для потока Output6a;
    • подпоток Output6a, возвращающий результаты в процесс ExternalClaimAssessor.
  2. Создайте связи для обновления данных в таблице ( рис. 9.97).
    • Выберите сообщение-источник и цель – таблицу базы данных ACTIONASSESSOR, как описывалось ранее. Не забудьте указать схему EMERGE базы данных. См. пример на рис. 9.80.
    • Свяжите два поля и задайте одностороннюю связь типа CURRENT_TIMESTAMP, как показано на рис. 9.97.
    • Объедините обновления в одну строку, используя щелчок мыши при нажатой клавише Shift, после чего выберите пункт меню Remove selected rows (Удалить выбранные строки). Будет выведена панель Combine Data Update Mappings (Комбинированные данные для связей обновления). Вам нужно вручную ввести условия обновления (конечно, это предложение SQL WHERE).
    Конфигурация обновления базы данных в потоке Flow6a

    увеличить изображение
    Рис. 9.97. Конфигурация обновления базы данных в потоке Flow6a
    Совет. Одним из способов создания этого предложения и его вставки является создание узла Data Delete и копирование условий удаления.
  3. Создайте связи для вызова потока Output6a, как показано на рис. 9.98.
    Связи для потока flow6a

    увеличить изображение
    Рис. 9.98. Связи для потока flow6a
Поток Output6a

Поток Output6a ( рис. 9.99) связывает систему proxyAssessorSystem с корпоративной сервисной шиной LGI при помощи протокола SOAP/http и передает список с данными о готовности оценщиков в процесс ExternalClaimAssessor.

Поток Output6a

Рис. 9.99. Поток Output6a
  1. Сконфигурируйте свойства узла HttpRequest следующим образом:
    • на закладке Basic (Общие) проделайте следующее:
      • укажите в поле Web service URL (URL Web-службы) значение ссылки на ReceiveAssessorAvailabilityList в процессе ExternalClaimAssessor – http://SAH414B:9082/AssessorAvailabilityList ;
      • для тестирования укажите в поле Request Timeout (Тайм-аут запроса) значение 60 секунд;
      • выберите вариант Follow Http redirection (Выполнять HTTP-перенаправление) в поле Http Redirection Requests (Запросы перенаправления HTTP);
    • параметры на закладках Advanced (Дополнительно) и Error (Ошибка) оставьте без изменения;
    • на закладке Default (По умолчанию) укажите свойства сообщения, как показано на рис. 9.69;
    • на закладке Validation (Проверка) укажите в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
  2. Для тестирования направляйте ответ в журнал событий, как в потоке Flow4.
Поток Output6aAck

Поток Output6aAck не нужен, поскольку мы используем SOAP/http и ответ возвращается в узел Http Request потока Output6a.

Поток Flow8

Поток Flow8 ( рис. 9.100) получает отчет от выбранного оценщика и направляет его в поток Flow9 ( рис. 9.102). Он напоминает поток Flow7a.

Поток Flow8

Рис. 9.100. Поток Flow8
  1. Создайте следующие узлы:
    • узел HttpInput для ожидания сообщения о готовности;
    • вычислительный узел Validate для проверки входного сообщения;
    • связующий узел Generate Reply для связывания ответа с сообщением-ответом.
  2. Перетащите потоки Reply, Fault и Flow9 в данный поток.
  3. Сконфигурируйте узел HttpInput:
    • На закладке Basic (Общие) проделайте следующее:
      • Значение для поля URL selector (Селектор URL) предоставляется архитектором решения. Установите http://SAH414A:7080/AssessorReport.
      • Для тестирования укажите в поле Maximum Client Wait time (Максимальное время ожидания клиента) значение 60 секунд.
    • На закладке Default (По умолчанию) укажите параметры набора сообщений так, как показано на рис. 9.69.
    • На закладке Validation (Проверка) укажите в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
  4. Сконфигурируйте связующий узел Generate Reply так, как показано на рис. 9.101.
    Конфигурирование связей для подтверждения в потоке Flow8

    увеличить изображение
    Рис. 9.101. Конфигурирование связей для подтверждения в потоке Flow8
Поток Flow9

Поток Flow9 ( рис. 9.102) готовит сообщение с отчетом оценщика к передаче на принимающую партнерскую ссылку в процесс ExternalClaimAssessor. Он передает сообщение в поток Output9 для помещения на сервисную шину LGI после обновления своего аудиторского журнала.

Поток Flow9

Рис. 9.102. Поток Flow9
  1. Создайте в потоке следующие узлы:
    • узел TryCatch и подпоток ClientError для изоляции возникающих здесь ошибок;
    • узел Database Update с именем Update ActionAssessor table для хранения аудиторской записи;
    • связующий узел (Mapping), форматирующий сообщения для потока Output9;
    • подпоток Output9, возвращающий результаты в процесс ExternalClaimAssessor.
  2. Создайте связи для обновления данных в таблице, как показано на рис. 9.103, используя процедуру, аналогичную описанной для потока Flow6a.
    Выражение обновления базы данных для потока Flow9

    Рис. 9.103. Выражение обновления базы данных для потока Flow9
  3. Создайте связи с сообщением, показанные на рис. 9.104.
    Связи с сообщением для потока Flow9

    увеличить изображение
    Рис. 9.104. Связи с сообщением для потока Flow9
Поток Output9

Поток Output9 ( рис. 9.105) связывает систему proxyAssessorSystem с корпоративной сервисной шиной LGI при помощи протокола SOAP/http и передает отчет оценщика в процесс ExternalClaimAssessor.

Поток Output9

Рис. 9.105. Поток Output9
  1. Сконфигурируйте свойства узла HttpRequest следующим образом:
    • на закладке Basic (Общие) проделайте следующее:
      • укажите в поле Web service URL (URL Web-службы) значение ссылки на ReceiveAssessorAvailabilityList в процессе ExternalClaimAssessor – http://SAH414B:9082/assessorReport ;
      • для тестирования укажите в поле Request Timeout (Тайм-аут запроса) значение 60 секунд;
      • выберите вариант Follow Http redirection (Выполнять HTTP-перенаправление) в поле Http Redirection Requests (Запросы перенаправления HTTP);
    • параметры на закладках Advanced (Дополнительно) и Error (Ошибка) оставьте без изменения;
    • на закладке Default (По умолчанию) укажите свойства сообщения, как показано на рис. 9.69;
    • на закладке Validation (Проверка) укажите в поле Validate (Проверять) значение Content and Value (Содержимое и значение).
  2. Для тестирования направляйте ответ в журнал событий, как в потоке Flow4.
Поток Output9aAck

Поток Output9aAck не нужен, поскольку мы используем SOAP/http и ответ возвращается в узел Http Request потока Output9.

Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже?

Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Игорь Васильев
Игорь Васильев
Россия, СПб
Андрей Рязанов
Андрей Рязанов
Россия, Москва, Московский Энергетический Институт (Технический Университет), 2004