Przykład połączenie z bazą danych

Podobne dokumenty
Bloki anonimowe w PL/SQL

Ćwiczenia 2 IBM DB2 Data Studio

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Tworzenie raportów XML Publisher przy użyciu Data Templates

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

PL/SQL. Zaawansowane tematy PL/SQL

15. Funkcje i procedury składowane PL/SQL

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Oracle PL/SQL. Paweł Rajba.

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

SYSTEM INFORMATYCZNY KS-SEW

Laboratorium - Poznawanie FTP

Unreal Engine 4 - Samsung Gear VR

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Instrukcja postępowania w procesie aktualizacji systemu UPLOOK / STATLOOK z wersji 3.0 do wersji 3.2

Składowane procedury i funkcje

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Palety by CTI. Instrukcja

enova Instalacja wersji demo

11. Rozwiązywanie problemów

Opisane poniżej czynności może wykonać administrator komputera lub administrator serwera SQL (tj. użytkownik sa).

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

7 Business Ship Control dla Wf-Mag Prestiż i Prestiż Plus

Zaawansowane aplikacje internetowe laboratorium

Dodawanie operacji dodatkowych w WAPRO Mag.

Język PL/SQL Procedury i funkcje składowane

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Pakiety podprogramów Dynamiczny SQL

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Podstawy technologii WWW

Diagnoza Szkolna Pearsona. Instrukcja obsługi

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Problemy techniczne SQL Server

Migracja z programu Symfonia Kadry i Płace wer 3.x do Kadr i Płac Forte

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Mini Produkcja by CTI. Instrukcja

S P I S T R E Ś C I. Instrukcja obsługi

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Wdrożenie modułu płatności eservice. dla systemu Magento

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

1. Instalacja certyfkatu OSX 10.9

Oracle PL/SQL. Paweł Rajba.

BACKUP BAZ DANYCH FIREBIRD

PL/SQL. Zaawansowane tematy PL/SQL

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Podgląd z rejestratorów IPOX na komputerze z systemem WINDOWS za pomocą programu NVMS-2.0 LITE

SERWER AKTUALIZACJI UpServ

Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny "doręczyciel"

Finanse VULCAN. Jednostki dodaje i konfiguruje administrator główny platformy (w aplikacji Zarządzanie platformą).

Baza danych sql. 1. Wprowadzenie

emszmal 3: Automatyczne księgowanie przelewów w programie EasyUploader (plugin dostępny w wersji ecommerce)

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-520L

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

HermesEX. Dokumentacja serwisowa v

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Spring Web MVC, Spring DI

Aplikacje internetowe - laboratorium

epuap Archiwizacja w Osobistym Składzie Dokumentów

Aktualizacja modemu LTE Speed 1000

Udostępnianie drukarek za pomocą systemu Windows (serwer wydruku).

Program dla praktyki lekarskiej

Instrukcja użytkownika. Aplikacja Smart Paczka DPD

Laboratorium 3. Odkrywanie reguł asocjacyjnych.

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Baza danych do przechowywania użytkowników

PRZYJMOWANIE/WYDAWANIE KOLEKTORAMI BY CTI

emszmal 3: Eksport do WAPRO WF-FaKir dla Windows (plugin dostępny w wersji ecommerce)

Konfiguracja zapory Firewall w systemie Debian.

Instalacja i konfiguracja SAS PC Files Server

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

INSTRUKCJA REJESTRACJA DO CBKD

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Uruchamianie bazy PostgreSQL

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

System Obsługi Zleceń

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

AZACO Eksporter. Instrukcja konfiguracji oraz automatycznego eksportu danych. Przygotowanie środowiska...2. Konfiguracja zadań eksportu danych...

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

LeftHand Sp. z o. o.

Procedury i funkcje składowane

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Laboratorium - Konfiguracja karty sieciowej do używania protokołu DHCP w systemie Windows XP

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

Zarządzanie Infrastrukturą IT

Jak posługiwać się edytorem treści

SERWER AKTUALIZACJI UpServ

Transkrypt:

Instalacja BPEL... 1 Przykład połączenie z bazą danych... 2 Development... 2 Utwórz Aplikację i projekt o typie SOA... 2 Utwórz adapter do bazy danych... 4 Utwórz proces BPEL... 7 Połącz BPEL z adapterem bazy danych... 9 Deployment... 14 Testy... 16 Diagnostyka... 17 Konfiguracja połączenia z bazą danych na serwerze... 19 Konfiguracja połączenia z bazą danych na serwerze - Advanced queuing... 22 Konfiguracja połączenia z bazą danych na serwerze - MQ Series... 23 Restart serwera SOA... 24 Interfejsy do EBS... 25 Instalacja BPEL W BPEL programuje się np. w JDeveloper, z zainstalowanym składnikiem jak poniżej. BPEL nie generuje plików *.java, deplyment polega na przesłaniu plików projektu (XML) w odpowiednim standardzie.

Przykład połączenie z bazą danych Scenariusz: w bazie danych mamy procedurę, która dostaje na wejściu ID ( number ) i zwraca XMLa w formacie CLOB. Webservice ma pozwalać na podanie ID i zwracać XML. function CWF_XML_ALG ( p_id varchar2, p_range varchar2) return clob CREATE OR REPLACE function CWF_XML_ALG ( p_id varchar2, p_range varchar2) return clob is v_xml clob; procedure text(p_clob in out nocopy clob, p_text varchar2 ) is v_text varchar2(32000);begin v_text:=p_text chr(10);dbms_lob.writeappend(p_clob,length(v_text),v_text);end; procedure tag_text ( p_clob in out nocopy clob, p_tagname varchar2, p_text varchar2, p_tab int default 0)is v_text varchar2 (32000);begin v_text := lpad(chr(9),p_tab, chr (9)) '<' p_tagname '>' replace(replace(replace(replace(replace(p_text,'&','&'),'<','<'),'>','>'),'"','"'),'''','&apos;') '</' p_tagname '>' chr(10);dbms_lob.writeapp end(p_clob,length(v_text),v_text);end; begin dbms_lob.createtemporary(v_xml, TRUE, DBMS_LOB.session); Cwf_Dossier_Gen.split(p_range); text(v_xml, '<?xml version="1.0" encoding="utf-8"?>'); text(v_xml, '<CWF_V_ALG_KREDYT xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://www.dossier.decisionmodule.dnbnord.org">'); for c0 in (select /*+ FIRST_ROWS */ ID,ELEMENT_ID,CDATA_ID,DATA_BROK,DECISION_ID,HIP_KAUC,HIP_ZWYK,KOSZTY_KLIENTA,KWOTA_EGZEKUCJI,KWOTA_KREDYTU,KWOTA_PRZYZNANA,LACZN_KWOTA_KOSZT_OPLAT,MARZA_NEGOCJOWANA,MARZA_PROMOCYJNA,MARZA _STANDARD,METODA_SPLATY_VCODE,METODA_SPLATY,METODA_SPLATY_CODE,OKRES_KARENCJI,OKRES_KREDYTOWANIA,OKRES_SPLATY_RZECZYWISTY,OPROCENTOWANIE,PODWYZSZENIE_PRZED_KW,POWIEKSZONA_RATA_PLN,POZOSTAL E_KOSZTY,PROWIZJA,RATA_POWIEKSZONA,RATA_RZECZYWISTA,RATA_SPREAD,ROZNICA_RATY,RRSO,SPOS_PLATN_SKLAD_DOCHODY_VCODE,SPOS_PLATN_SKLAD_DOCHODY,SPOS_PLATN_SKLAD_DOCHODY_CODE,SPOS_PLATN_SKLAD_ZYC IE_VCODE,SPOS_PLATN_SKLAD_ZYCIE,SPOS_PLATN_SKLAD_ZYCIE_CODE,WALUTA from CWF_V_ALG_KREDYT where '100' not in(select ID from CWF_D_DOSSIER_RANGE) and ID = p_id ) loop text(v_xml, '<CWF_V_ALG_KREDYT_ROW kod="100">'); tag_text(v_xml, 'ID', replace(rtrim(rtrim(to_char(c0.id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'ELEMENT_ID', replace(rtrim(rtrim(to_char(c0.element_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'CDATA_ID', replace(rtrim(rtrim(to_char(c0.cdata_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'DATA_BROK', TO_CHAR(c0.DATA_BROK, 'RRRR-MM-DD HH24:MI:SS')); tag_text(v_xml, 'DECISION_ID', replace(rtrim(rtrim(to_char(c0.decision_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'HIP_KAUC', replace(rtrim(rtrim(to_char(c0.hip_kauc, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'HIP_ZWYK', replace(rtrim(rtrim(to_char(c0.hip_zwyk, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KOSZTY_KLIENTA', replace(rtrim(rtrim(to_char(c0.koszty_klienta, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KWOTA_EGZEKUCJI', replace(rtrim(rtrim(to_char(c0.kwota_egzekucji, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KWOTA_KREDYTU', replace(rtrim(rtrim(to_char(c0.kwota_kredytu, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KWOTA_PRZYZNANA', replace(rtrim(rtrim(to_char(c0.kwota_przyznana, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'LACZN_KWOTA_KOSZT_OPLAT', replace(rtrim(rtrim(to_char(c0.laczn_kwota_koszt_oplat, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'MARZA_NEGOCJOWANA', replace(rtrim(rtrim(to_char(c0.marza_negocjowana, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'MARZA_PROMOCYJNA', replace(rtrim(rtrim(to_char(c0.marza_promocyjna, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'MARZA_STANDARD', replace(rtrim(rtrim(to_char(c0.marza_standard, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'METODA_SPLATY_VCODE', c0.metoda_splaty_vcode); tag_text(v_xml, 'METODA_SPLATY', c0.metoda_splaty); tag_text(v_xml, 'METODA_SPLATY_CODE', c0.metoda_splaty_code); tag_text(v_xml, 'OKRES_KARENCJI', replace(rtrim(rtrim(to_char(c0.okres_karencji, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'OKRES_KREDYTOWANIA', replace(rtrim(rtrim(to_char(c0.okres_kredytowania, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'OKRES_SPLATY_RZECZYWISTY', replace(rtrim(rtrim(to_char(c0.okres_splaty_rzeczywisty, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'OPROCENTOWANIE', replace(rtrim(rtrim(to_char(c0.oprocentowanie, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'PODWYZSZENIE_PRZED_KW', replace(rtrim(rtrim(to_char(c0.podwyzszenie_przed_kw, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'POWIEKSZONA_RATA_PLN', replace(rtrim(rtrim(to_char(c0.powiekszona_rata_pln, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'POZOSTALE_KOSZTY', replace(rtrim(rtrim(to_char(c0.pozostale_koszty, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'PROWIZJA', replace(rtrim(rtrim(to_char(c0.prowizja, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_POWIEKSZONA', replace(rtrim(rtrim(to_char(c0.rata_powiekszona, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_RZECZYWISTA', replace(rtrim(rtrim(to_char(c0.rata_rzeczywista, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_SPREAD', replace(rtrim(rtrim(to_char(c0.rata_spread, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'ROZNICA_RATY', replace(rtrim(rtrim(to_char(c0.roznica_raty, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RRSO', replace(rtrim(rtrim(to_char(c0.rrso, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'SPOS_PLATN_SKLAD_DOCHODY_VCODE', c0.spos_platn_sklad_dochody_vcode); tag_text(v_xml, 'SPOS_PLATN_SKLAD_DOCHODY', c0.spos_platn_sklad_dochody); tag_text(v_xml, 'SPOS_PLATN_SKLAD_DOCHODY_CODE', c0.spos_platn_sklad_dochody_code); tag_text(v_xml, 'SPOS_PLATN_SKLAD_ZYCIE_VCODE', c0.spos_platn_sklad_zycie_vcode); tag_text(v_xml, 'SPOS_PLATN_SKLAD_ZYCIE', c0.spos_platn_sklad_zycie); tag_text(v_xml, 'SPOS_PLATN_SKLAD_ZYCIE_CODE', c0.spos_platn_sklad_zycie_code); tag_text(v_xml, 'WALUTA', c0.waluta); text(v_xml, '<CWF_V_ALG_RATY kod="101">'); for c1 in (select /*+ FIRST_ROWS */ ID,APPLICATION_ID,CONTRACT_ID,KAPITAL_NIEWYMAGALNY_PLN,KAPITAL_NIEWYMAGALNY_WAL,KAPITAL_PO_SPLACIE_RATY_PLN,KAPITAL_PO_SPLACIE_RATY_WAL,NUMER_RATY,RATA_KAPITALOWA_PLN,RATA_KAPITALOWA_WAL,R ATA_ODSETKOWA_PLN,RATA_ODSETKOWA_WAL,RATA_PLN from CWF_V_ALG_RATY where '101' not in(select ID from CWF_D_DOSSIER_RANGE) and c0.id = APPLICATION_ID ) loop text(v_xml, '<CWF_V_ALG_RATY_ROW kod="101">'); tag_text(v_xml, 'ID', replace(rtrim(rtrim(to_char(c1.id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'APPLICATION_ID', replace(rtrim(rtrim(to_char(c1.application_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'CONTRACT_ID', replace(rtrim(rtrim(to_char(c1.contract_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KAPITAL_NIEWYMAGALNY_PLN', c1.kapital_niewymagalny_pln); tag_text(v_xml, 'KAPITAL_NIEWYMAGALNY_WAL', replace(rtrim(rtrim(to_char(c1.kapital_niewymagalny_wal, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'KAPITAL_PO_SPLACIE_RATY_PLN', c1.kapital_po_splacie_raty_pln); tag_text(v_xml, 'KAPITAL_PO_SPLACIE_RATY_WAL', replace(rtrim(rtrim(to_char(c1.kapital_po_splacie_raty_wal, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'NUMER_RATY', replace(rtrim(rtrim(to_char(c1.numer_raty, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_KAPITALOWA_PLN', replace(rtrim(rtrim(to_char(c1.rata_kapitalowa_pln, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_KAPITALOWA_WAL', replace(rtrim(rtrim(to_char(c1.rata_kapitalowa_wal, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_ODSETKOWA_PLN', replace(rtrim(rtrim(to_char(c1.rata_odsetkowa_pln, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_ODSETKOWA_WAL', replace(rtrim(rtrim(to_char(c1.rata_odsetkowa_wal, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'RATA_PLN', replace(rtrim(rtrim(to_char(c1.rata_pln, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); text(v_xml, '</CWF_V_ALG_RATY_ROW>'); end loop; text(v_xml, '</CWF_V_ALG_RATY>'); text(v_xml, '<CWF_V_ALG_UBEZPIECZENIA kod="102">'); for c1 in (select /*+ FIRST_ROWS */ ID,APPLICATION_ID,DATA_BROK,ELEMENT_ID,WARTOSC,TYP_UBEZP_VCODE,TYP_UBEZP,TYP_UBEZP_CODE from CWF_V_ALG_UBEZPIECZENIA where '102' not in(select ID from CWF_D_DOSSIER_RANGE) and c0.id = APPLICATION_ID ) loop text(v_xml, '<CWF_V_ALG_UBEZPIECZENIA_ROW kod="102">'); tag_text(v_xml, 'ID', replace(rtrim(rtrim(to_char(c1.id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'APPLICATION_ID', replace(rtrim(rtrim(to_char(c1.application_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'DATA_BROK', TO_CHAR(c1.DATA_BROK, 'RRRR-MM-DD HH24:MI:SS')); tag_text(v_xml, 'ELEMENT_ID', replace(rtrim(rtrim(to_char(c1.element_id, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'WARTOSC', replace(rtrim(rtrim(to_char(c1.wartosc, 'FM999999999999999999990D9999999999999999999' ), ','), '.'),',','.')); tag_text(v_xml, 'TYP_UBEZP_VCODE', c1.typ_ubezp_vcode); tag_text(v_xml, 'TYP_UBEZP', c1.typ_ubezp); tag_text(v_xml, 'TYP_UBEZP_CODE', c1.typ_ubezp_code); text(v_xml, '</CWF_V_ALG_UBEZPIECZENIA_ROW>'); end loop; text(v_xml, '</CWF_V_ALG_UBEZPIECZENIA>'); text(v_xml, '</CWF_V_ALG_KREDYT_ROW>'); end loop; text(v_xml, '</CWF_V_ALG_KREDYT>'); return v_xml; end; / Development Utwórz Aplikację i projekt o typie SOA

Wewnątrz aplikacji utwórz projekt o typie SOA projekt

Utwórz adapter do bazy danych

Podaj połączenie do bazy danych. Podczas testowania lokalnego istotne jest to co jest wpisane w polu connection. Po zdeployowaniu na serwer istotne jest to co się wpisze w pole JNDI Name. Zajrzyj do sekcji Konfiguracja połączenia z bazą danych na serwerze, żeby się dowiedzieć skąd pobrać JNDI Name.

Na tym ekranie zostawiamy wartości domyślne

W efekcie mamy gotowy adapter Utwórz proces BPEL Nasz BPEL ma zwracać XMLa, dlatego trzeba mu powiedzieć, jak ma ten XML wyglądać. Definicję zwracanego pliku XSD możemy utworzyć dowolnie ( w naszym przypadku została ona wygenerowana przez system dossier ) i umieszczamy ją w projekcie, np. przez skopiowanie pliku do projektu:

Po skopiowaniu i odświeżeniu plik pokazuje się tutaj. Zaraz go użyjemy definiując output dla BPEL.

Pamiętaj, żeby wybrać proces synchroniczny, nie jest potem łatwo zmienić proces asynchroniczny na synchroniczny, bo np. proces synchroniczny ma klocek proces synchroniczny callback. a Połącz BPEL z adapterem bazy danych

Po kliknięciu w zaznaczone elementy możesz sprawdzić jakie są parametry wejściowe i wyjściowe: Zbuduj wnętrze procesu BPEL. Z reguły do szkieletu trzeba dodać elementy: - assign: które przepisują zmienne wejściowe procesu do zmiennych wejściowych wywołania - invoke: wywołanie procedury PLSQL - assign: które przepisują zmienne wyjściowe procesu do zmiennych wyjściowych wywołania

Dodajemy klocki assign, invoke, assign Konfigurujemy invoke łączymy z MY_PROC i dodajemy zmienne wejściowe i wyjściowe

input i output musi być podany. Najprościej- kliknij w plusa i naciśnij OK., wówczas zmienna utworzy się automatycznie. Dopiero teraz konfigurujemy assign1 ( wcześniej nie mielibyśmy dostępnych w drzewku zmienny wejściowych i wyjściowych procedury PL/SQL ):

Łączymy zmienną procedury ze zmienną wej. procedury PL/SQL klikając w drzewko: Konfigurujemy assign2: Musimy skonwertować CLOB ( to zwraca PL/SQL ) na XML, do tego używamy funkcji ParseXML. Nie piszemy expression ręcznie, lecz klikamy myszą!

To wszystko. Jeżeli nie zniknęły wykrzykniki z ekranu, to naciśnij przycisk validate. Deployment

Możemy zdeplyować projekt na serwer zdalny lub serwer zintegrowany z jdeveloper.

Testy http://10.200.205.45:7011/em

Przeglądanie wyników Diagnostyka Można przeglądać graficznie proces bpel i wyniki wszystkich kroków procesu

Konfiguracja połączenia z bazą danych na serwerze http://10.200.205.45:7011/console/login/loginform.jsp

, gdzie cwdata to

Konfiguracja połączenia z bazą danych na serwerze - Advanced queuing (do tego źródła odwołuje się plik w BPEL, odwołanie jest w pliku XML) http://10.200.205.45:7011/console/console.portal?_nfpb=true&_pagelabel=appdeployments ControlPage

Konfiguracja połączenia z bazą danych na serwerze - MQ Series Analogicznie, deployment

Restart serwera SOA Stop: Metoda 1 Metoda 2 Czasami restart trzeba zrobić z poziomu skryptu, bo konsola nie działa: stopweblogic.cmd Metoda 3 Można też ubić wszystkie czarne okna na serwerze

Start: Uruchom w jednym oknie cmd: startweblogic_adm.cmd Uruchom w drugim oknie cmd: startweblogic_soa.cmd soa_server1 (trzeba uruchomić w drugim oknie, bo okno konsoli po uruchomieniu startweblogic_adm.cmd nie oddaje sterowania i wyświetla różne komunikaty) Interfejsy do EBS