Professional Documents
Culture Documents
Oracle SOA Activity Guide Vol2
Oracle SOA Activity Guide Vol2
fer a
ans
n - t r
a no
Oracle SOA s ฺ11g: Build
haSuite
Compositeo m ) ide
Applications
u
o o ฺc nt G
ahVolume e Guide
II •dActivity
u
y
@ his S t
z u
a y ez se t
i lp t o u
h
(s nse
z z u c e
y e l i
i l p a
sh
D53946GC20
Edition 2.0
February 2010
D65410
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2010, Oracle and/or its affiliatesฺ
Author Copyright © 2010, Oracle and/or its affiliates. All rights reserved.
Clemens Utschig Tom Hardy If this documentation is delivered to the United States Government or
anyone using the documentation on behalf of the United Statesb l e
David McCann
Valli Pataballa Government, the following notice is applicable:
fer a
Vasiliy Strelnikov
an s
David Shaffer
Vikas Anand
U.S. GOVERNMENT RIGHTS
n - t r
The U.S. Government’s rights to use, modify, reproduce, release,
David Twelves
Deirdre Matishak Vikas Jain
a no
perform, display, or disclose these training materials are restricted by
the terms of the applicable Oracle license agreement and/or the
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2010, Oracle and/or its affiliatesฺ
Contents
( s hilp se to
Practice 14-3: Deploy and Execute the CreditCardValidation Test Suite .................. 167
Practices for Lesson 15 ................................................................................................... 175
z z u cen
li
Practice 15-1: Apply Security Policies Post Deployment........................................... 176
ye
i l p a
Practice 15-2: Apply Security Policies at Design-Time ............................................. 198
sh Practices for Lesson 16 ................................................................................................... 217
Practice 16-1: Modify a Composite Application to Publish an Event ........................ 219
Practice 16-2: Modify a Composite Application to Subscribe to an Event ................ 234
Practice 16-3: Test Event Publication and Subscription............................................. 242
Practice 16-4: Implement Fulfillment for Orders with a Waiting Status.................... 258
Practice 16-5: Test Fulfillment for an Order with a Waiting Status ........................... 274
Practices for Lesson 17 ................................................................................................... 283
Practice 17-1: Configure the BAM Adapter in WebLogic Administration Server .... 284
Practice 17-2: Create BAM Objects and a JDeveloper BAM Connection ................. 291
Practice 17-3: Create and Use a BAM Adapter in POProcessing .............................. 304
Practice 17-4: Test the BAM Adapter and View the BAM Dashboard...................... 318
Practice 17-5: Create BPEL Sensors to Use a BAM Sensor Action........................... 328
Practice 17-6: View Order Status Changes in the BAM Dashboard .......................... 352
iii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2010, Oracle and/or its affiliatesฺ
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2010, Oracle and/or its affiliatesฺ
Practices for Lesson 11
The goal of this practice is to learn how to create and work with Entity Variables to query
and modify database data through a Service Data Object implemented as an ADF-BC
service. The following image depicts the changes made to the Fulfillment BPEL Process
in the POProcessing composite application:
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
hilp seBPEL
You modify thesFulfillment
( to process to implement the logic that uses an Entity
to:u
Variable z
z c e n
l i
y•e Insert an order ready to be fulfilled into the ORDERS and ITEMS database tables,
il p a and using the Entity variable to modify the order status based on the processing
sh results that occur in BPEL Fulfillment process.
• Query the customer name and address information that is copied to the shipping
request data that is sent to the shipping services though their respective JMS
Adapter services.
The OrdersSDO ADF-BC service is used to insert order and item records into the e
database at the start of the Fulfillment BPEL process. The CustomerSDO is also used by a b l
the Fulfillment BPEL process to obtain the customer name and address information s fer
t r an
required for the shipping request. In both cases, the ADF-BC applications are accessed as
-
Service Data Objects, through the use of BPEL Entity Variables.
non
a
To complete the deployment tasks perform the following steps:
) has ideฺ
1) In the JDeveloper Application Navigator, select ฺ c othemADFBCApplication
t G u workspace
on the Application Menu pull-down menu. o o e n
y
Note: If the ADFBCApplication workspace ah Sis tnot udpresent then open the
zu thi@ s
D:\labs\files\ADFBCApplication\ADFBCApplication.jws file.
e z e
y project,usby performing the following steps:
2) Deploy the OrdersSDO
l p a
( s
a) In the Application
to click the Application Menu and select Deploy >
hi seNavigator,
z z u cen
OrdersSDO_OrdersSDOProfile > to > soaserver.
y e l i
sh ilpa b) In the Select Deployment Targets window, select soa_server1 and click OK.
c) In the “Deployment – Log” window, verify that deployment is successful.
3) Deploy the CustomerSDO project, by performing the following steps:
a) In the Application Navigator, click the Application Menu and select Deploy >
CustomerSDO_CustomerSDOProfile > to soaserver.
b) In the Select Deployment Targets window, select soa_server1 and click OK.
c) In the “Deployment – Log” window, verify that deployment is successful.
4) In the JDeveloper window, select File > Save All to save changes to the application
workspace due to deployment steps.
5) Confirm that OrdersService and CustomerSDOService exist by using the WSIL
connection in the Resource Palette.
Note: If OrdersService and CustomerSDOService services do not appear in the
Resource Palette, right-click WSILConnection1 and select Refresh.
b le
fer a
ans
n - t r
a no
) has ideฺ
b) Expand the POProcessing > SOA Contents ฺ c om t Gu
folder.
h o o e n
c) Double-click the composite.xml ya fileSname.
tu d
@
zuReference s
Create the OrdersService e z e thi in the POProcessing Composite
p a y s for the OrdersService, and create a wire from
ureference
i
In this section create l the o
external
t
h se component to the new external reference.
the Fulfillment(sBPEL Process
u n
2) yInethe lice
zzcomposite.xml window, drag a Web Service component into the External
a
ilp References column.
sh 3) To configure the OrdersService external reference use the following image as a guide:
If your require help to create the external reference, use instructions in the following
table to specify settings in the Create Web Service window:
Step Screen/Page Choices or Values
Description
a. Create Web Name: OrdersService
Service Type: Reference
WSDL URL: Click the “Find existing WSDLs” icon ( ).
b. SOA With Resource Palette from the pull-down menu, expand
Resource the WSIL > WSILConnection1 > b le
Browser OrdersSDO_OrdersSDOProfile folder, select fer a
OrdersService and click OK. ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: Remember when you create a wire from a BPEL component to another service,
a partner link is created in the BPEL process.
5) Select File > Save All to save the changes to the POProcessing composite.xml
and the Fulfillment BPEL process.
b le
fer a
ans
n - t r
a no
) has ideฺ
c)
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
10) In the Variables window, create a new yavariable d
tuentity variable called ordersEV whose
@ s S
Type is the ordersViewSDO
e z zu elementt hifrom the OrdersService partner link’s
imported inline schema
a u e
y definitions.
s This time you select the Entity Variable option
l p
hi se t
and the associated o
OrdersService Partner Link. Use the following steps as a guide:
( s
u Variables nwindow, click the Create icon ( ).
a) zInzthe
l i c e
a yb)e In the Create Variable window, enter ordersEV in Name, and for the Type
il p
sh select the Element option and click the Browse Elements icon ( ).
c) In the Type Chooser window, expand the Partner Links > OrdersService >
OrderService.wsdl> Imported WSDL > OrdersService > Inline Schema >
schema folder. Scroll down and select ordersViewSDO. Then click OK.
d) In the Create Variable window, select the Entity Variable option, and click the
Browse Partner Link icon ( ).
e) In the Partner Link Chooser window, select OrdersService and click OK.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
g) In the Variables window, you can
d
yastretchSthetuwindow to confirm that the two new
variables are listed and z
that
@ h is is associated with the OrdersService
u the ordersEV
z
efollowing t
eimage as a guide:
y
partner link. Use the
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
h i lp
The text in the “From” section
t o should resemble the following case-sensitive
expression:(s se
z u e n
ez lic
yoraext:sequence-next-val('ORDER_SEQ',
i l p a 'jdbc/soademo')
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya and tu d
Use the following steps define @
u thi
the s
settings S to create the mapper file:
e z z
a) Double-click the a y s e activity.
Transform_order
u
s hilp swindow,
b) In the Transform
( e to use the following settings:
z z u Variable:
Source
c e n inputVariable and its payload
l i
ye Target Variable: orderData
i l p a Note: There is no associated Target Part.
sh Mapper File: xsl/Transformation_order
Click the Create Mapping icon ( ).
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya theSmapping
Use the following table of steps to create
d
tu rules shown:
@
u thi
zelement s
Map From <sources>
y e z e To <target> element
a u s
a.
h i lp
customerId
t o custId
b. (s nse
orderId
c.zu orderTotal
ordId
e z l i c e totalPrice
a y d. status Status
i l p e. Items > item ItemsView
sh
Note: For this mapping, on the
Auto Map Preferences Accept the
default settings Click OK.
18) In the Transformation_order.xsl window, expand the item in the source
column, and expand the for-each node and remaining nodes in the target column
and verify that your mappings are consistent with the image in the previous step. Save
the changes to the file.
19) In the Transformation_order.xsl window, perform the following steps to
complete the XSL mapping rules:
b le
fer a
ans
n - t r
no
b) To set the DateOrdered element in the target column, perform the following steps:
a
) hasgroup
i) On the Component Palette, click the Date Functions
i d e ฺ and drag
header
the current-dateTime function intoothe
c mmiddleGcolumn
u of the map
window.
o o ฺ n t
h
a Stu
Note: Make sure you drop ityinto an emptyd e
section. Do NOT drop it on an
existing map line. u@ is
e z z t h
a y u s e
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
c) To set the DateShipped in the target column, perform the following steps:
fer a
i) Right-click the DateShipped element, and select Set Text > “<Empty>”. ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
ii) Verify that the DateShipped element displays the [T] icon next to it along with
the indication it has been set to the “<Empty>” value.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
a ye In theliTransformation_order.xsl window, drag a line from the
ii)
position function icon in the middle column and connect it with the ItemId
i l p
sh element under the ItemsView tree in the target column.
Note: The position element starts at one and is incremented by one for each
item element in the source based on its XML index position in the items
collection. This is a convenient way to set the ITEM_ID database column to a
unique value within the given order.
e) Save the changes to the Transformation_order.xsl file and close the
Transformation_order.xsl window.
b le
fer a
ans
n - t r
a no
If you require help to configure the CreateEntity_order ) has idperform
activity, e ฺ the
following steps: ฺ c om t Gu
h o o e n
ya Stu
a) Double-click the CreateEntity_order icon. d
b) In the CreateEntity settings
z @
u window,
h isnext to the Entity Variable field, click the
z
e ( ).se t
Browse Variables a yicon
u
h i lpVariables
t o
u ( s nse
c) In the Browse window, select the ordersEV variable, under the Process
e
>z
z l i e and click OK.
Variables folder,
c
a yd) In the CreateEntity settings window, next to the From field click the Expression
i l p
sh Builder icon ( ).
e) In the Expression Builder window, select the orderData variable under the Process
> Variables tree in the BPEL Variables section, and click “Insert Into
Expression”. Then click OK.
f) In the CreateEntity settings window, verify Entity Variable contains ordersEV,
“From” contains: bpws:getVariableData('orderData'), and click
OK.
21) Save the changes to the Fulfillment BPEL process.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b) Double-click the Assign_acquireonline activity and add a copy operation that also
copies the literal string 'completed' (including the single quotes) to the Status
element in the ordersEV variable. Use the image in the previous step as a guide.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y
23) Save the changes to the z
eFulfillment
eBPEL process.
a u s
( s hilp se to window, scroll down, locate, and expand the
24) In the Fulfillment.bpel
u cescope,
Scope_shiporder
z z n which is in the Switch_orderstatus activity.
ye l i
il p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
26) Save the changes
h i lp
to the Fulfillment
t o BPEL process.
u (s nse
e z z l i c e
y
sh ilpa
In the Fulfillment BPEL process you create two more Entity Variables: one for the
customer data and the other for the address data. You then use the BindEntity variable to
query the customer information and address. You use the customer and address data to
populate the shipping request elements for sending shipping details to the JMS Adapters.
1) In the JDeveloper window, click on the POProcessing composite.xml window.
Note: If needed, open the composite.xml file under the SOA Content folder of
b le
the POProcessing project.
fer a
ans
Create the CustomerService External Reference n - t r
no
In this section create the external reference for the OrdersService, and create a wire from
a
has ideฺ
the Fulfillment BPEL Process component to the new external reference.
)
2) In the composite.xml window, drag a Web Service
c o m component
G u into the External
References column.
o o ฺ n t
h
a reference, d e
3) To configure the CustomerService y
@ external S tu use the WSILConnection1 in
zuthe service
the Resource Palette to locate s
thi name. Use the following image as a guide:
y e z e
i l p a
t o us
u (sh nse
e z z lice
y
sh ilpa
h o o
and set the Partner Link to CustomerService. Use the following image as a
e n
guide:
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
z @
u this and that the Key Namespace URI is
y e z e populated with
a u s
hilp se to
/customersdo/common/.
( s
u cen
In Key Value: click the Expression Builder
z z li Builder
icon ( ).
g. yeExpression In the Expression select the customerId
ilp a element from the inputVariable, and click
sh OK.
h. Specify Key Verify your Key Local Part, Key Namespace
URI, and Key Value settings are provided
and click OK.
a) To select the Entity Variable:
b le
fer a
c) To create the unique key (primary key) setting:
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye
d) li
i l p a
sh
b le
fer a
ans
n - t r
no
f) Select the source value containing the key value to be queried:
a
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a g)
sh
12) In the Bind Entity settings window, confirm that the Entity variable customerEV is
selected and the Unique Key is specified, and click OK. Use the following image as a b le
guide: fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
13) Save the changes to the Fulfillment BPEL Process.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
If you require the steps z @
touconfigureh s BindEntity_address settings perform the
ithe
following steps aye
z e t
u s
s
i) In (the
ilp Entity
hBind e o window, next to the Entity Variable filed, click the
tsettings
z z e ns icon ( ).
uBrowsecVariables
ye li
i l p a ii) In the Browse Variables window, select addressEV, and click OK.
sh iii) In the Bind Entity settings window, next to the Unique Keys section, click the
Create icon ( ).
iv) In the Specify Key window, next to the Key Local Part field, click the Browse
Entity Variable icon ( ) to select the key part.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
a S
Note: Do not select the firstyAddrId
d
tu which is an annotation identifying
entry,
@ s
zu representing
the name of the element
e z e thi the key.
vi) In the Specifyp a yKey window,
us verify that the Key Local Part is AddrId, and
that s i l t
h Key Namespace o
u ( the
n s e URI is populated with /customersdo/common/.
Note: We are capitalizing on the fact that the ADDR_ID column in the
ADDRESS table contains the exact same value as the CUST_ID column. This
simplifies how you can access the customer address data needed. Therefore, it
is good to remind you that the Bind Entity activity can only perform a primary
key look up of a row in a database table through the associated Service Data
Object. Alternatively, you could call a Web Service that provide a lookup of
the address using the CUST_ID field instead of the ADDR_ID, or you could
modify the database table definition to use the CUST_ID as the primary key
instead of the ADDR_ID. The latter would be fine if there was only one
address per customer supported.
b le
Note: The Key Value is the customerId element from the inputVariable.
fer a
ans
ix) In the Bind Entity settings window, click OK.
n - t r
a no
has ideฺ
17) Save the changes to the Fulfillment BPEL Process.
)
Populate the Shipping Request with Customer
ฺ c om t andG uAddress Data
In this section, now that you have queried the
h o o
customer e n address information by using
and
ya activity
the Bind Entity activities, you another Assign
d
tu with several copy operations to
@ s S
zu containing
modify the shipping request variable
Scope_shiporder activity.yez
thi information sent to a JMS adapter, in the
a o us e
i l p
h se twindow, inside the Scope_shiporder drag a new Assign
18) In the Fulfillment Design
( s
activityubetween the n BindEntity_address and Switch_shiporder activities. Rename the
e
new z z
Assign l i c e
activity to Assign_shipaddress. Use the following image as a
a yguide:
sh ilp
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@
u create
c) In the Assign settings window,
z h isa third copy operation that copies the
z
addressViewSDO >eCity element t
e in the addressEV to the shippingRequest >
a y u s
s h ilp e to
shippingAddress > city element.
d) In the
u ( n s window, create a fourth copy operation that copies the
Assign settings
z z li c e
a ye addressViewSDO > State element in the addressEV to the shippingRequest >
shippingAddress > state element.
i l p
sh e) In the Assign settings window, create a fifth copy operation that copies the
addressViewSDO > Zip element in the addressEV to the shippingRequest >
shippingAddress > zip element.
f) In the Assign settings window, create a sixth copy operation that copies the
addressViewSDO > Country element in the addressEV to the shippingRequest >
shippingAddress > country element.
20) Important Note: In the Fulfillment.bpel Design window, expand the
Switch_selectstore activity flow (inside the Scope_checkstock activity), to ensure that
the left-most <case> branch is titled “<case internalstore=in-stock>”,
otherwise the process will not work as documented to acquire stock from the internal
store first when both the internal and online store have items in stock.
b le
fer a
an s
n - t r
a no
c) In the Fulfillent.bpel Design window, at the ) as eฺside of the
hbottom-left
window click the Source tab. c o m Guid
h o oฺ ent
y a Stud
z z u@ this
a y e s e window, just below the “<switch
u
hilp se to
d) In the Fulfillent.bpel Source
( s
name=="Switch_selectstore">”
u n
element, click the collapse icon in the
b le
fer a
ans
n - t r
no
g) In the Fulfillent.bpel Source window, after dragging the internal store
a
has ideฺ
<case> branch the Source window automatically expands the code and you can
verify that the “<case )
ฺ c om t Gu
condition="bpws:getVariableData('Receive_internalstore_... ”
o o n
line appears immediately after the “<switch
y a h t u de
element:
name="Switch_selectstore">”
z u@ his S
a y ez se t
i lp t o u
h
(s nse
z z u c e
y e l i
a h) In the Fulfillent.bpel Source window, at the bottom-left side of the
i l p
sh window click the Design tab.
21) Save the changes to the Fulfillment BPEL process, and optionally close the
Fulfillment.bpel window.
y a h tude
a) Replace the XML data with@ the contentsSof the file
z u h i s
a y ez se t
D:\labs\files\xml_in\po-large-guitar.xml.
u order have a quantity value of 1 (one), and then
lp itemstoin the
b) Ensure that iboth
click Testh
(s WebnService.
se
z u e
y ez lic
sh ilpa
Note: After clicking the Launch Message Flow Trace link the Trace tree may
show a partially completed tree (as shown in the following image):
b le
fer a
ans
n - t r
a no
) h as eฺ
If you see a result similar to the above image then
o click the
mflow u d icon in the
iRefresh
c
oฺ ent
top-right corner of the Flow Trace page until the G
is completed.
h o
a Stud
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a Note: To view the Flow Trace tree shown in the image, you may need to collapse the
sh ValidateCCService row, and below the Fulfillment row collapse all the OnlineStore
and InternalStore entries. This enables you to look at the parts of the process flow you
are interested in.
Note: The TOTAL_PRICE column contains a value 4100 (the correct order total
b le
for the item price and quantities specified), the DATE_SHIPPED column is been
fer a
s
populated indicating that the shipping request was sent to a shipping company,
an
and the STATUS column has been updated to the value 'completed'. The
n - t r
no
dates stored for your order are most likely different to those shown in the image.
a
e) In the SQL Worksheet window, to display the item data
) h asin theeITEMS
ฺ table for
the same order enter and execute the followingm
o id
SQL statement:
u
c
oฺ e=nt100; G
select * from items where h o
a Studord_id
y
z u@
Use the following imagezas a guide
t h isverify you have two rows with the same
to
e following
values representedyin
a s eimage of the Results tab:
u
( s hilp se to
z z u cen
ye li
i l p a
sh
6) If you have time, consider examining the Audit Trail or Flow tabbed pages for the
b le
Fulfillment BPEL process in more detail to examine the various process activities that
fer a
use Entity Variables.
a n s
7) Close the Flow Trace Web browser window and any SQL Worksheet windows. n -t r
o
n and address
a
8) Finally, to verify that the shipping request contains the customer name
information, perform the following steps: ) has ideฺ
a) Open Windows Explorer, and navigate toฺthe c m Gfolder
oD:\temp u where the
o o e n t
h
shipping request XML files are written.
a Stu
ythe d
b) Double-click the XML file
z u @
with
h
largest
i s number appended to the name
shiporder_. Foreexample,z e t
shiporder_6.xml.
a y
Note: Double-clicking an u s
XML file in Windows Explorer opens the file in an
h i lp window.
t o
u (s nse
Internet Explorer
e z z l i c e
i lpay
s h
Note: You can right-click the shiporder_6.xml file and select Open With >
WordPad, to view the file in WordPad. Optionally, you can verify that the file
contents are consistent with the values in the Audit Trail for the related activities.
c) Close the Internet Explorer (tab page, or window), the WordPad, or the Notepad
window used to display the contents of the shiporder_6.xml file.
The following image shows the changes to the POProcessing assembly model:
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
The Human Task and email notificationyis aorchestrated d
tu by adding activities in the
ApproveCCOrder BPEL process.uManual @ i s
order Sapproval is performed for orders with a
z z t
e total exceedsh
valid credit card whose order
a y u s e the value 5000.
s
Email notification
( hisilpimplemented
e to to notify the customer about the status of their order.
z u wiringcethensApproveCCOrder BPEL Process with the CustomerService, such
This requires
z
e customerlidata containing the email address can be obtained for the email
thatythe
a
ilpnotification.
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u the h s
ichanges
For implementing the humanzworkflow,
e e t made in ApproveCCOrder BPEL
y s branch include:
ilpatoecheck
Process in Switch_ccvalid activityu<case>
• Adding s ahSwitch t o if manual approval is required based on the order total.
u
• Creating
( a Humanns Task activity to initiate human workflow, and implement the
z z c e
li <case> branches for each task outcomes to set the order status, and
a ye task switch
b le
fer a
ans
n - t r
a no
Note: A ManualApproval.componentType and ManualApproval.task file
are added to the project. The human task implementation details are stored in the
has ideฺ
ManualApproval.task file, which contains the human task configuration
)
settings.
ฺ c om t Gu
o
3) To edit the ManualApproval Human component
h o settings,
e n on the composite.xml
ya Human
window, double-click the ManualApproval
d
tu Task component icon. The
@ s S
e z zu thi
Human Task Editor opens ManualApproval.task file.
4) To configure the p a y us e task header settings, on the
i l ManualApproval.task
t o
( sh nse window in the top section of the window set the
ManualApproval.task
u
e z z fields:
following
l i c e
y
sh ilpa Title: Select Plain Text from the pull-down menu and enter: Manual
Approval
Description: Manually approve orders
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d)
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
e)
b le
fer a
an s
n - t r
a no
) has ideฺ
b) In the Edit window, enter Approval and clickoOK.
c m Gu
o o ฺ n t
h
a Stud e
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
a yc)e To add theli approval participants, that is the assignee of the task, select the text
i l p “<no participants>” inside the box with the stage title Approval, and click the Edit
sh option.
Note: This opens the Add Participant Type window, where you can configure the
task assignment rules.
b le
fer a
ans
n - t r
c)
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
8) Create a new Application Serverz @ h is for the Embedded LDAP Server, by
u connection
performing the following z
e steps: se t
a y uServer Connection – Step 1 of 5 Name and Type”
h
a) On the “Create i lp Application
t o
u
page, (s ldapconnection
enter n se in the Connection Name, accept default settings
z z l i c e
a ye for other fields, and click Next.
p
il b) On the Create Application Server Connection – Step 2 of 5 Authentication page,
sh enter weblogic in the Username, welcome1 for the Password, and click Next.
c) On the Create Application Server Connection – Step 3 of 5 Configuration page,
change Port to 8001, SSL Port to 8002, and WLS Domain to soa_domain,
accept other values as their default, and click Next.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye Note: Theli JNDI, JSR-160 Runtime, and HTTP tests should be successful. This is
i l p a sufficient for the connection required to access the LDAP Server information.
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s h ilp e to
Note: ( ns is made and the Realm contains jazn.com.
u The cconnection
z z e
li Lookup window, lookup and select the user jcooper as the
9) yInethe Identity
a
ilp participant by performing the following steps:
sh a) For the Search Pattern, accept the default selections and to the right of the pull-
down menu with User Name selected, click the Lookup icon ( ).
Note: Clicking the Lookup icon populates the Search User area with a list of user
names registered in the LDAP Server.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s hilp seType
10) In the Add(Participant towindow, verify that the selected user name (jcooper)
z z
appears
c n Names table row, and click OK.
uin the Participant
e
ye l i
il p a
sh
b le
fer a
12) Finally, on the ManualApproval.task window, expand the Notification Settings
ans
t r
section and ensure that the notification settings are enabled to send an email to the
n -
a no
Assignees when the task is assigned to the user. You can click the Edit icon (pencil)
in the Notification Header column to examine the text used for the email subject.
hastheideฺ
13) Save all the changes to the POProcessing Project, and)close
ManualApproval.task window. ฺ c om t Gu
h o o e n
Wire the ManualApproval andyCustomerServicea Stu d to ApproveCCOrder
@ s
zu thi Human Task component and
In this section you wire the ManualApproval
CustomerService external y e z
referencestoethe ApproveCCOrder. This creates the respective
i a
p Process
lBPEL o uso that the services can be orchestrated by the
Partner Links in the
h
(s flow.nse t
business process
u
z z lice
14)yInethe composite.xml window, drag a wire from the ApproveCCOrder BPEL
p a
il Process component to the ManualApproval Human Task component.
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
e
16)yOptionally, li the ApproveCCOrder BPEL process in the BPEL Editor and
open
a
ilp confirm that the two partner links (for ManualApproval and CustomerService) have
sh been added to the Partner Links column on the right side of the window. Use the
following image as a guide:
sh ilpa
3) For visual clarity, collapse the Scope_fulfillment activity in the <case> branch of the
Switch_ccvalid activity.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d
a Stu activity to view the same
Note: You may need to collapse @ theyScope_fulfillment
z
results in the above image. z u this
5) To configure thelp a ye use perform the following tasks:
Switch_checkapproval,
s h i e to
a) Expand ( ns
u thecSwitch_checkapproval activity
z z e
li the <case> branch title, in the Switch Case settings, set the Name to
a yb)e Double-click
sh ilp “Approval required” (excluding quotes), and the condition which
compares if the orderTotal element in the inputVariable is greater than 5000. Use
the following image as a guide:
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
Create and Configure y z
ethe Human
e Task Activity
a u s
In this section you
s ilp the
hcreate e to Task activity and select the ManualApproval task
Human
(
definition created
u with nthes Human Task component in POProcessing composite.xml.
z z c e
e a Humanli Task activity into the “<case Approval Required>” branch of the
6) yDrag
a
ilp Switch_checkapproval activity.
sh Note: When you drag a Human Task into a BPEL process the Create Human Task
window is displayed.
b le
fer a
ans
n - t r
a no
) has ideฺ
d) ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
9) Configure the Assign_autoapproved
z @
u by h is a copy operation that copies the
creating
string literal 'approved' z
e to the t
eorder > status element in the outputVariable. Use
a y u s
hilp sasea guide:
the following image
( s to
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e activity with a copy operation that copies the
14) Configure the Assign_manualapprove
a u s
( s hilp se toto the order > status element in the outputVariable. Use
string literal 'approved'
z z u image
the following
c e n as a guide:
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
Note: Collapse the Scope_fulfillment
d
yaactivityStotuobtain the same results as the above
image. z @
u this
y e z e <case> branch Name to “Fulfill
a
19) Configure the Switch_approved u s
activity
Approved”
( s handilpspecify
e taocondition that compares the ouputVariable > order >
z c e ns string literal value 'approved'. Use the following
statusztouthe case-sensitive
e as a guide:
yimage li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilpProject
b) In the Create
e to enter the Project Name: ApprovalTaskForm,
window,
anduclick OKens
e z z lic
a y
i l p
sh
Note: JDeveloper may start to consume 100% of the CPU at this time to begin the
generation process. Please wait for the processing to complete.
b le
fer a
ans
n - t r
a no
Note: Again JDeveloper may start to consume 100% of
) h asthe CPU
e ฺ at this time to
continue the generation process. Please wait form
o id to complete, while
the processing
u
the following message is displayed: c
oฺ ent G
h o
a Stud
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
e) Close
z z c e n
u the ManualApproval_TaskFlow.xml and taskDeatils1.jspx
22) Select File > Save All to save the changes to the POApplication workspace.
b le
fer
3) Expand the Scope_notifiycust activity, and create a local Entity Variable in the scope a
called customerEV based on the customersViewSDO element type and the
ans
CustomerService partner link. Use the following image as a guide:
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: To select the Element value, in the Type Chooser expand the Partner Links >
CustomerService > CustomerService1.wsdl > Imported WSDL >
CustomerSDOService > Inline Schemas > schema folder, scroll down and select
customersViewSDO, and click OK.
b le
fer a
ans
n - t r
a no
5) Configure the BindEntity_customer activity with the Entity Variable: customerEV,
has ideฺ
and the Key Local Part: CustId (selected from the customerEV variable), and the
)
ฺ c om t Gu
Key Value: set to the customerId element in the inputVariable > order element.
Use the following images as a guide:
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
n o
6) Save the changes to the ApproveCCOrder BPEL Process. s a
7) Drag an Email activity from the Component Palette into ) hthea Scope_notifycust
i d e ฺ activity
o m u
after the BindEntity_customer activity. Rename
Email_customer. Use the followinghimage o n tG
oฺcasthea eguide:
Email activity to
y a Stud
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
ilp a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a
p window, u s
( s hilsettings
a) In the Email
e to in the “To” field click the XPath Expression
z z u iconce( ns).
Builder
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s
Note: (You
ilpdynamically
hare e to obtaining the customer email address from the
z u data
customer
z c e ns into the customerEV Entity Variable.
retrieved
ye li
i l p a c) In the Subject field, enter the text: “Your order status: ” (excluding
sh quotes, and including a trailing space). Then with the cursor at the end of this text,
click the XPath Expression Builder icon ( ) for the field and select the order >
status element from the outputVariable for the Expression in the Expression
Builder.
Note: The resulting Subject line should contain the following text (on one line,
which is split over a couple of lines here for readability):
<p>Dear <%bpws:getVariableData('customerEV',
'/ns7:customersViewSDO/ns7:FirstName')%>,</p>
<p>The status of your order is:
<b><%bpws:getVariableData('outputVariable','payload',
b le
'/ns2:order/ns2:status')%></b>.</<p>
fer a
<hr>
an s
<p>Thank you for shopping with us. For more information
n - t r
contact customer support on 1800-MUSICFANS.</p>
a no
Note: If you use the email-body.xml file, then ) hasmayidhave
you e ฺ to change the
XML Namespace prefix ns2 to match the actual
ฺ c omXML t G u
Namespace prefix
generated for your application structures.
h o o Otherwise
e n consider manually entering
and constructing the email bodyytext.a Stu d
e) In the Email settings window,z @ is
u afterthcompleting the above configuration steps click
y e z e
OK.
i l p a
t o us
u ( hcan accept
Note: If thesEmail e does not keep its name and it appears to be called
activity
n s
e z z
Email_1, you
l i c e that change, or rename it back to Email_customer.
9) ySave the changes to the ApproveCCOrder BPEL Process.
a
il p
sh
Note: You may ignore the following compiler warnings when you deploy the
POProcessing composite application:
b le
fer a
ans
n - t r
a no
) has ideฺ
2) To deploy the ApprovalTaskForm ADF application
ฺ c omfiles,t perform
G u the following steps:
a) Click the Application Menu icon and o
h o Deploy
select e n> ApprovalTaskForm > to
soaserver. ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
Note: If the process Flow Trace tree does not resemble the
s image,
haabove ฺ wait a few
) i d e
seconds and refresh the page before you continue.
ฺ c om t G u to refresh the page a
You may need
few times.
h o o e n
d
ya Stuquestions:
z @
Using the Flow Trace tree answer the following
u this
a) Has the entire process
y z
e completed?
e Explain your answer.
a u s
lp doestothe last row, in the Trace tree, containing the
hiwhat
b) In this case,
u ( s
ManualApproval n e Workflow Component indicate?
sHuman
z lic e
aQ yez
i l p Answers to Step 5.
sh a. No the process is still running. If you look in the Trace tree you can see the State
for the rows containing EnrichPO, ApproveCCOrder, and ManualApproval is
Running in the State column.
b. The ManualApproval row indicates that the process is executing the Human
WorkFlow component, which is not yet complete because it is still in the Running
state.
6) To examine the ManualApproval component state, perform the following steps:
a) In the Web browser window with the Trace Flow page, click the ManualApproval
Human Task Component link.
b) On the “Instance Detail of ManualApproval” page, view the information and
answer the following questions:
i) What is the state of the human workflow task?
ii) Who is the task assignee?
b le
fer a
ans
n - t r
a no
) has ideฺ
ii. The assignee is jcooper (refer to the image inฺc om i.)t Gu
answer
h o o e nclick the Flow Trace
c) On the “Instance Detail of ManualApproval” d
yapage, asSshown
page,
tu in answer 6 b) i.
breadcrumb link at the top of@
zu thi
the s
y e z e
a u s
7) In the Web browser
h i lp window
t o with the Trace Flow page, to determine why the
(s nis sstill
ApproveCCOrder
u e running, click the ApproveCCOrder BPEL Component link.
8) On
z e
lic of ApproveCCOrder” page, click the Flow tab to view the process
ezthe “Instance
y
sh ilpa flow and answer the following questions:
a) What is the name of the last activity executed in the Flow tab?
b) Explain what the last activity execute state represents at this time?
b le
fer a
ans
n - t r
no
The activity is waiting for asynchronous callback message from the human
a
has ideฺ
workflow task that indicates it has been completed. The implications are that the
human workflow process is not complete. )
ฺ c om t Gu
h o oassigneeejcooper,
n on your desktop, open
9) To view the email message sent to the task d
ya bySdouble-clicking
tu
the Thunderbird Email client application
@ the Mozilla Thunderbird
u i s
desktop icon and performing
y e zz the following
e th steps:
a) In the Default
i l p a window,
Client
t o us click OK.
u (sh nse
e z z lice
y
sh ilpa
b) In the Mozilla Thunderbird window, in the All Folders pane, click the
jcooper@soa11g.example.com account name
d) In the “Enter your password:” window, enter the password welcome1 and click
OK. e
a b l
e) In the Inbox, verify the presences of an email message and click the entry to seeer
the message body. n s f
n - tra
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
10) To open the Worklist application and login as jcooper to make changes to the
shipping method and approve the order, perform the following steps:
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: If an ADF Task Form was not generated for the Human Task, then the
order details would not be visible in the Worklist application. The absence of an
associated task form means that you would only see the task row in the list
without any details in the lower-right pane.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
e) On the Worklist home page, in y a Stu
the lower-rightdpane containing the task details,
z z
select Actions > Approve.
u@youthcanisselect the task in the top-right pane, and
click Approve. Alternatively,
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: The Worklist application page is refreshed with assigned task removed
from the Inbox, because it has been completed.
11) Return to the Web browser page containing the “Instance of ApproveCCOrder” Flow
Trace page, and click the Refresh icon in the top-right corner of the page.
b le
fer a
ans
n - t r
n o
a
13) To find out the which shipping company was selected by thesFulfillment BPEL
ha perform
Process, due to the manual change in the Ship Method) value,
i d e ฺ the following
steps:
ฺ c om t Gu
a) On the “Instance of ApproveCCOrder” h o opage, click
e nthe Flow Trace breadcrumb
link at the top of the page. ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye the Flow
b) On li Trace page, click the Fulfillment link.
ilp a
sh
c) On the “Instance of Fulfillment” Audit Trail page, scroll to the last activity on the
page, that is the callbackClient activity, and expand the <payload> part and
confirm that the carrier selected for shipment is FedEx. Use this image as a guide:
b le
fer a
a n s
-t
b) On the pane with the title “Thunderbird Mail - sking@soa11g.example.com”
n r click
the “Read messages” link. n o
s a
) a
h ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilpyourse
c) In the “Enter to window, enter welcome1 and click OK.
password:”
d) Inzthe
z n
u Inboxcemessages, click the message header with subject “Your order status:
l i
ye completed” to display the message body in the bottom window pane. Use the
i l p a following image as a guide:
sh
15) Close any Web browser windows, with Flow Trace or Audit Trail pages still visible.
<ns0:ccType>AMEX</ns0:ccType>
<ns0:ccNumber>5678-5678-5678-5678</ns0:ccNumber>
21) On the Flow Trace page for the composite instance created for this test, you can
perform the following simple checks:
a) Ensure that the ManualApproval Human Workflow Component does not appear
in the Trace tree, because order total is less than 5000.
b) Verify that Fulfillment was executed to ensure that the order was shipped, and
confirm that the UPSJmsService was executed.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: When you create a Business Rule component you specify its name and can define
the name of the decision service it creates. The decision service provides its operations
through the rulesets or decision tables that you create in the Business Rule component
dictionary. In this section, you create the components, the decision service, and the
dictionary. However, you configure the dictionary contents for the ApprovalRules in
Practice 13-2 and for ShippingRules in Practice 13-4.
c) b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
d) @
z z u this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
f)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
g) z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
b) Inzthe
z e n window, in the expanded orderapproval.xsd entry,
u TypecChooser
l i
ye select the approvalandiscount element, and click OK.
i l p a
sh
b le
fer a
an s
n - t r
6) Save the changes to the composite.xml file.
a no
7) Answer the following question: For the Business Rules h
) as eฺjust added, what
Component
c o m Guid
files have been created in the POProcessing project?
o
Answer: There are four files that have been
ฺ to the
oadded n t project. The files are:
h e
ud (in the POProcessing project)
a) Expand the Business Rules @ ya Stfolder
> poprocessing
z u this file. This is the rules dictionary for
and you see the ApprovalRules.rules
z
a
the Business Rule y e
component.s e
u
s hilp se to
b) The ApprovalRules.componentType
( is created to represent the component in the
z u e n
z licapplication
composite and references the Business Rules WSDL interface.
y e
sh ilpa c) The ApprovalRules.decs file contains the decision service information,
such as the location of the .rules file and the rules function exposed by the
service.
d) The ApprovalRulesService.wsdl is file containing the decision service
interface.
Use the following image as a guide for the four files found in the Application
Navigator:
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
Note: Creating the wire
y z
ecreates sa Partner
e Link for the decision service in the
a u
( s hilp se to
ApproveCCOrder BPEL Process.
z z uchanges
9) Save the
c e nthe POProcessing composite application project.
to
ye and Wire li
ilp aCreate the ShippingRules Business Rules Component
sh In this section you create the ShippingRules Business Rule component, and configure the
decision service interface by defining the service name and specifying the input and
output fact structures from the ordershipment.xsd, which is imported into the
project. The ShippingRules Business Rule component is wired to the Fulfillment BPEL
component.
10) In the composite.xml window, drag another Business Rules component from the
Component Palette into the Components column.
11) In the Create Business Rules window, in the General tab page, use the following table
for the configuration settings (and accept default settings for unspecified fields):
Step Field Name Value
a. Name ShippingRules
b. Input shippinginfo
Note: The shippinginfo element is selected from the
ordershipment.xsd, which must be imported
into the project when you select the Input element.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
a n s
-t r
13) In the POProcessing composite.xml window, drag a wire from the Fulfillment
n
n o
BPEL process and connect it to the new ShippingRules Business Rules component.
a
has ideฺ
Use the following image as a guide to the result:
)
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
ilp a
sh
b)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
c)
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
e)
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
Rename the Default
( s hilp seRulesetto
z z u youcrename
In this section e n the default initial ruleset already created in the dictionary,
ye
before you createl ithe rules in the ruleset.
a
ilp4) To rename the Ruleset_1 ruleset, perform the following steps:
sh
a) Click the Ruleset_1 name under the Rulesets section, and click the Ruleset_1
name in the heading section:
b le
Note: This creates a conditional structure with two operands with an operator
fer a
between them. For example: <operand> == <operand>. In addition,
ans
- t r
another <insert test> below it. Each part needs to be clicked to specify its
n
value.
a no
b) To set the left-side <operand>, click the <operand>
) hastextidand
e ฺ select
price.totalPrice from the pull-down o
c m Gu
menu.
o o ฺ n t
h
a Stud e
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
c) To set the operator, click the “==” text and select the greater than (>) sign from
the pull-down menu.
b le
fer a
ans
n - t r
a no
Note: The approval_limit is the Global you created and set to the value 4000.
has idsteps:
7) To create the action in the THEN section, perform the)following e ฺ
a) Click the <insert action> text, and ฺselectc omassert
t G unew from the pull-
h o o e n
down menu.
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
ilp a
sh
Note: The assert new action creates a new fact object that needs to be defined
and initialized to hold the desired values. In addition, another <insert
action> is added below the one being created. This allows you to create
multiple actions for a rule. In this case, you create one action.
b le
fer a
ans
n - t r
a no
Note: The approvalandiscount structure, as defined in the XSD imported to define
the output result structure for the Business Rule decision service, has child
has ideฺ
elements called properties. You need to set their values for the present condition.
)
ฺ c om
c) To set the approvalandiscount property values, G
click the
t
u property>
<add
text:
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
d) In the Properties window, set the Value column for each of the properties. In this
case, set the approvalRequired property value to true (which can be selected
from the pull-down menu in the Value column). Enter the value 0 (zero) in the
discount Value column, and click Close.
b le
fer a
ans
n - t r
no
Create the “withinlimit” Rule in “approvalruleset” Ruleset
a
a s
In this section you create a withinlimit rule that tests the condition where the total price is
h ideฺ
)
less than or equal to the approval limit, in which case the approvalRequired property
should be set to a value of false. ฺ c om t Gu
h o o e n
ya Stu
8) To create the new rule, perform the following d
steps:
a) In the ApproveRules.rules
z @
u twindow,
h is in the approvalruleset heading section
y
click the Create icon z
eand click eCreate Rule.
a u s
( s hilp se to
z z u cen
ye li
ilp a
sh
c) In the THEN section, click the <insert action> select the assert new
b le
approvalandiscount object (as you did for the abovelimit rule) and set the
fer a
properties so that approvalRequired is false, and discount is 0 (zero).
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
a Sclick
ywindow, d
tu the Validate icon in the toolbar to
9) In the ApprovalRules.rules @
ensure that the rule dictionary s
zucontainsthvalid
i definitions.
y e z e
i l p a
t o us
u (sh nse
e z z lice
y
sh ilpa
10) To verify the Ruleset which is exposed by the decision service, click the Decision
Functions tab, select the ApprovalRulesService and click the Edit icon ( ).
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
12) Select File > Save All to save the changes to the POApplication workspace.
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
2) In the ApproveCCOrder.bpel Diagramowindow, ฺ com ndrag
t Ga uBusiness Rule
a h o e branch of the
d<case>
component from the Component Palette
y u
insidetthe
S
Switch_ccvalid activity before
z u@Switch_checkapproval
the
h i s activity. Use the following
image as a guide.
a y ez se t
i lp t o u
h
(s nse
z z u c e
y e l i
sh ilpa
b le
fer a
ans
n - t r
a no
Note: After selecting the Dictionary value, the Service ) is
asto eฺ
hset
o m u id and reset the
ApprovalRulesService, and the Operation is setcto “Execute
ฺ Assign
oand n G function
tOutput Facts tab sections
h o
session.” In addition, the Assign Input Facts
aBusiness e
d decision service and receive the
y
enable you set the input values for the
S t uRule
result values, respectively. zu@ is
z t
eto be evaluatedh
e by the ApproveRulesService, perform the
4) To assign the input a y
data u s
( s hilp se to
following steps:
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
yaassignSthe d
tuorderTotal from the order in the
b) In the Decision Fact Mapu @
window, s
z z element
inputVariable to theetotalPricee thi of the Business Rule Fact variable called
p a y us
org_example_ns_approvalrules_Price_i. Click OK.
h i l t o
u (s nse
e z z l i c e
a y
i l p
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y
c) In the Create Variablez
e window, eenter approvalRequired for Name, select the
a u s
Simple Typeilp tothe boolean type by clicking the Browse Simple Types
option and
( s h e
z z u cens image as a guide:
icon. Use the following
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
hasconfigured
e) In the Business Rule setting window, with all parts) now i d e ฺ click OK.
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
7) Since the results of the business rule a
oo dvariable
arehin a new e n
called
y S t u
approvalRequired, you need
z u @ his
to modify the <case> branch condition in the
Switch_checkapproval e z Toechange
activity. t the <case> branch condition, perform the
following steps: pay u s
h i l t o
a) Expand(s se
the Switch_checkapproval activity.
z u e n
y ez lic
sh ilpa
b le
fer a
s
c) On the Switch Case settings, delete the existing condition and replace it with the
an
following condition:
n - t r
a no
has ideฺ
string(bpws:getVariableData('approvalRequired')) = 'true'
)
ฺ com
The condition compares the string value of the
being equal to the string literal 'true'o(including
n t
u
approvalRequired
G
single
variable as
quotes). Use the
following image as a guide: h o
a Stud e
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: You have effectively altered the BPEL process to use Business Rules to
evaluate if an order requires approval. If the approval limit needs to be changed
the BPEL process no longer needs to be modified, only the approval_limit in the
rule dictionary needs to be changed.
8) Save the changes to the ApproveCCOrder BPEL Process.
b le
fer a
an s
n - t r
no
3) In the ShippingRules.rules window, rename the default ruleset to
a
has ideฺ
shippingruleset.
)
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: The following image shows the result after renaming the decision table.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z eTable
Create Rules in the a Decision
u s
In this section, s
lp three
hidefine
you torules in the decision table. The rules are created after you
(
u ceOnce
define thezcondition.
e
ns a rule comparison value is set for the condition, you can
z
ye the action.li
specify
a
ilp6) To create the decision table condition, perform the following steps:
sh
a) In the decision table Conditions, double-click the <insert condition> text.
b le
fer a
an s
n - t r
a no
) has ideฺ
Note: Adding and setting the condition creates
ฺ c om t G u template in the
the first rule
column titled R1.
h o o e n
a carrier
7) To set the comparison value for theyUPS
d
tuin the Rule for R1, perform the
@ s S
following steps:
e z zu thi
a) In the R1 column a y
and the u
C1s e
condition row, click the cell and select the
i l p t o
TWO_DAY
u (shoption n sfrom
e the pull-down menu.
e z z lice
y
sh ilpa
b le
fer a
ans
n - t r
offer any insight? a no
Ask yourself, how did those Bucketsets definitions get created? Do their names
) has ideฺ
Apart from the fact that these Bucketsets have
ฺ c om t G u type definition (refer
an XML Fact
h o o
to the Facts section in the ShippingRules.rules
e n definition), these XML
a Sintuthedordershipment.xsd, that
Facts were derived from XML elements,
y
z
Business Rules component.z u@andtOutput
were used to define the Input
h is variables for the ShippingRules
a y e s e
u
s hilp theseordershipment.xsd
If you (examine to file you can find the definitions for
u n
e with the associated enumerations. For example: here is
z typeslicshown
these
z
y e shipOptionType definition in the XSD:
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d
ya shippingcompany
tu
c) In the Action Editor window,
u@ select the
i s S entry in the Facts
z
z for the
section. In the Properties,
e h
tcarrier property select Parameterized. At
the bottom oflp a y s e
the window,uselect Always Selected and click OK.
( s h i e to
z z u cens
ye li
i l p a
sh
Note: The Value field is constructed from the selections you make. The Always
Selected option ensures the action is always selected for each rule.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y
8) To create the second rule
z
e in the sdecision
e table for the USPS carrier, perform the
following steps:ilp
a u
( s h se to
u toolbar
a) Inzthe eatnthe top of the decision table, click the Create icon and select
ye z
Rule. l i c
il p a
sh
b le
fer a
ans
n - t r
a no
s ฺ
hacell
m )
c) In the A1 row for the R2 column, click the intersecting
iand
d eselect the
CarrierType.USPS option from the pull-down
ฺ co nmenu. G u
o o t
y ah Stude
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
othe R3erule
b) To set the condition comparison valueoin
h n column, click the cell in the
y a Stu
C1 row, and select both the NEXT_DAY and d
INTERNATIONAL options.
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d
ya withSthetuimage shown here.
z @
10) Verify your decision table is consistent
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Use the following image as a guide, and click the Create icon in the Assign Input
Facts tab.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh 4) For the Assign Input Facts, on the Decision Fact Map window, copy the string value
of the shipMethod from the inputVariable to the shipChoice in the
org_example_ns_shippingrules_Shippinginfo_i variable.
string(bpws:getVariableData('inputVariable','payload',
'/ns1:FulFillmentRequest/ns5:shipMethod'))
5) In the Business Rule settings window, click the Assign Output Facts tab and click the
Create icon.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
asinput,eand
7) In the Business Rules window, having specified the settings,
) h ฺ output facts,
click OK to create the Business Rule.
om t Gu i d
o ฺ c n
h o d e
@ ya Stu
z z u this
a y e s e
u
( s hilp se to
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
9) Like the ApproveCCOrder scenario, because ฺyou c m implemented
ohave G u a Business Rule
o t
oin eacheofnthe <case> branches of the
h
a Stud from the ShippingRules Business
you need to alter the conditional expressions
Switch_shiporder activity to use@ theyresults returned
Rule component, which returns
z z t h isinstead of the ship method. First expand
u the carrier
the Switch_shipordera y e
activity. s e
u
( s hilp se to
z z u cen
ye li
ilp a
sh
10) To change the condition for the UPS carrier, perform the following steps:
a) Double-click the <case UPS> heading to open the Switch Case settings.
bpws:getVariableData('outputVariable','payload',
'/ns1:FulfillmentResponse/ns1:carrier') = 'UPS'
The expression compares the carrier element value in the outputVariable to the
literal case-sensitive string value 'UPS'. Use the following image as a guide:
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
h i lp
11) To change the condition for
t othe USPS carrier, perform the following steps:
(s thens<case
a) Double-click
u e USPS> heading to open the Switch Case settings.
ez z lic e
y
sh ilpa
bpws:getVariableData('outputVariable','payload',
'/ns1:FulfillmentResponse/ns1:carrier') = 'USPS'
The expression compares the carrier element value in the outputVariable to the
literal case-sensitive string value 'USPS'. Use the following image as a guide:
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@ is perform the following steps:
u FedExthcarrier,
zthe
y z
12) To change the conditionefor e
a u s
( s hilpthe s<case
a) Double-click
e toFedEx> heading to open the Switch Case settings
z z u cen
ye li
ilp a
sh
bpws:getVariableData('outputVariable','payload',
'/ns1:FulfillmentResponse/ns1:carrier') = 'FedEx'
The expression compares the carrier element value in the outputVariable to the
literal case-sensitive string value 'FedEx'. Use the following image as a guide
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@ is the Assign_toFedEx activity.
zu double-click
h
z
e) In the <case FedEx>ebranch,
e t
a y u s
( hinilpthe
f) In the Assign
s
window,to
s e
select the third copy operation, with the Expression
“From” section and click the Delete icon.
'FedEx'
z u e n
yez lic
i l p a
sh
b le
fer a
ans
b) In the Confirm Delete dialog box, click Yes. n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
16) Save the changes to the POProcessing project and POApplication workspace.
Note: Since the process still has the Human Task component, you may ignore the
following compiler warnings, related to the Human Task configuration, when you b le
deploy the POProcessing composite application:
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
a StBPEL
Note: You may also receive theyfollowing
d
u warning. This can also be safely
ignored. @
zu thi s
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b) Select File > Save All to save changes to the POApplication application
workspace.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y z
eTrace image
e does not match those you see in your Web page,
Note: If the above a
Flow u s
then wait fors ilp teneseconds
habout to or more and click the Refresh icon at the top-right
(
u the Web
cornerzof s
npage.
z li c e
a ye
i l p Using the Flow Trace tree answer the following questions:
sh a) What was the input value to the ApprovalRules Decision Service component?
b) What was the result returned from the ApprovalRules component?
Q Answers to Step 4.
a. Click the ApproveRules Decision Service component link in the Flow Trace tree, and
you can see the input value provided for the totalPrice is 5200. For example:
Note: If the Flow Trace page does not display all rows listed in the image shown in step
4, then wait for about ten seconds or more and click the Refresh icon at the top-right
corner of the Web page.
5) Since the Manual approval is required, to approve the order in the Worklist
Application perform the following steps:
a) On a Web browser page, access the Oracle BPM Worklist application by entering b le
the URL http://localhost:8001/integration/worklistapp. fer a
ans
n - t r
b) On the Oracle BPM Worklist application page, enter jcooper in the Username
and welcome1 for the Password, and click Login.
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
c) On li home page, the Inbox is selected and task with the title “Manual
ye the Worklist
i l p a Approval” should be present in the top-right pane on the page. Click the “Manual
sh Approval” task entry to display the order details in the lower-right pane.
b le
fer a
ans
n - t r
a no
) has ideฺ
c o m Gu
ฺ
o theeLogout
e) To Logout of the Worklist application, click
o n t link, and close the Web
page.
y h
a Stud
z z u@ this
a y e s e
u
( s hilp se to
6) On the
z z uWeb browser,
c e n return to the Flow Trace page, and click the refresh icon on the
l i
e corner of the page.
ytop-right
il p a
sh
7) On the Flow Trace page, scroll down the Trace tree and locate the ShippingRules
Decision Service Component and verify that the carrier selected is UPS. Perform the
following steps:
b le
fer a
ans
n - t r
no
Note: Another indicator that the UPS carrier is selected is that the USPJmsService
a
has ideฺ
appears after the ShippingRules component in the Trace tree. You may have to
)
collapse the InternalStore and ExternalStore subtrees in the Flow Trace to see the
reset of the entries in the Trace tree.
ฺ c om t Gu
h o o page,everify
n that the shipChoice is
b) On the “Instance Detail Of ShippingRules” d
ya valueSreturned
tu is UPS.
two_day, and the resulting@ carrier
zu thi s
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
8) Optionally, open Thunderbird application window, and read the email sent to the
sking@soa11g.example.com account by performing the following steps:
a) In the “Enter your password:” window, enter welcome1 and click OK.
b) In the Inbox messages, click the message header with subject “Your order status:
completed” to display the message body in the bottom window pane. Close any
Web browser windows, with Flow Trace or Audit Trail pages still visible.
b le
fer a
ans
n - t r
a no
) h as eฺ
11) On the Oracle Enterprise Manager page, in the Request
o m replace u d XML View text
ithe
ฺ c
oelement n t
with the contents of the file D:\labs\files\xml_in\po-small- G
guitar.xml, and replace the shipChoicea h o d e
value with the lowercase text
value international. Then@ y t u
S Service.
click Test Web
z u h i s
a y ez se t
i lp t o u
h
(s nse
z z u c e
y e l i
sh ilpa
12) On the Response tab, click the Launch Message Flow Trace link.
13) On the Flow Trace page, to verify the process results perform the following steps:
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om tthat
b) On the “Instance Detail Of ApproveRules”, confirm G uthe totalPrice supplied as
input to the rule is less than 4000 ando
h o the approveRequired
that
e n is returned as the
value false. Click the Flow Trace ya Stu
breadcrumb d
link.
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
c) On the Flow Trace page, in the Trace tree scroll down and click the
ShippingRules link.
Recall that you had modified CreditCardValidation process to include a BPEL process to
check if an order total exceeded the credit card limit. With that modification you
modified the original Mediator routing rule to the CreditCardDBService to process credit
cards that begin with the four digits ‘9000’. Since that modification that routing rule has
not been tested. The reason for that path not being tested is that the CREDITCARDS
database table, in the SOADEMO schema, does not have credit cards that begin with the
digits ‘9000’. However, with the use of test cases, you have the ability to emulate the
Database Adapter response to return a valid or invalid status for credit cards beginning
with ‘9000’ “as if” the credit card existed in the database. b le
fer a
With the above scenario in mind, in this practice you create a test suite for the
ans
CreditCardValidation composite process and the following three test cases: n - t r
no
• Test a credit card number starting with the digits 9000 and returning a VALID
a
status.
) has ideฺ
• Test a credit card number starting with the digits 9000 and returning an INVALID
status. ฺ c om t Gu
h o o e n
d
• Test a credit card that does not exist and check its response with a value-based
ya Stu
and an XML-based assertion.
@
z u this
The following image illustrates the first two of the above test case scenarios:
z
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: The first two test cases do not use assertions as shown in the image. Each test case
requires initiating an inbound message to provide data for starting the composite being
tested.
ilpa
c. Create Composite Test Name: test_valid_9000
sh Optionally, enter a description for your test.
Click OK.
a)
c)
b le
fer a
ans
n - t r
a no
) has ideฺ
Note: This action opens the test_valid_9000.xml
ฺ c om t Gufile in the test case
editor window, which resembles the composite
h o o assembly
e n model. The difference is
that the Exposed Services and External
y d
a Stu columns are a different color
References
to the real composite.xml
z z u@filethwhenis opened.
y e confirm
3) In the Application Navigator,
a s e that the testsuite_ccv folder has been added
ilp folder,
below the testsuites
u
toand that the test_valid_9000.xml file representing
( s h s e
the firstutest case isncontained in the test subfolder of the testsuite_ccv folder. Use the
z z
following li
image c e
as a guide:
a ye
sh ilp
b le
b) In the Initiate Message window, manually generate and modify the initiating
fer a
message contents by performing the following steps:
a n s
n
i) Observe that the Part can only be set to request as its selectedovalue.
r
-t With the
Enter Manually option selected, click Generate Sample.a n
ii) In the Enter Value section, replace the generated) as inside
hvalue e ฺ the
<CCNumber> element with 9000-1234-1234-1234, i d
om t Gu and replace the
ฺ c
o with n200.
h o
generated value in the <amount> element
d e
iii) Click OK. @ ya Stu
z z u a guidethtoisthe end result for the above steps:
a y e
Use the following image as
s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
5) To create the emulated output of VALID from the CreditCardDBService for the e
test_valid_9000 test case, perform the following steps: a b l
s fer
with the CreditCardDBService and select Create Wire Actions. - t an
a) Right-click on the wire connecting the ValidateCreditCard Mediator component
r
no n
a
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
b) In the Wire Actions y z
ewindow,sfor
e the only operation provided click the Emulates
a u
hilpthe sAdd
tab and click
( s e o icon ( ).
tEmulate
z z u cen
ye li
i l p a
sh
c) In the Create Emulate window, observe that the Emulate Output option is
selected. With the Enter Manually option selected click Generate Sample and
perform the following steps to format the emulated response message:
i) The initial generated XML sample contains three <Creditcards> elements with
their associated child elements. Delete the last two <Creditcards> elements
along with the child elements that they contain.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a d) In the Wire Actions window, confirm the addition of the emulated output
sh (response) message and click OK.
6) Save the test case file configuration and close the test_valid_9000.xml
window. b le
fer a
7) Save all the changes to the POApplication workspace.
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d) ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
4) Save the test case created in the test_invalid_9000.xml window, and close
the file.
b le
fer a
ans
n - t r
a no
b) In the Create Composite Test window, enter the Name:as
test_response_9999, and click OK ) h ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: This action creates and opens the test_response_9999.xml file in a
window.
6) To create the initiating message for the test_response_9999 test case, use
instructions in the following table and associated screenshots as a guide:
Step Screen/Page Description Choices or Values
a. test_response_9999.xml Right-click the ValidateCreditCard_ep
Exposed Services icon and select Create
Initiate Messages.
b. Initiate Messages With the Enter Manually option selected, click
Generate Sample.
Replace the <CCNumber> element value with
9999-9999-9999-9999, and replace the
<amount> value with 3500.
Click OK.
b)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
Create li
ye an XML-based Assertion in a Wire Action
il p a
sh 7) To create the wire action with an XML-based assertion for a possible VALID
response from the ValidateCreditCard Mediator component, use instructions in the
following table and associated screenshots as a guide:
Step Screen/Page Description Choices or Values
a. test_response_9999.xml Right-click on the wire connecting the
ValidateCreditCard_ep Exposed Services icon
and the ValidateCreditCard Mediator and
select Create Wire Actions.
b. Wire Actions With the Asserts tab already selected, click the
Add Assert icon ( ).
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
Create a Value-based Assertion ya Stu d
z @ is INVALID response from the
u for tahpossible
y z
8) To create a value-based assertion
e component,e
ValidateCreditCardaMediator
p u s use instructions in the following table and
i l t o
u (sh nse
associated screenshots as a guide:
z z liceDescription Choices or Values
Step Screen/Page
e
a. y Wire Actions With the Asserts tab already selected, click the Add
sh ilpa Assert icon ( ).
b. Create Assert Select the Assert Output option.
Assert Target: Click Browse.
c. Select Assert Target Expand the reply > CreditCheckResponse node,
select status and click OK.
d. Create Assert With the Assert Output option and Assert
Target selected, set the following values:
Compare By: string
Assert Value: INVALID
Click OK.
b le
fer a
ans
b)
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
d) ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
u cen
zzWire
9) yInethe li window, in the Asserts tab page confirm you have two assertions
Actions
a
ilp of the Assert Output type, and click OK.
sh
11) Save the test_response_9999.xml test case and close its window.
12) Save all the changes to the CreditCardValidation project.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
test_ccv_01. a no
b) In the “Details of test run” window, enter the Test Run Name value:
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z
Note: n OK, the Web browser is refreshed with the Test Runs tabbed
u Aftercclicking
e
l i
ye page being displayed. It is a good idea to choose unique names for your test runs.
i l p a The Test Run Name selected can be used in the Test Runs search criteria to locate
sh the results for that test run instance.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
d) On the “CreditCardValidation [1.0]” h o o Tests e> nTest Runs tabbed page, after
Unit
waiting a short time and clickingy aRefreshSTest
t udStatus enough times the
test_ccv_01 test row should
z z u@ is the Test Run Name column below the
appearhunder
t
y e Click
collapsed Search section.
a s ethe test_ccv_01 test run name (or row) entry
ilpTest eSuite
to display the t u
oand Test Cases tree below the “Results of Test Run:
( s h
z z u cens
test_ccv_01” section.
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
Note: The Passed status indicates
d
ya thatSthetutest was successful for the conditions
created. In other words,zthe @ is in the Mediator component functions as it
u routingthrule
was designed to work.y e z e
a u s
5) To run all the
s ilpin the
htests e to suite, perform the following steps:
test
( ns
uthe “CreditCardValidation
a) z
e Onz l i c e [1.0]” Unit Tests > Test Runs tabbed page, click
y the Test Cases tab to return to the Test Cases tabbed page:
sh ilpa
b le
fer a
c) In the “Details of test run” window, enter the Test Run Name value:
ans
test_ccv_all.
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e[1.0]” Unit Tests > Test Runs tabbed page, wait for
a
d) On the “CreditCardValidation u s
( s hi(alpcouple
a short time e tofominutes) and click Refresh Test Status, until the
z u censtest run entry appears.
test_ccv_all
z
ye li
i l p a
sh
b le
f) On the “CreditCardValidation [1.0]” Unit Tests > Test Runs tabbed page,
fer a
s
navigate to the Test Run Name column below the collapsed Search section. Click
an
n - t r
the test_ccv_all test run name (or row) entry to display the Test Suite and
no
Test Cases tree below the “Results of Test Run: testccv_all” section.
a
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
z
e assertion
theyfailures e failures? Well, if you remember the test-
Note: Why are a
u s
( s hilp se to test case is the only test case that contains assertions. It
response_9999.xml
z z u thatcan
appears
e nassertion failed. This could indicate a process execution problem
li
ye or data problem.
i l p a h) In the “Assertion details for testsuite_ccv” section, you can examine the cause for
sh the XML-based assertion failure by clicking either of the [XML] links in the row
entry that appears. Click the [XML] link in the Expected Value column.
Note: The value-based assertion also failed as it expected the valid INVALID
when the actual value return is an empty string. This is visible in the table row.
b le
fer a
an s
n - t r
a no
) has ideฺ
Note: The actual cause of the above problem ฺ c oismbuilttinto
G uthe course application
h o CreditCardDBService
othe e n
scenario. In this case, the cause isathat
y t u d returns an empty
status value if the credit card
u @valueonhdoes
i s Snot exist in the database table. The choice
of solution is varied and
e z zdepends t business requirements. You do not take
the
action to repair a y
this problem e
usin the course practices.
i l p t o
6) In addition,
u (sforh eachnsteste case, a composite instance is created and run as would be the
e z an instance
casezfor
l i c e created from receiving an actual message (rather than an
a y
emulated test) on initiation. In the “Assertion details” table you can click the instance
p
il id link in the Composite Instance column to view the Flow Trace for that composite
sh application instance to examine the process audit trail and flow pages.
7) Optionally, you can click the Composite Instance link to view the Flow Trace details.
b le
fer a
an s
n - t r
a no
Your tasks in the practice are to: ) has ideฺ
ฺ c
• Secure invocation of the POProcessing composite om application
t G u entry point
h
(ReceivePO) by using the UsernameToken o o policy.e nThis requires that you enter a
d
yaand password)
tu to initiate the service.
valid set of credentials (username
@ s S
e z zu tcomposite
• Secure the CreditCardValidation hi application entry point
y
a o us
(ValidateCreditCard_ep) e
using SAML service tokens, which requires the security
li ppropagated.
identity tohbe t
(
• Propagate
u s s e
n using SAML client tokens on the ValidCCService, which is
identity by
z z c e
li reference for the ValidateCreditCard_ep entry point.
a
In yepractice
the
the external
you apply the policies to deployed applications by using Oracle Enterprise
sh ilpManager. After removing the policies in Oracle Enterprise Manager you use JDeveloper
to secure the CreditCardValidation service and ensure it is invoked securely using design-
time policy attachments. You remove design-time policies so that remaining practices in
the course do not require the addition step of providing the WS-Security credentials for
each test.
Note: For the purposes of this test you use an input data file with an invalid credit card.
The input file is sufficient for testing and observing the effects of applying the security
policies, without causing modification to the database data. It involves less time and
effort to run the tests because there are less process steps to execute and no need to
perform actions in the Worklist application.
b le
c)
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
d) zzu c e n
ye l i
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
omonttheGsupplied
ii) Did the process complete successfully, based
ฺ c u data?
h o o Message
Answer: Yes, if you click the Launch
e nFlow Trace link you can view
y a Stu
the Flow Trace tree and confirm that the d
ValidateCCService, which has not
@ hsuccessfully
been secured yet, wasuinvoked
z is as well. Use the following image
as a guide: e z e t
a y u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
7) To attach the fer a
oracle/wss11_saml_token_with_message_protection_service_pol ans
n - t r
icy to the ValidateCreditCard_ep, use instructions in the following table and
associated screenshots as a guide: a no
Step Screen/Page Description )
Choices or Valueshas ideฺ
a. “CreditCardValidation [1.0] “ Click c m G
theoPolicies tabu
o ฺ
o “Attach t
nTo/Detach From” and click
b. “CreditCardValidation [1.0] “
hClick
d e
Policies
@ ya ValidateCreditCard_ep.
S tu
c. “Attach/Detach zu thiUnders the Available Policies, next to Search select
y e z e
Policies(CreditCardValidation…)” Name from the Search pull-down menu, enter
a u s
s h ilp e to wss11_saml, and click the Search icon ( ).
d. (
u cens
“Attach/Detach Under the Available Policies section, select the row
e z z li
Policies(CreditCardValidation…)” containing the Name
y
ilpa
oracle/wss11_saml_token_with_message_
sh e. “Attach/Detach
protection_service_policy, click Attach.
Under the Attached Policies section, verify the desired
Policies(CreditCardValidation…)” policy is attached, and click OK.
f. “CreditCardValidation [1.0] “ Confirm that the oracle/wss11_saml_token_
Policies with_message_protection_service_policy
is listed as an attached policy.
b le
fer a
ans
c)
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a d)
sh
b le
f) fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
Attach
y e the li Client Policy to ValidationCCService
SAML
a
ilpIn this section, you configure the SAML client security policy on the
sh ValidationCCService external reference of the POProcessing composite application. The
SAML client security policy ensures the security credentials, received through the WS-
Security heading (from the attached UsernameToken security policy requirement), are
propagated to the ValidateCreditCard_ep entry point. Remember the
ValidateCreditCard_ep entry point is accessed through the ValidationCCService external
reference, which invoked by the ApproveCCOrder BPEL Process component.
8) To access the POProcessing composite application policies page, perform the
following steps:
a) On the Oracle Enterprise Manager home page, in the Farm_soa_domain
navigation section, click the “POProcessing [1.0]” link.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a b)
sh
b le
fer a
ans
d)
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh e)
b le
fer a
ans
n - t r
a no
) as down
hscroll e ฺ to the Input
c) On the “POProcessing [1.0]” Web Service Test page,
othemXML i d
u mode, and replace
Arguments section in the Request tab, select ฺ c
oof the filen t G
View
the supplied XML text with the contentsh o d e
ya Stu
D:\labs\files\xml_in\po-guitar-invalidcc.xml,
@ and click Test
u i s
Web Service.
y e zz e th
d) Provided youp
i l a the
entered
t o us credentials in for the WSS Username Token
correct
u sh nsection,
in the Security
(using s e the process should execute successfully. You can verify
z z
this by
l i c e the following steps:
a ye i) Observe that the Response tab page is displayed with Launch Message Flow
i l p
sh Trace link.
b le
fer a
an s
n - t r
a no
) h as eฺ
11) Now, if you are not convinced by the above success
o m result, you
u d now disable the
ican
WSS Username Token policy in the POProcessing
o ฺ c t G
composite
n application. This
eliminates the need to provide the security o
h credentials
aTherefore, de when initiating the
POProcessing composite application. y t u
S security identity information can
no
z u @ i s
e zprove e th the
be propagated to the ValidateCreditCard_ep entry point of the CreditCardValidation
composite application.
p a y To
u sit, perform following steps:
l
hi Enterprise o
t Manager, on the Farm_soa_domain navigation section,
s
a) On the(Oracle
n s e
uthe “POProcessing
e z z
click
l i c e [1.0]” link.
y
sh ilpa
b le
fer a
ans
n - t r
d) In the Confirmation window, click Yes.
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y z
e [1.0]”spage,
e) On the “POProcessing e click Test.
a u
( s hilp se to
z z u cen
ye li
i l p a
sh
f) On the “POProcessing [1.0]” Test Web Service page, there is no need to provide
the WS Username Token credentials because you disabled the policy. In the
Request tab section, scroll down to the Input Arguments section in the Request
tab, select the XML View mode, and replace the supplied XML text with the
contents of the file D:\labs\files\xml_in\po-guitar-
invalidcc.xml, and click Test Web Service.
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u that youh isget an error indicating that the end point
Note: You can observer
e z e t
y
cannot be accessed.
a u s
s
Note: (This
ilp iseexpected
hresult to because you did not provide any credentials to the
z u cecomposite
POProcessing
z ns application, and therefore there is no authenticated
y e security l i
identity that can be propagated to the CreditCardValidation service entry
i l p a point, which still enforces the requirement to provide security information
sh because of the attached SAML security policies.
b le
fer a
b) On the “POProcessing [1.0]” page, click the Policies tab.
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u Policies
c) On the “POProcessing [1.0]” h ispage, click “Attach To/Detach From” >
e z e t
a y
ValidateCCService.
u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
e) On the “Attach/Detach Policies(POProcessing…)” page, under Attached Policies,
fer a
confirm that no policies are attached and click OK.
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya page, d
tuclick “Attach To/Detach From” >
f) On the “POProcessing [1.0]” Policies
@ s S
ReceivePO.
e z zu thi
a y u s e
( s hilp se to
z z u cen
ye li
i l p a
sh
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
13) To detach the SAML service policy from the CreditCardValidation composite
application, perform the following steps:
a) On the Farm_soa_domain navigator section, click the “CreditCardValidation
[1.0]” link
b le
fer a
an s
n - t r
Policies, select the a no
d) On the “Attach/Detach Policies(CreditCardValidation…)” page, under Attached
) has ideฺ
oracle/wss11_saml_token_with_message_protection_servic
e_policy entry, and click Detach.
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a e) On the “Attach/Detach Policies(CreditCardValidation…)” page, under Attached
sh Policies, confirm that no policies are attached and click OK.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a c)
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a e)
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
6) To attach the oracle/wss11_saml_token_with_message_protection_client_policy to
o o n
y ah use
the ValidateCCService external reference, de in the following table and
instructions
t u
associated screenshots:
z u @ his S
Step Screen/Page ez Choices
e t or Values
Description lp a y u s
h i t o
a. (s nse Right-click
composite.xml
u
the ValidateCCService external reference
zz ice
b. yeConfigurel SOA WS
icon and select Configure WS-Policies.
For the Security section, click the Add Security
sh ilpa Policies Policy icon.
c. Select Service Security Scroll down and select the
Policies oracle/wss11_saml_token_with_message_
protection_client_policy entry, and click
OK.
d. Configure SOA WS Confirm the addition of the
Policies oracle/wss11_saml_token_with_message_
protection_client_policy entry to the
Security section, and click OK.
e. composite.xml In the External References column, observe that the
ValidateCCService icon contains a lock icon, to
indicate it has been secured.
b)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
d)
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a c) Select wss_username_token_service_policy, and click OK.
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a e)
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
d) After a short delay,y z
ethe “Webservice
e invocation failed” window is displayed. This
a u s
indicates that
h i lp
the invocation
t o of the POProcessing application failed because
(scredentials
security
u n sewere not provided when they are required.
z lic e
a yez
i l p
sh
13) To repeat the test, and this time supplying a valid username and password in the WSS
Username Token settings, perform the following steps:
b) On the “POProcessing [1.0]” Test Web Service page, after entering the security
credentials, click Test Web Service (at the top or bottom of the page).
b le
c) This time, the “POProcessing [1.0]” Test Web Service > Response tab page is
fer a
displayed with the Launch Message Flow Trace link indicating the service
an s
invocation is successful. Use the following image as a guide:
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s h ilp e tofo the Response tab is an indication that the security
Note: The appearance
(
u censauthenticated and processing is allowed to proceed.
credentials were
z z li
a yd)e On the “POProcessing [1.0]” Test Web Service > Response tab, click the Launch
i l p Message Flow Trace link to verify that the process completed as expected,
sh indicating that the ValidateCCService propagated the credentials to the
ValidateCreditCard_ep in the CreditCardValidation composite application.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
d) In the composite.xml window, to confirm the security policy is disabled, on
the ReceivePO icon verify the lock icon on is displayed in an unlocked state.
16) To disable the SAML client security policy on the ValidateCCService external
reference of the POProcessing composite application, perform the following steps:
b) In the Configure SOA WS Policies window, in the Security section to disable the
b le
security, deselect the option next to the
fer a
oracle/wss11_saml_token_with_message_protection_client
ans
_policy entry.
n - t r
Click OK.
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
17) Save the changes to the POProcessing composite application project, and close the
composite.xml window.
18) To disable the SAML service security policy on the CreditCardValidation composite b le
application exposed service (entry point), perform the following steps: fer a
ans
t r
a) In the Application Navigator, expand the CreditCardValidation > SOA Content
n -
folder, and double-click the composite.xml file.
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh b) In the composite.xml window, right-click ValidateCreditCard_ep icon, and
select Configure WS-Policies.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
19) Save the changes the changes to the CreditCardValidation composite application
project, and close the composite.xml window.
The business needs to implement fulfillment processing and shipping for products with a
waiting status, which indicates that they were placed in waiting until the products for
that order are available in the stores. To assist you with this implementation the following
composite applications are provided:
• The AddStockToStore composite application, which accepts a stored indicate, the
product ID and the amount of product to add to the specified store database table.
• The FulfillWaitingPO composite application, that contains a BPEL process that:
o Accepts a product ID and finds all order Ids whose status is waiting and
contains the specified product ID. b le
o Retrieves the full order details and prepares it in an internal order XML fer a
structure ready to be sent to the Fulfillment BPEL process in the ans
POProcessing composite application. n - t r
no
The following image illustrates the composite application interactions, and the Mediator
a
has ideฺ
components used for publishing and subscribing to the stock update business event:
)
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
To implement the business requirement to manage the fulfillment of waiting orders, you
perform the following tasks:
• Copy the AddStockToStore composite application project folder, from the
D:\labs\files, into the POApplication workspace in the
D:\labs\mywork\POApplication folder. You modify the composite
application to publish a stock update event containing the product ID of the stock
item updated.
Note: When updating the AddStockToStore project you create the event
definition language files and XML schema.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
d)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye)e li
i l p a
sh
b le
fer a
ans
n - t r
a no
6) In the JDeveloper window, after creating the event definition the
has ideฺ
managestock.edl file is opened in its own window, which displays the event
)
definitions in the EDL file.
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh a) On the JDeveloper menu, select File > Save the event definition file.
b) Close the managestock.edl window.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
Note: The managestock.edl file can h o oopenedetoncreate, modify, or delete event
be
y a Syou
definitions. If you expand the xsd sub-folder t d find the StockUpdate.xsd
ucan
file.
z z u@ this
8) Save the changesp yeAddStockToStore
toathe u se project.
i
h se l t o
Publish u (sStockUpdate
the n Event from AddStockToStore
z z l i c e
yesection, you modify the AddStockToStore composite application assembly model
In this
a
p
il to include a Mediator component that publishes the StockUpdate event. You modify the
sh BPEL process to invoke the Mediator component after the specific product stock quantity
has been updated.
9) In the AddStockToStore composite.xml window, create a Mediator component
that publishes the StockUpdate event. Use instructions in the following table and
associated screenshots as a guide:
Step Screen/Page Description Choices or Values
a. Composite.xml Drag a Mediator component from the Component
Palette into the Components column.
b. Create Mediator Name: PublishUpdateEvent
Template: One-way Interface
Ensure the “Create Composite Service with SOAP
Bindings” option is deselected.
Input: Click the Browse Input Elements icon ( ).
a)
b le
fer a
ans
n - t r
a no
) has ideฺ
b) ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) h as eฺ
d)
c o m Guid
h o oฺ ent
y a Stud
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
h i lp
11) To edit the PublishUpdateEvent
t o Mediator component so that it publishes the
(s event,nperform
UpdateStock
u se the following steps:
a)ez z lic e
In the composite.xml window, right-click the PublishUpdateEvent Mediator
a y component icon and select Edit. Alternatively, double-click the
sh ilp PublishUpdateEvent Mediator component.
b le
fer a
ans
n - t r
c) In the Target Type window, click Event.
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
p a u s
s hilChooser
d) In the Event
( e to observe that the StockUpdate event is already
window,
z u ascbeing
detected
z e nsdefined and selected. Click OK.
ye li
i l p a
sh
13) Select File > Save All to save the changes to the XSLT Mapper file and the
composite.xml, and close the productID_To_StockUpdate.xsl window.
14) In the AddStockToStore composite.xml window, confirm that the StockUpdate
event is displayed in the PublishUpdateEvent Mediator component icon, which also
displays a “publish event” lightning bolt icon on its right-hand edge. Use the
following image as a guide: b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
a Invoke
yto d
tuPublishUpdateEvent
Modify the UpdateStock BPEL @
u thi s S
In previous steps, you wired e z
thezPublishUpdateEvent Mediator component to the
UpdateStock BPEL lcomponenta y s e
u a partner link in the BPEL process. In this
creating
h i p UpdateStock
t o
u s nse
section, you modify
(invoke the BPEL Process, in the AddStockToStore composite
z z
application, to
l i c e the PublishUpdateEvent Mediator component so that the event can
a ye
be published with the productID assigned to the invoke activity input variable.
il p
sh 15) In the AddStockToStore composite.xml window, right-click the UpdateStock
BPEL component icon and select Edit. Alternatively, double-click the UpdateStock
BPEL component.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s h ilp help
Note: If you require
e ttooconfigure the Invoke_evt_publish activity, perform the
(
u steps:cens
following
z z li
a ya)e In the UpdateStock.bpel Design window, double-click the
i l p Invoke_evt_publish activity.
sh b) In the Invoke settings window, click the Browse Partner Links icon.
c) In the Partner Links Chooser window, select the PublishUpdateEvent partner link.
d) In the Invoke settings window, the Operation is set to execute, next to the Input
field click the Automatically Create Input Variable icon ( ).
e) In the Create Variable window, accept the default name, type, and Global
Variable option, and click OK.
f) In the Invoke settings window, click OK.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ytoa applySthe d
tucopy operation created.
@
c) In the Assign window, click OK
zu thi s
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilpto the
20) Save the changes s e to
AddStockToStore composite application project.
z u e n
21)yClose lic
ez the AddStockToStore composite.xml, the UpdateStock.bpel, and the
a
ilp PublishStockEvent.mplan windows (if they are still open).
sh
Deploy the AddStockToStore Composite Application
22) To deploy the modified AddStockToStore composite application project, perform the
following steps:
a) In the Application Navigator, right-click the AddStockToStore project name, and
select Deploy > AddStockToStore > to > soaserver.
b) In the SOA Deployment Configuration Dialog, click OK.
Note: If the Authorization Request dialog box is displayed, enter the Username:
weblogic and Password: welcome1 and click OK.
c) In the Deployment – Log window, confirm that deployment was successful.
23) Save all the changes to the POApplication workspace.
b le
fer a
ans
n - t r
n o
b) a
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
Note: This copies the event definition and XSD from the AddStockToStore
) has ideฺ
project into the current project as local copies. Ideally, these EDL and XSD files
should be centralized in the Metadata Server (MDS) or a Service Registry.
ฺ c om t Gu
d)
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o oalternative
e nentry point, through events, to
Note: The SubscribeUpdateEvent provides
ya process d
tucomponent.
initiate the FulfillWaitingOrders@BPEL
s S
10) Select File > Save Allyto e zzuthe echanges
save thi to the project.
i l p a o us
s h se t for the SubscribeUpdateEvent Routing Rule
Create a Transformation
(
z z u youcconfigure
In this section, e n the required transformation to copy the productID value
l i
ye as the payload with the StockUpdate event to the request message of the
received
p a
il FulfillWaitingOrders BPEL process.
sh
11) To create a new transformation in the SubscribeUpdateEvent Mediator component
routing rule, use instructions in the following table and associated screenshots as a
guide:
Step Screen/Page Description Choices or Values
a. composite.xml Right-click the SubscribeUpdateEvent
Mediator component icon and select
Edit.
b. SubscribeUpdateEvent.mplan Under the StockUpdate event section, in
the Static Routing rule, next to
Transform Using click the “Select an
existing mapper file or create a new
one.” icon ( ).
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
b)
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
c)
12) Save changes to the FulfillWaitingPO project including the mappings created in the
XSLT mapper file, and close the StockUpdate_To_process.xsl and
SubscribeUpdateEvent.mplan, and composite.xml windows.
b le
fer a
ans
n - t r
Deploy the FulfillWaitingPO Composite Application
a no
13) To deploy the modified FulfillWaitingPO project, perform s following
hathe ฺ steps:
) i d e
m Gu project name, and
a) In the Application Navigator, right-click the
ฺ c oFulfillWaitingPO
t
o
select Deploy > FulfillWaitingPO > toosoaserver.
h e n
y
b) In the SOA Deployment Configuration
a Dialog,
S t udclick OK.
z @ hdialog
uRequest is box is displayed, enter the Username:
Note: If the Authorization
z
e welcome1 e t
p y
weblogic andaPassword: u s and click OK.
l
hi se– Log o
t window, confirm that deployment was successful.
( s
c) In the Deployment
uthe changes n to the POApplication workspace.
z
14) Save z
all l i c e
a ye
il p
sh
Note: The FulfillWaitingPO composite application has not been modified to send the
actual request to the Fulfillment BPEL process in the POProcessing composite.
Therefore, the database data you insert and modify to create the data conditions for an
order with a waiting status are retained for a test performed in the last practice section of
this lesson.
b le
To complete these tasks, perform the following steps: fer a
a n s
Modify Database Data with Zero Quantity for Product ID SKU106 n -t r
o
n (a Gibson Les
a
In this section you reduce the quantity to zero for the product ID SKU106
Paul guitar – a very popular item) in the internal and online h
) asdatabase
store e ฺ tables. This
m product
creates the data conditions so that an order for the SKU106 i d
u causes the order to be
ฺ
stored in the database with a waiting status, andonotcofulfilled
n t G
yet.
h
a S o d e
1) To query the store quantities for theyGibson
@ LestuPaul guitar, with product ID
zu steps:thi
SKU106, perform the following s
y e z e the files application, expand the files >
a
a) In the Application u
Navigator,s select
lp >tosql folder, and open the gibson_query.sql file.
hiSources
u ( s
Application
n se
ez z lic e
y
sh ilpa
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to[1.0]” home page, click Test.
b) On the “POProcessing
z z u cen
ye li
i l p a
sh
Note: Ensure that you delete the first <ns0:item> containing product ID SKU200
along with its child elements and that the remaining <ns0:item> item element
contains a productId with SKU106 with a quantity of 1. Click Test Web Service.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: Optionally, use the links for various components Flow Trace to confirm
that the order has been inserted into the database with a waiting status.
b le
Hint: Locate and click Fulfillment BPEL Component link, and examine activities
fer a
s
in the Audit Trail or Flow windows. The callbackClient should indicate that the
an
product’s shipStatus is waiting.
n - t r
no
5) To confirm that a new order has been created with the waiting status in the
a
database tables, perform the following steps:
) has ideฺ
ฺ c om t Gworkspace
a) In the Application Navigator, in the files application u expand files >
Application Sources > sql folder, ando
h o
open n
the waitingorders.sql
e file.
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: Make a record of the ORD_ID value to match results in subsequent steps.
6) Do not close the SQL windows yet.
b le
fer a
Update the Product Quantities for Waiting Orders
a n s
r
In this section, you run the AddStockToStore composite to increase the stock-tcount in the
n as
n
internal store to see if the event publishing and subscribing logic created oworks
s a product in either
intended. At this stage there is zero quantity available for the SKU106
of the stores. ) a
h ideฺ
7) To increase the internal store quantity for the ฺ c om product
t G u ID, and send the
h o ocomposite
SKU106
e napplication to process waiting
StockUpdate event to the FulfillWaitingPO
ya Stu d
z @
orders, perform the following steps:
u this
a) On the Oracle Enterprise
y z
e Managere Web page, on the Farm_soa_domain navigator
a u s
section, click
h i lp
“AddStockToStore
t o [1.0]”.
u (s nse
e z z l i c e
y
sh ilpa
store: internal
productID: SKU106
amount: 1
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @ is page, click Launch Message Flow
u[1.0]” tResponse
h
y e z
d) On the “AddStockToStore e
Trace. a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
no
a) From the Flow Trace tree information how do you know that the StockUpdate
a
event was delivered?
) has ideฺ
b) What is the product ID value sent in the event
c m Gforuthe published
opayload
o ฺ
StockUpdate? How did you find this information
o n t using the Flow Trace
through
and component links? h
a Stud e
y
c) On the JDeveloper window,
z z u@ t h is the query in the gibson_query.sql
re-execute
window. Explain y
a e the internal
why s e store is still showing a value of 1 in the
u
( s h p secolumn?
INTERNALil(store) to
d) What
z z u product c e n was received in the SubcribeUpdateEvent Mediator component
ID
l i
ye of the FulfillWaitingPO composite application? Explain how you determined this
i l p a information.
sh e) Using the Flow Trace tree and component links, how can you determine the order
ID and the status of the order being processed?
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
In the Audit Trail for the PublishUpdateEvent,ฺ c om the
expand t G u
<payload> entry after the line
o o n
that contains the text:
y ah Stude
“Published event {http://schemas.oracle.com/events/edl/managestock}StockUpdate” :
u @ i s
y e zz e th
i l p a o us
( s h se t
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
The internal store shows a value of 1 in the INTERNAL (store) column because the
Fulfillment BPEL process has not been invoked to process the order yet. You have not
has ideฺ
yet modified the POProcessing composite to expose the service entry point for the
)
ฺ c om t Gu
Fulfillment BPEL process, and therefore have not been able to invoke the process from
h o o e n
the FulFillWaitingOrders BPEL process, which does not perform the fulfillment
processing tasks. ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
On the “Instance of FulfillWaitingOrders” page,
c m the
oexpand G u<payload> of the
o o ฺ n t
receiveInput activity.
h d e
@ ya Stu
z z u this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n activity you can view the
If you expand the <payload> of the Transform_internal_po
status of the order is waiting, andyathat it does d
tucontain the SKU106 product in the
@ s S
items:
e z zu thi
a y u s e
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
c m page
otabbed G uverify that you can see
o ฺ
b) On the Business Events page, on the Events
o and Events t
n table. Optionally, select the
h
the StockUpdate event in the Namespace d e
event and click Show Event@ ya Stu
Definition.
z z u this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
10) On the Farm_soa_domain pane, under the SOA folder click the soa-infra link.
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
4) Save the changes to the POProcessing composite project. as
) h ideฺ
Modify the Fulfillment BPEL Process to c m GOrder
oManage u Status
o ฺ
o activities t
n must be modified to check
In this section, the initial Fulfillment BPELhprocess
a received d e
the status of received orders. Therefore,
@ yorders S tu from the FulfillWaitingPO
composite with a waiting status i s
zu are notthinserted into the ORDERS (and ITEMS)
y e z e
database table a secondatime. Waiting
p s orders should already exist having been created
uFulfillment
when they are first i l
h se
received byt othe BPEL process as approved orders.
(
u cens
e z z
Theyfollowing li illustrates the final result of the changes made to
image
a
ilpFulfillment.bpel:
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
c)ez
zu licethen Switch_initialstatus activity, expand the Switch activity and
To configure
a y double click the <case> branch title to open the Switch Case settings window.
i l p
sh d) On the Switch Case settings window, set the fields as follows:
Name: status = waiting
Expression: bpws:getVariableData('inputVariable',
'payload', '/ns1:FulfillmentRequest/ns5:status') =
'waiting'
b le
fer a
ans
n - t r
a no
h a s ฺ by selecting
Note: You can use the Expression Builder to create the expression
the status element from the inputVariable and append
o m ide
) = u'waiting'.
ฺc perform
6) To create the activities inside Switch_initialstatus,
o n t Gthe following steps:
o
a) Drag a Bind Entity activity intoythe t ude= waiting> branch, and rename
ah<caseSstatus
the BindEntity_1 activityu to@ is
BindEntity_order.
e z z t h
y
b) Drag the Scope_insertorder
a u s e the Switch) into the <otherwise> branch.
(below
( s hilp simage
Use the following
e to as a guide for the two steps:
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
c o m inGtheufollowing table and
7) To configure the BindEntity_order activity, use settings
associated image as a guide:
o o ฺ n t
h ud e
Field Valueya S t
Name z @ his
uBindEntity_order
Entity variable ye
z e t
a s
orderEV
uClick the Create icon (and see the next step)
Unique Keys:
h i lp t o
u (s nse
e z z l i c e
y
sh ilpa
b le
Perform the following steps to configure the field values: fer a
ans
a) For Key Local Part, click the Browse Entity Variable icon ( ) n - t r
a
b) On the Browse Entity Variable window, expand the Variables
n> oordersEV >
has iprefix
ordersViewSDO and select the OrdID with the namespace
) d e ฺ (such as
ns9:OrdId), and click OK.
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: Selecting the Key Local Part sets the Key Namespace URI field as well.
b le
fer a
ans
n - t r
a no
) has ideฺ
9) Save the changes to the Fulfillment.bpel o
c m and
process G uthe POProcessing
project, and close their windows. o o ฺ n t
h d e
@ ya SProject tu
Deploy the POProcessinguComposite
z s
thi composite project so that we can modify the
In this section, you deploy e z
the e
POProcessing
y withuansexternal reference to the fulfillment_client interface
l p a o
exposed by the(s hi se tcomposite
FulFillWaitingPO composite
POProcessing application.
z u c e n
y ezdeploy thelimodified
10) To POProcessing project, perform the following steps:
a
ilp a) On the Application Navigator window, right-click the POProcessing project
sh name, and select Deploy > POProcessing > to soaserver.
b) On the SOA Deployment Configuration Dialog, select the “Overwrite any
existing composites with the same revision ID.” option, and click OK.
c) On the Deployment – Log window, confirm that deployment was successful. You
can ignore the three warning messages displayed.
b le
fer a
ans
n - t r
a no
To set the Create Web Service fields, perform the following steps:
has idasethe
i) In Name enter: FulfillmentService, and accept)Reference ฺ Type.
ฺ c om t Gu
h o o WSDLs
ii) In WSDL URL: Click the Find Existing e n icon ( ), and on the SOA
a Stu
Resource Browser window,yselect Resourced Palette from the pull-down menu,
z z u@ >tsoaserver
expand Application Server
h is OK.> SOA > POProcessing, select
e
fulfillment_client
a y s eand click
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @ is
u thFulfillmentService
y e z
14) To create the activities that invokes the
e in the
FulfillWaitingOrders
p a u s
BPEL Process, perform the following steps:
i l t o
u sh nse
a) On the(composite.xml file, double-click the FulfillWaitingOrders BPEL
z lic
ezProcess icon. e
y
sh ilpa b) On the FulfillWaitingOrders.bpel Diagram window, after the
Transform_internal_po activity drag an Invoke and Receive activity inside the
Scope_getorder nested in the FlowN activity. Use the names and sequence listed
in the following table:
Activity Type Activity Name Purpose
Invoke Invoke_fulfillment To invoke the
FullfillmentService to process
orders with a waiting status
Receive Receive_fulfillment To obtain the response from the
FulfillmentService.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
z
ye use activity, perform the following steps:
15) To configure thelp a
Invoke_fulfillment
i e to
( s h
a) On u
z z c e ns
the composite.xml window, double-click the Invoke_fulfillment activity.
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
In the Invoke settings window, use h o
theofollowinge n to set the fields:
steps
d
ya Stu by clicking the Browser
z @
i) Set Partner Link to FulfillmentService
is FulfillmentService in the Partner Link
uselectingththe
Partner Link icon zand
Chooser. pay
e se
il selecting u
to the partner link the Operation is set to process.
Note:
( s hAfter e
ii)zu
z c e ns section, next to Input click the Automatically Create Input
In the iVariables
ye Variable l icon, and in the Create Variable window accept the default name and
i l p a select the Local Variable option:
sh
Note: You must create a local variable so that each FlowN branch has its own
copy of this variable, when multiple waiting orders are being processed.
16) To configure the Receive_fulfillment activity, perform the following steps:
a) On the composite.xml window, double-click the Receive_fulfillment activity.
b le
fer a
ans
n - t r
a no
) h as eฺ
On the Receive settings, use the following steps
o mto set G id
the fields:
u
i) Set Partner Link to FulfillmentService c
oฺ by clicking
n t the Browser Partner Link
h o e
a Stuind the Partner Link Chooser.
icon and selecting the FulfillmentService
Note: After selecting uthe
y
@ hilink
partner verify that the Operation is set to
z s
processResponse.
a y ez se t
i lp section,
ii) In the Variables t o u next to Input click the Auto-Create Variable icon,
and(s
h se Variable window accept the default name and select the
in the Create
z u e n
yez lc
Local iVariable option:
i l p a
sh
Note: You must create a local variable so that each FlowN branch has its own
copy of this variable, when multiple waiting orders are being processed.
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a Note: The additional transformation is required to populate the
sh Invoke_fulfillment_process_inputVariable from the internalOrder variable.
18) To configure the Transform_to_fulfillment activity perform the following steps:
a) Double-click the Transform_to_fulfillment activity.
b) On the Transform window, in the Transformation tab page:
i) In the Source settings click the Create icon and select the internalOrder
variable.
ii) For Target Variable, select the Invoke_fulfillment_process_inputVariable
from the pull-down menu.
iii) For Mapper File: Set it to xsl/Transformation_fulfillment, and
click the Create Mapping icon.
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
Note: When you click the Create Mapping
h o o icon,ethen settings are saved and the
Transformation_fulfillment.xsl y a Stufile d is created and opened in the
XSLT Mapper window. u@ is
e z z t h
a y s e
19) To configure the Transformation_fulfillment.xsl,
u perform the following
steps: l p
hi se t o
( s
u the order nelement from the Source column to the FulfillmentRequest
a) z z
Drag
l i c e
a ye element in the XSLT File column:
il p
sh
b) On the Auto Map Preferences window, accept the default settings and click OK.
c) Select File > Save to save the XLST Mapper settings and close the
Transformation_fulfillment.xsl window.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
e changes
21)ySave the li to the FulfillWaitingPO project and close the related windows.
ilp a
sh Deploy the Completed FulfillWaitingPO Composite Application
22) To deploy the modified and completed FulfillWaitingPO project, perform the
following steps:
a) On the Application Navigator window, right-click the FulfillWaitingPO project
and select Deploy > FulfillWaitingPO > to soaserver.
b) On the SOA Deployment Configuration Dialog, select the “Overwrite any
existing composites with the same revision ID.” option, and click OK.
c) On the Deployment – Log window, confirm that deployment was successful.
b le
fer a
ans
n - t r
a no
) has ideฺ
b) On the “AddStockToStore [1.0]” page, click
c m Gu
oTest.
o o ฺ n t
h
a Stud e
y
z z u@ this
a y e s e
u
( s hilp se to
c)ez
zu licen
On the “AddStockToStore [1.0]” Test Web Service page, scroll down to the
a y Request tab Input Arguments section, with the Tree View mode selected enter the
i l p
sh following payload values, ensuring you use the correct case-sensitive string
values:
store: online
productID: SKU106
amount: 1
b le
fer a
ans
n - t r
a no
5) Before you examine the Flow Trace through the Response tab, return to the
JDeveloper gibson_query.sql window, to check that the AddStockToStore has
has ideฺ
incremented the quantity to one in the ONLINE (store) column, by clicking the
)
ฺ c om t Gu
Execute Statement icon. Use the following image as a guide:
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
c o m Gu
b) On the Flow Trace page, in the Trace tree
o ฺ n t refresh the page until you
o and ifeneeded
h
a Stud
confirm the process flow has completed.
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
iii) On the “Instance Detail Of ShippingRules” page, observe that the shipChoice
is set to next_day, resulting in the FedEx carrier being selected as the
shipping company. b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
Question: Wherey z
e was theseshipChoice value next_day set?
i a u is set in the FulfillWaitingOrders BPEL process to
lpThe shipChoice
o
Answer:
h
(s waiting t
z expedite
u e n seorders as quickly as possible. However, if you examine the
lic data closely, you will find that there is no record of the shipping
yez database
i l p a choice or method saved for the original order.
sh Note: This oversight can be seen as design problem or just that the business
decided that a waiting order, when fulfilled, should be shipped as soon as
possible. Ultimately the implementation depends on the business rules. In this
case, recording the ship choice for a waiting order was not conceived in the
course application design, so it was easier to choose the path to expedite
waiting orders as quickly as possible (just an afterthought). Hopefully, this
discussion stimulates your thinking about your composite application designs.
b le
fer a
ans
n - t r
a no
8) In the waitingorders.sql window, click the Execute s ฺ icon to confirm
haStatement
that no rows are returned, indicating that there are
o m ) u ide to be fulfilled.
no orders waiting
Use the following image as a guide:
o o ฺc nt G
y ah Stude
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
ilp a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
m Gu
coDATE_SHIPPED
Note: The order displayed should show thatothe
o ฺ n t value is now set,
h
a STATUS
and no longer a null value, and that the e
d contains the value
ucolumn
y S t
completed.
z z u@ this
y
10) In the JDeveloper window,
a e to prevent
s e updating the original waitingorders.sql
p modified u
( s hilthe
file on disk with
e to query, perform the following steps:
a) To
z z ns
uclose thecewaitingorders.sql window, click the close (X) icon on the tab.
ye l i
il p a
sh
Note: Oracle BAM Active Studio enables creation of real-time business dashboards,
which provide a dynamic real-time visual presentation of business process activity. BAM
Web applications must be accessed and used in the Internet Explorer Web browser.
b le
fer a
The following image illustrates the key changes to the POProcessing composite
ans
application to support business activity monitoring:
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
lp
himodifying
Your tasks involve tothe POProcessing composite in the following ways:
( s
u a cBAM
• Creating
e
nsAdapter in the POProcessing composite assembly model that is
z z e
li EnrichPO Mediator component
a y•e wired to the
sh ilp Modifying the transformation from the RoutePO Mediator component to acquire
an order ID from the database ORDER_SEQ sequence before the order is routed to
the EnrichPO Mediator component.
Note: Obtaining the unique order ID here enables the entire POProcessing
application to track changes to the same order in the BAM Server.
• Creating a transformation for the new wire on the EnrichPO Mediator component
to send initial order data to the BAM Server though the BAM Adapter.
• Modifying the ApproveCCOrderBPEL component with a sensor for the
outputVariable to monitor changes to order data through a BAM Sensor Action.
• Modifying the Fulfillment BPEL component to remove an Assign activity that
obtains an order ID from a database sequence. The order ID obtained from
executing the XSLT transformation between the RoutePO and EnrichPO
components. A variable sensor with a BAM Sensor Action is created for
monitoring order status changes to the inputVariable.
• Adding a composite sensor and a BPEL process activity sensor that use a
Database sensor action, to enable viewing sensor data with Oracle Enterprise
Manager.
d)
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye)e li
i l p a
sh
3) After getting the confirmation that your deployment plan has been successfully
created, to check that the soa_server1 is the target specified for the new
deployment plan, perform the following steps:
4) To restart your OracleBamAdapter after updating its deployment so that the run-time
environment activates the changes, perform the following steps:
a) Click the Deployments link in the Domain Structure pane.
b le
fer a
ans
n - t r
a no
d) On the Summary of Deployments page, in the Deployments
) h as table,e ฺ click the Next
c o m Guidentry.
link (about four times) until you see the OracleBamAdapter
h o oฺ ent
y a Stud
z z u@ this
a y e
e) To restart the OracleBamAdapters e component, on the Deployments Summary
lp
page, in the iDeployments u
o table select the checkbox next to the OracleBamAdapter
t“Servicing
(
entry ands hclick s e
Start > all requests”
z u e n
yez lic
i l p a
sh
5) On the WebLogic Administration Server Console page, click the Log Out link, and
close the Web browser page or window. b le
fer a
an s
n - t r
a no
6) You can close the Web browser page with the WebLogic
) as Administration
hServer e ฺ
Console or enter the URL http://localhost:7001/emm
o to access i d
uOracle Enterprise
Manager. o ฺ c n t G
h o d e
@ ya Stu
z z u this
a y e s e
u
( s hilp se to
z z u cen
ye li
ilp a
sh
Note: To import the BAM Data Object and BAM Report (Dashboard) definitions into the
BAM Server, you use a script called D:\labs\files\bam\import_tobam.bat
to execute the BAM ICommand command line tool. e
a b l
To complete these tasks, perform the following steps: s fer
- t r an
Start the BAM Server
n on
a
In this section you start the BAM Server instance.
) h as eฺ
1) To start the BAM Server instance, which is neededm
o id Connection,
to create a BAM
u
perform the following steps: c
oฺ ent G
h o
a) On the Desktop, double-click thea
y “Start BAM
S t udServer.bat” icon.
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye Note: Wait li until the BAM Server is started. This could take from three to several
ilp a minutes depending on the resources on your machine. Wait until you see a line in
sh the BAM Server window containing text similar to the following:
D:\> cd D:\labs\files\bam
D:\> import_tobam.bat
Enter Password: welcome1
Note: The colors of the command prompt window may be different from what
you have on your system. The colors were reversed to capture the above
screenshot.
c) In the command window, you can observe that a Data Object called Orders is
created in a BAM Server folder called /Training/POProcessing, and that
a Report (a Dashboard), called PO Order Report is created in a folder called
/public/Report/Training/POProcessing.
d) Close the command prompt window.
Components are:
i) By using the Active Viewer you can view and run real-time reports.
ii) By using the Active Studio you can create, edit, and delete reports.
iii) By using the Architect you can create and manage Data Objects and their data
caches.
iv) By using the Administrator you can do BAM Server administration tasks.
Note: You use all except the Administrator tool.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
c) In the Tab Browsing Settings dialog box, make the following changes:
i) Select the “Always switch to new tabs when they are created” option (the
third option, from the top of the window)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
iii) Click h
s ilp e to
OK.
(
u and view s Orders Data Control definition, perform the following steps:
nthe
5) To z z
locate
li c e
a ya)e On the Oracle BAM start page, click Architect.
sh ilp Note: If you altered the Tab Browsing Settings window options, then the
Architect opens a new tab page, otherwise Internet Explorer opens it in a new
window. This would be the same for the other tools as well.
b le
fer a
ans
n - t r
a no
c) On the Oracle BAM Architect page, under the Folders pane in the Data Objects
pane click the Orders link.
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
e) On the Oracle BAM Architect Orders data object )Layout haspage, i d e ฺ can view (and
you
ฺ c om
edit) the data object structure. In this case, you view the
t G u
structure made of various
columns for information about order data.
h o o Someeofnthe Tip Text columns provide
a brief explanation for data itemsy a Stnot
that may udbe intuitive. To view the contents
click the Contents link. u@ is
e z z t h
a y u s e
( s hilp se to
z z u cen
ye li
i l p a
sh
g) Do not close this Architect page, because you return to this page later in this
lesson’s practice to view values written to this data object by the POProcessing
composite application, after you make the necessary modifications.
b le
6) To locate and view the PO Orders Report Dashboard definition, perform the f er a
an s
following steps:
- t r
a) Return to the Oracle BAM start page, in either a separate Webn on window or
browser
another Web browser tab page. Click Active Studio. s a
) a
h ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
b) z z
On uthe Oraclec e n
BAM Active Studio page, to locate the public (shared) report that
e l i
i lpa y has been designed to monitor the Orders data object information, click the Shared
Reports tab.
s h
c) On the Oracle BAM Active Studio Shared Reports page, use the following steps
to navigate to the Training/POProcessing folder containing the report:
i) On the right-hand pane, double-click the Training entry.
Note: Above the right-hand pane, there is pull-down menu that can be used to
navigate up through the folder structure you are in.
d) On the Oracle BAM Active Studio Shared Reports page, to view the design of the b le
report (also called a dashboard), double-click the PO Orders Report entry, fer a
in the Report Name column. ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
ureport page
h isuse the Orders data object as the source of
Note: All sections of z the
e (insreal-time)
e t
data for results a
p y
displayed u by the report when viewed in the Active
l
i Studio.
hdata
View or Active o
t All charts and data are updated dynamically with the
changes
u ( sto n s
as e
it arrives. The POProcessing Orders report has the following
z z li c e
a ye three sections:
i l p i) The top section contains an updating list of order rows, which is sorted by
sh ascending Order ID, and updated as the data is feed into the Orders data object
is populated with data.
ii) The bottom-left pane displays a three-dimensional pie-chart showing the total
sales, percentage of sales by payment type, order paid by credit or by using
PayPal.
iii) The bottom-right pane displays a three-dimensional bar-chart showing the
status of orders and the number of orders with a given status.
f) On the Oracle BAM Active Studio Shared Reports page, close the PO Orders
Report tabbed page, or Web browser window containing the page.
Note: Instead of viewing the dashboard in the Active Studio, you use the Active
Viewer to view the run-time display of this report at an appropriate time.
8) To configure the BAM Connection, on the BAM Connection Wizard window use
instructions in the following table and the associated screenshots as a guide:
Step Screen/Page Description Choices or Values
a. Name Connection Name: BAMServerConnection1
Accept the default name, and click Next.
b. Connection BAM Web Host: localhost
BAM Server Host: localhost
HTTP Port: 9001
JNDI Port: 9001
Username: weblogic
Password: welcome1
Click Next.
b le
fer a
ans
n - t r
a no
b)
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
no
9) In the Application Navigator, under the Application Resources pane, verify that new
a
section under the BAM node. ) has ideฺ
BAM Server connection (BAMServerConnection1) is listed in the Connections
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
10) Do not close the main Oracle BAM Internet Explorer page, because you will return to
this page and start the Active Viewer application when ready to see the results of the
POProcessing composite application sending data to Oracle BAM.
You also modify the Routing Rule between the RoutePO and EnrichPO Mediator
components to obtain the next order ID from the ORDER_SEQ in the SOADEMO schema
in the Oracle Database server instance, and delete the Assign activity in Fulfillment that
performs the same task.
Note: The reason why you obtain the order ID from the database sequence earlier in the
process is that you use the order ID for the unique order ID to be stored in the BAM Data
Control Object that receives the data sent to the BAM Server through the BAM Adapter. b le
This enables the BPEL Sensor to send updates to the same order to modify the fer a
appropriate in memory information maintained by the BAM Server, enabling the BAM ans
dashboard to dynamically track changes to the order status in real-time. n - t r
a no
To complete these tasks, perform the following steps:
) has ideฺ
1) In the JDeveloper window, if the POProcessing o
c m Gu file is not open
composite.xml
ฺ t Navigator, expand the
then ensure the POApplication is selectedoinothe Application
n
h
a folder e
uddouble-click composite.xml.
y
POProcessing project and SOA Content
S tand
z z u@ this
Modify the POProcessing
a y e Composite
s e Assembly Model
u
( s h lp the
In this section, you iadd
e to Adapter and wire the EnrichPO Mediator component to
BAM
z z u cens
the BAM Adapter.
li
2) yInethe POProcessing composite.xml window, drag the BAM Adapter component
a
ilp from the Component Palette (under Service Adapters) into the External References
sh column in JDeveloper.
Note: The drag action causes the Adapter Configuration Wizard to be displayed.
z @
u this Select the Enable Batching option.
e z Click Next.
f. JNDI Name pay u se JNDI Name: eis/bam/soap
( s hil se to Click Next.
g. z u cen
Finish
z Click Finish.
ya)e li
ilp a
sh
b le
c) fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh d)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
Note: The Upsert operationz @
u insertsthaisrow to the Data Object, if doesn’t exist
otherwise it updatesy z
ethe DatasObject
e row based upon the specified key. The
a u
s hilp soption
Enable Batching
server (unavailable. e toallows messages to be captured even when the BAM
When the BAM server becomes available, messages
z z u while
generated c e nthe server was down are sent.
ye l i
i l p a f)
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
6) Save the changes to the POProcessing project.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@
u this
b) In the PurchaseOrder_To_order.xsl
z window, select and delete the line
mapping the ID element
y z
e in the esource column to the orderId in the target column.
a u s
h i lp
The image shows right-clicking
t o the line and clicking Delete.
u (s nse
e z z l i c e
a y
i l p
sh
b le
fer a
Note: Ensure that you drop the sequence-next-val function in a blank ans
space and not on an existing line. n - t r
n o
d) In the PurchaseOrder_To_order.xsl window, drag a
s the right-hand edge
handle of the sequence-next-val function onto h a
) uide
the orderIdฺ in the target
column. Use the following image as a guide.o m
o o ฺc nt G
y ah Stude
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d
ya Stu window, verify that your mappings
@
g) In the PurchaseOrder_To_order.xsl
zu this
y z
match the followingeimage:
e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b) In the Fulfillment.bpel Design window, near the start of the BPEL process
flow, expand the Scope_insertorder activity (which is inside the b le
Switch_initialstatus activity). Use the following image as a guide: fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
u cen
Inzthe Fulfillment.bpel
c)ez
y li Design window, inside the Scope_insertorder
i l p a activity, right-click the Assign_orderid activity and click Delete.
sh
f) Save the changes to the Fulfillment BPEL Process and the POProcessing
composite project.
g) Close the Fulfillment.bpel window.
9) To send the appropriate order data to the BAM Adapter, edit the EnrichPO Mediator
component and create a transformation for the routing rule with the
“OrdersBAMAdapter::writetoBAM” target operation, perform the following steps:
b) In the EnrichPO.mplan window, locate the routing rule (most likely the last
one in the list) with the “OrdersBAMAdapter::writetoBAM” target operation, and b le
fer a
click the “Select an existing mapper file or create a new one.” icon ( s
) next to
an
Transform Using field.
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u Map h s box, select the Create New Mapper
idialog
c) In the Request Transformation
z t
e defaultsefile name provided and click OK.
File option, accepta ythe u
h i lp t o
u (s nse
e z z l i c e
a y
i l p
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u in the
To create the mapping shown h s image, use the following table of basic
iabove
z t
e as yoursguide:
e
a y
one-to-one mappings
u
hilp se to (mapped to) XSLT File: OrdersBAMAdapter.wsdl
Source:sEnrichPO.wsdl
(
z z u cen
customerId _Customer_ID
ye orderId l i _Order_ID
i l p a payMethod _Payment_Type
sh shipMethod _Shipping_Choice
Status _Status
For the remaining mappings (qty and itemTotal) perform the following steps:
i) In the source column, expand the items > item nodes.
ii) Drag a sum Mathematical Function into the middle column, and map the qty
source element to the left-side of the sum function, and map the right-side of
the sum function to the _Item_Count element in the target column.
iii) Drag another sum Mathematical Function into the middle column, and map
the itemTotal source element to the left-side of the sum function, and map
the right-side of the sum function to the _Order_Total element in the
target column.
iv) Save the mapping changes to the
order_To__Orders2Collection.xsl file, and close the
order_To__Orders2Collection.xsl window.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
a n s
c) In the “Select a Report – Webpage Dialog,” in the Look In pull-downn r
-tmenu,
select Shared Reports, to navigate to the Shared n o
a
Reports/Training/POProcessing folder, double-click
) h as eฺthe Training
folder, then the POProcessing folder, then m
o select the PO
u idOrders Report
entry and click OK. c
oฺ ent G
h o
a Stud
y
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
a Active
yBAM d
tuViewer page, because you return to
Note: Do not close this Oracle @
u asthyou s S
i begin to initiate order processing by
this window to monitor
e z zactivity
y composite
initiating POProcessing
a u e
s application tests in Oracle Enterprise Manager.
l p
i et o
Initiate auTest(shof the
ns POProcessing Composite Application
z z c e
esection youli initiate a test instance of the POProcessing composite application and
In this
a y
sh ilpview the results in real-time in the BAM Active Viewer.
Note: For the best results to make the best of your screen space consider resizing the
BAM Active Viewer window so that you can see the Active Viewer most of the time
while initiating and running tests in Oracle Enterprise Manager.
3) On another Web browser window or tabbed page, if you do not have Oracle
Enterprise Manager open, enter the URL http://localhost:7001/em and login with the
Username: weblogic and Password: welcome1.
4) On the Oracle Enterprise Manager home page, to initiate a test to process an order
perform the following steps:
b le
fer a
ans
b) On the “POProcessing [1.0]” page, click Test > ReceivePO.
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y z
e you created
e a second entry point (exposed service) for the
Note: Remember a that
u s
POProcessing
s h ilpcomposite
e to to enable Fulfillment to be initiated when a StockUpdate
event (
u occurs. ns is page.
This why you now have two entry points to test from the
z z li
POProcessingc e home
a ye
i l p
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
u patient
Note:zBe
z c e n the process is initiated, this may take a couple of minutes.
while
ye l i
i l p a
6) On the Web browser page, wait for the Response tab page to be refreshed with the
sh Launch Message Flow Trace link displayed.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
uyou take h itosclick the BAM Active Viewer window you
Note: Depending on howzlong t
eupdatedsase it arrives or after it has already arrived. The
a
might see the data beingy u
h
following changesi lpin BAMtoActive Viewer report are displayed:
( s
u“General s e
n Information” pane contains a row for the order just
a) z z
The
l i c eOrder
a ye processed. You can confirm that the values reflect the data you used in the test.
i l p
sh b) The “Total Sales by Payment Type” pane is updated to contain the single order
indicating that 100% of the orders have been paid by credit, including the order
total as well.
c) The “Count of Orders by Status” pane is also updated to show a bar height of one
for an order status of initial.
8) On the Oracle Enterprise Manager “POProcessing [1.0]” Response tab page, wait
about ten seconds before you click the Launch Message Flow Trace link to view the
Flow Trace.
b. The BAM Active Viewer continues to display the order status as initial because the
POProcessing composite application has not sent additional messages to the BAM Server
to indicate the changes to the order have been made. Therefore, the data in Orders Data
Object in the BAM Server has not been modified since the initial data was sent by the
EnrichPO Mediator activity.
b le
fer a
ans
n - t r
a no
Note: If you do not have the Order Data Object Contents
) h as displayed,
page
eฺ you can
access this page by performing the following steps:m
o t Gu i d
a) On the Oracle BAM start page, click o o ฺ c
Architect. n
h d e
a Stupane expand the Training folder
b) On the BAM Architect page, inythe Folders
z
and then click POProcessing
@
u tfolder.
h is
y e z e
a u s
c) On the BAM
h i lp
Architect
t page
o under the Folders pane click the Orders link in the
(s pane.
Data Objects
u n se
z e
lic pane displaying the General page for the Orders Data Object,
a yd)ezOn the right-hand
click the Contents link.
i l p
sh 11) Optionally, before you close the Oracle BAM Architect you might notice there is an
Edit Contents button. If you click Edit Contents you are able to modify the data in the
Orders Data Object and view the change reflected in the Active Viewer. If you make
a change then reinstate the original values supplied. For example, you might want to
modify the Payment Type value from credit to paypal.
Note: If you changed this value please reset it to the value credit before you close
the Architect page.
12) Close the Oracle BAM Architect window.
a) On “POProcessing [1.0]” Test Web Service Request page, the scroll down Input
Arguments section, with the XML View mode selected replace the existing XML
text with the contents of the file D:\labs\files\xml_in\po-small-
ipod.xml, and make the following changes to the data before you click Test
Web Service.
b le
i) Change the custID value to 1 fer a
ans
ii) Change the payOption value to paypal (in lowercase text)
n - t r
no
iii) Change the shipChoice to next_day (in lowercase text)
a
Use the following image as a guide: ) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y z
e the following
e changes to the POProcessing Orders report
Note: You should notice
a u s
page:
( s hilp se to
z
a) The
z u“Generalc e n Information” pane now contains an additional row (two
Order
l i
ye rows) for the orders being monitored.
i l p a
sh b) The “Total Sales by Payment Type” pane is updated to contain the fact that over
94% of the orders have been paid by credit and approximately 5% of the
orders have been paid by using paypal.
c) The “Count of Orders by Status” pane is updated to show a bar height of two for
the two orders that have the initial status.
b)
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
c)
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) h as eฺ
e)
c o m Guid
h o oฺ ent
y a Stud
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om dialog
Note: Although you should not see the following
t G u the “Edit Sensor
box,
h o o if you
Action error” message window is displayed
e nattempt to create a BAM
ya Stu
Sensor Action from Create Variable Sensor d
window.
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh 4) To save the variable sensor created for the ouputVariable, perform the following
remaining steps:
a) In the Edit Variable – ouputVariable window, click OK.
b le
fer a
5) Save the changes to the ApproveCCOrder BPEL process window. ans
n - t r
noProcess
Create a BAM Sensor Action in ApproveCCOrder BPEL
a
a s
h ideฺ
In this section, you use the Sensor Actions folder in the JDeveloper Structure window for
)
the ApproveCCOrder BPEL process to create the BAM Sensor Action that is associated
with the VariableSensor_outputVariable. ฺ c om t Gu
h o o e n
6) To create a BAM Sensor Action forythea Stu d
VariableSensor_outputVariable variable
@ his
sensor, perform the followingusteps:
z
e z e t
a y u s
a) Ensure that the ApproveCCOrder.bpel Diagram window is selected and
displayed.hilp t o
( s
u JDeveloper s e
n window, locate the Structure pane window in the bottom left
b) Inzthe
z l i c e
a ye corner, you must first click the Sensor Actions folder, and then right-click the
il p Sensor Actions folder to select Create > BAM Sensor Action.
sh
b le
fer a
ans
n - t r
no
c) Note: The Enable Batching option is selected by default.
a
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
In the SensorAction_approveccorder_to_bam.xsl window, in the
Source column expand the actionData > payload > variableData > data > order >
items > item elements to reveal all the fields to be mapped to elements in the
_Orders2Collection > _Orders2 in the target as described in the following table:
Map Source: actionData > payload Target: _Orders2Collection > _Orders2
> variableData > data > order
a. customerId _Customer_ID
b. orderId _Orders_ID
c. payMethod _Payment_Type
d. shipMethod _Shipping_Choice
e. orderTotal _Order_Total
f. Status _Status
g. Item > qty To sum function in the middle column,
whose result is mapped to the
_Item_Count
9) Optionally, in the Application Navigator, if you expand the SOA Content > bam >
Training folder you can see the SensorAction XSL file and related JCA Adapter
configuration files added to the project.
b le
fer a
ans
n - t r
a no
) has ideฺ
Use instructions in the following table to createฺ c omsettings
the t G u
shown:
h o o e n
Step Screen/Page Description Choices ya or S tu
Valuesd
Fulfillment.bpel u@ s
a.
e z z Click
e ththeiscope.
process
Variables icon ( ) on the main Fulfillment
Variables ilpa
y usSelect the inputVariable in the Variables table, and
b.
t o
u (sh nse click the Edit icon ( ).
z
c. eEditz Variable
li c e
–
a y inputVariable Click the Sensors tab, and click the Add icon ( ).
il p
sh d. Create Variable Sensor Name: VariableSensor_inputVariable
Target: Click the Variable XPath Builder icon ( ).
e. Variable XPath Builder Expand the Process > Variables folder, select
inputVariable and click OK.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
Note: The Enable Batching option is selected by default.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z u cen
In thezSensorAction_fulfillorder_to_bam.xsl window, in the Source
y e
column l
expand
i the actionData > payload > variableData > data > FulfillmentRequest
i l p a elements to reveal all the fields to be mapped to elements in the _Orders2Collection >
sh _Orders2 in the target as described in the following steps:
a) Map the orderId element from the source column to the _Order_ID element
in the target column.
b) Map the status element from the source column to the _Status element in
the target column.
b le
fer a
an s
n - t r
a no
s ฺ
htheaAssign
b) In the Fulfillment.bpel Design window, edit
m ) i d eactivity and create
o tvalue
a copy operation that assigns the shipStatuscelement
ฺ u
G from the
outputVariable to the status element in
h o e n
othe inputVariable. Use the following
image as a guide: y a t u d
u @ i s S
z
ez se t h
a y u
h i lp t o
u (s nse
e z z l i c e
a y
i l p
sh
b)
b le
d) fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
e)
b le
fer a
an s
n - t r
a no
has ideฺ
g)
)
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a20) In the Create Activity Sensor window, which should still be open, to create configure
sh the Sensor Action for the callbackClient activity sensor, use instructions in the
following table and associated screenshots as a guide:
Step Screen/Page Description Choices or Values
a. Create Activity Sensor Under the Sensor Actions section, click the Add
icon ( ).
b. Sensor Action Chooser First select the Sensor Actions folder, then right-
click Sensor Actions and select Create > Sensor
Action.
c. Create Sensor Action Name: SensorAction_to_database
Publish Type: Database
Accept all other settings, and click OK.
d. Sensor Action Chooser Ensure the newly created
SensorAction_to_database entry is
selected, and click OK.
e. Create Activity Sensor Verify that the sensor settings are as instructed to
configure from previous steps and click OK.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
b) zzu c e n
ye l i
i l p a
sh
b le
fer a
ans
d) n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
f) y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
d
ya Stuentry does not appear, try clicking
Note: If the ActivitySensor_fulfillment_callback
z @
u this
the refresh icon ( ) on the
y e z “Fulfillment.bpel
e – Structure” window toolbar.
22) Save the changes i l p t o us
toathe Fulfillment.bpel process file and close the
h
(s nsewindow.
Fulfillment.bpel
z z u c e
e l i
y a Composite Sensor for the ReceivePO Exposed Service
Create
sh ilpa
In this section, finally create a composite sensor, which can only use a database sensor
action. This sensor uses an XPath expression to track the payment type used for each
order received by the composite application.
23) If the POProcessing composite.xml file is not already open, on the Application
Navigator, under the POProcessing project folder, double-click the
composite.xml file.
24) To create the composite sensor for the ReceivePO exposed service, use instructions in
the following table and associated images as a guide:
Step Screen/Page Description Choices or Values
a. composite.xml Right-click the ReceivePO exposed service
icon, and click Composite Sensors.
b. Composite Sensors: ReceivePO Click the “Create new Composite Sensor” icon
( ).
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
d) a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
f)
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
25) In the composite.xml window, verify that the sensor icon appears in the
ReceivePO exposed service icon. Use the following image as a guide:
26) Save the changes to the POProcessing composite.xml file and project.
c o m Guid
h o oฺ ent
y a Stud
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye
d) Close theliJDeveloper application.
i l p a
sh Initiate a Test of the POProcessing Composite Application
In this section you initiate an instance of the POProcessing composite application using
the Test Web Service page and view the results in real time in the BAM Active Viewer.
2) On another Web browser window or tabbed page, if you do not have Oracle
Enterprise Manager open, enter the URL http://localhost:7001/em and login with the
Username: weblogic and Password: welcome1.
3) On the Oracle Enterprise Manager home page, to initiate a test to process an order
perform the following steps:
b le
fer a
ans
b) On the “POProcessing [1.0]” page, click Test > ReceivePO.
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@
zuTest Web h is Request page, the scroll down Input
c) On “POProcessing e z
[1.0]” t Service
e View mode selected replace the existing XML
a
Arguments section,
p y with u
the s
XML
s
text with
( hilcontents
the e tofothe file D:\labs\files\xml_in\po-large-
s click Test Web Service.
z z u cenand
guitar.xml,
ye li
i l p a d) On the Web browser page, wait for the Response tab page to be refreshed with the
sh Launch Message Flow Trace link displayed.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
lp
hiobserve tofollowing changes in the BAM Active Viewer:
( s
You should
u cens e the
z z
a ye i) In theliGeneral Order Information section, a new order row is added as the last
row in the table, with the initial status 5,200.00 as the Order Total.
i l p
sh ii) In the “Total Sales by Payment Type” section, percentages should have
changed based on an increase in the number of credit card payments.
iii) In the “Count of Orders by Status” section, the bar size representing the
number of orders with an initial status is increased to a value of three.
f) To the access Worklist application and reject the order, which is waiting for
human intervention, perform the following steps:
i) On a new Web browser page, enter the URL:
http://localhost:8001/integration/worklistapp.
iii) On the BPM Worklist My Tasks tab page, click the new task appearing in the
Inbox, and from the Actions menu, click Actions > Reject.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
o
iv) On the Information page, click OK.
h o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a v) Do not log out from the Worklist application, and do not close the Worklist
sh application window or tabbed page.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
@ is in the BAM Active Viewer:
u thchanges
You should observe thezfollowing
y e z e section, in the last row in the table has its
i) In the Generala u s
Order Information
status
s ilp eto tthe
hmodified o value rejected.
( nsSales by Payment Type” section, there is no change.
ii)zu
z c e
In the i“Total
ye l
i l p a iii) In the “Count of Orders by Status” section, an additional bar is created for the
sh rejected status with a size of one, and the bar with the initial status
has a size of two.
4) On the Web browser window or tabbed page containing the Oracle Enterprise
Manager Test Web Service Response page, to resubmit the same order and this time
approve the order in the Worklist application, by performing the following steps:
a) Oracle Enterprise Manager Test Web Service Response page, click the Request
tab.
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
You should observe the following changes in the BAM Active Viewer:
i) In the General Order Information section, a new row is added as the last row
in the table with the status value initial.
ii) In the “Total Sales by Payment Type” section, there is an increase in the
percentage and total values for the credit section of the pie-chart.
iii) In the “Count of Orders by Status” section, the bar with the initial status
has its size increase to three. The rejected status bar size is still a value of
one.
e) Return to the BPM Worklist My Tasks tab page click the Refresh icon (next to the
Actions menu).
g) On the BPM Worklist, click the Logout link and close the BPM Worklist Web
page.
b le
fer a
ans
n - t r
a no
h a s theฺ BAM Active
h) Return to the Web browser window or tabbed page containing
) uide
Viewer, to watch or observe the changes to the dashboard.
m
o
ฺc nt G
o o
y ah Stude
z z u@ this
a y e s e
u
( s hilp se to
z z u cen
ye li
i l p a
sh
You should observe the following changes in the BAM Active Viewer:
i) In the General Order Information section, a new row is added as the last row
in the table with the status value approved.
ii) In the “Total Sales by Payment Type” section, there is no change.
iii) In the “Count of Orders by Status” section, a new bar with a size of one is
added for the approved status. The bar with initial status is decreased
to a size of two. The bar with the rejected status remains a size of one.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
yaobserveSthe d
tu following changes in the BAM
@
Within a minute or so youushould s
Active Viewer: e z z
e thi
p a y us
i l
i) In the General
hcompleted.Order
t o Information section, the last row status updated with the
( s
u cens
value e
z z
a ye ii) In theli“Total Sales by Payment Type” section, there is no change.
i l p iii) In the “Count of Orders by Status” section, a new bar is added with a size of
sh one for the completed status. The bar with the approved status is
removed. The bar with the initial status remains a size of two, and the bar
with the rejected status remains a size of one.
b) On the “POProcessing [1.0]” Flow Trace page, click the “Show this panel” icon
next to the Sensors heading to expand that section.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh c) On the “POProcessing [1.0]” Flow Trace page, under the expanded Sensors
section, a row for the composite instance appears. In the Value column click the
“View XML” link.
6) To view the activity sensor information published to the Database Sensor Action for
the Fulfillment BPEL process callbackClient activity, perform the following steps:
a) On the “POProcessing [1.0]” Flow Trace page, in the Trace tree, click the b le
Fulfillment BPEL Component link. fer a
ans
Note: If the process Flow Trace tree does not resemble the supplied image, wait
n - t r
several seconds and click the refresh icon at the top-right of the page before you
no
continue. Clicking the refresh icon may be required more than once to view the
a
complete Flow Trace.
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh
b) On the “Instance of Fulfillment” page, click the Sensor Values tab link.
b le
fer a
an s
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
s h ilp e to
d) In the
u ( ns you can view the sensor data and confirm that the
Details window,
z z c e
a ye shipStatusli contains the text completed, and carrier contains the text UPS.
Close the Details window.
i l p
sh
e) Close the Details window and the Flow Trace window.
b le
Note: The result should display a zero value in the ONLINE or INTERNAL f er a
an s
columns for the row with PROD_ID=SKU106. (Refer to the JDeveloper
- t r
instructions for a screenshot of the data values). If the ONLINE
n onand
a
INTERNAL columns do not have a zero value for thesPROD_ID=SKU106
then enter the following command at the SQL> ) a
h ideฺ
prompt:
ฺ c om t Gu
h o o
SQL> @d:\labs\files\sql\gibson_update.sql
e n
ya Stu d
iii) Optionally execute the @d:\labs\files\sql\gibson_query.sql
@ is been stored in the in the ONLINE or
u valuethhas
again to confirm thezzero
INTERNALacolumns y z
e forsthee row with PROD_ID=SKU106.
i u
lpRun SQLtoCommand
iv) Close h
(s nse
the Line window.
b)ez
u
z not performc e this step if you have performed the instructions in step a).
y Do l i
i l p a Alternatively, to check the quantity for product ID SKU106 in JDeveloper
sh perform the following steps:
i) Open the JDeveloper application by double-clicking the JDeveloper desktop
icon.
ii) In the JDeveloper window, select the files application workspace, expand
the files > Application Sources > sql folder and open the
gibson_query.sql file.
b le
fer a
ans
Note: If the numbers in the ONLINE or INTERNAL columns (or both) are not
n - t r
a no
displayed as numbers then close the gibson_query.sql window, and
reopen the gibson_query.sql file using one of the other two soademo
connections provided.
) has ideฺ
c o m Gu
If the ONLINE and INTERNAL columns
o ฺ
o stilledo n tnot have a value of zero for
the PROD_ID=SKU106 then y h
aperformSttheudfollowing steps:
z u@Navigator,
(1) In the Application
z t h is under the files > Application Sources >
y
sql folder,
a e open the
s egibson_update.sql file.
u
( s
(2)hInilpthesgibson_update.sql
e to window, click the Run Script icon.
z u n
z (3)licInethe Select Connection window, use the
y e
i l p a soademo(POApplication) connection and click OK.
sh iv) Close the gibson_update.sql and gibson_query.sql windows.
v) Close JDeveloper, because it is no longer required.
c) Return to the Web browser page, containing the Oracle Enterprise Manager Test
Web Service Response tab page, and click the Request tab.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
p a u s
hilpo-gibson-only.xml,
Note: (Insthe s e to the payOption element is set to paypal,
z u e n
yez
shipChoice
licis set to next_day, and there is only one item containing the
productId SKU106, with a quantity of 1.
i l p a
sh e) On the Web browser page, wait for the Response tab page to be refreshed with the
Launch Message Flow Trace link displayed. Then you can view the BAM Active
Viewer changes.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z echanges in the BAM Active Viewer:
a u s
s h ilp e to
You can observe the following
i) u ( nsOrder Information section, a new row for the paypal order is
In the General
z z c e
a ye addedlias the last row in the table with the status value initial.
i l p ii) In the “Total Sales by Payment Type” section, there is an increase in the
sh percentage and total values for the paypal section of the pie-chart and a
corresponding change to the credit section of the pie-chart.
iii) In the “Count of Orders by Status” section, the bar with the initial status
has increased its size to three. The bars with the rejected and completed
status retain a size value of one.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
Inzthe
z n Viewer, the following changes can be observed:
u BAMceActive
ye l i
i l p a i) In the General Order Information section, the last row containing the paypal
sh order has its Status column changed to waiting.
ii) In the “Total Sales by Payment Type” section, no changes are made.
iii) In the “Count of Orders by Status” section, the bar with the initial status
has reduced its size to two. The bars with the rejected and completed
status retain a size value of one, and a new bar is added for the waiting
status with a size of one.
8) Now, you initiate an instance of the AddStockToStore composite application to
increase the number of Gibson Les Paul guitar (product ID: SKU106) by one in the
internal store. Therefore, the StockUpdate event is sent to the FulfillWaitingPO
instance, which invokes the Fulfillment BPEL process in the POProcessing composite
application to complete the order. Again, after initiating the AddStockToStore
process you observe the changes to the order taking place in the BAM Active Viewer.
e) Return to the Web browser window or tabbed page containing the BAM Active
Viewer to wait, and watch or observe the changes to the dashboard.
b le
fer a
ans
n - t r
a no
) has ideฺ
ฺ c om t Gu
h o o e n
ya Stu d
z @
u this
y e z e
a u s
( s hilp se to
z z u cen
ye li
i l p a
sh