IBM E02HMLL-I Implementation Guide - Page 158

Performing, lookups, database, tables

Page 158 highlights

Table 14. Routing table example (continued) Routing value Destination application value Federal AppB Reseller AppC Academic AppD 2. Create a database connection pool and database connection in System Manager as described in "Creating database connection pools and database connections" on page 148. 3. In the collaboration template design the logic to do the following: a. Retrieve the value in the attribute to be used for routing and store the value in a variable. b. Obtain a connection to the database. c. Execute a SQL query that retrieves the value in the column that stores the destination application values where the value in the column that stores routing values is equal to the value stored in the variable in the collaboration template. d. Use a decision node to cause the collaboration logic to branch depending on the value returned from the database table. The different branches should lead to different service call nodes responsible for sending the business object out to the appropriate connector and thereby sending it out to the appropriate destination application. Performing lookups in database tables You might need to translate one value into another by looking up its equivalent in a table. Frequently you perform these operations by implementing lookup relationships, though using a lookup relationship does not always make sense. Lookup relationships are designed primarily for situations where each application involved in an interface needs its own way of representing a piece of data-a participant is created for each application and the lookup relationship itself connects all the participants much in the same way that the integration broker connects the applications. Sometimes you have a need to transform a value into one of several other values, but there is not the need to maintain a separate representation of that data for each application involved in the interface. In such a case you should create a table in the repository to store the associated values and then use a database connection and SQL select statements to retrieve the desired value. Furthermore, the API provided for lookup relationships makes it very easy to abstract related data across applications, but does not make it easy to perform more complicated queries. The lookup relationship API is designed to take a piece of data and return the key value that the data shares with the other pieces of application data in the relationship, or to take a key value and return a particular piece of data associated with it. The lookup relationship API cannot return multiple column values, however, or execute stored procedures, which the APIs of the CwDBConnection class are able to do. You can also satisfy this requirement with Java code rather than with a database query, by using control structures such as "if/else" and "switch/case" statements. Consider the following advantages and disadvantages of the different approaches and make the appropriate choice based on the situation: 146 IBM WebSphere Business Integration Server Express and Express Plus: System Implementation Guide

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302

Table
14.
Routing
table
example
(continued)
Routing
value
Destination
application
value
Federal
AppB
Reseller
AppC
Academic
AppD
2.
Create
a
database
connection
pool
and
database
connection
in
System
Manager
as
described
in
“Creating
database
connection
pools
and
database
connections”
on
page
148.
3.
In
the
collaboration
template
design
the
logic
to
do
the
following:
a.
Retrieve
the
value
in
the
attribute
to
be
used
for
routing
and
store
the
value
in
a
variable.
b.
Obtain
a
connection
to
the
database.
c.
Execute
a
SQL
query
that
retrieves
the
value
in
the
column
that
stores
the
destination
application
values
where
the
value
in
the
column
that
stores
routing
values
is
equal
to
the
value
stored
in
the
variable
in
the
collaboration
template.
d.
Use
a
decision
node
to
cause
the
collaboration
logic
to
branch
depending
on
the
value
returned
from
the
database
table.
The
different
branches
should
lead
to
different
service
call
nodes
responsible
for
sending
the
business
object
out
to
the
appropriate
connector
and
thereby
sending
it
out
to
the
appropriate
destination
application.
Performing
lookups
in
database
tables
You
might
need
to
translate
one
value
into
another
by
looking
up
its
equivalent
in
a
table.
Frequently
you
perform
these
operations
by
implementing
lookup
relationships,
though
using
a
lookup
relationship
does
not
always
make
sense.
Lookup
relationships
are
designed
primarily
for
situations
where
each
application
involved
in
an
interface
needs
its
own
way
of
representing
a
piece
of
data—a
participant
is
created
for
each
application
and
the
lookup
relationship
itself
connects
all
the
participants
much
in
the
same
way
that
the
integration
broker
connects
the
applications.
Sometimes
you
have
a
need
to
transform
a
value
into
one
of
several
other
values,
but
there
is
not
the
need
to
maintain
a
separate
representation
of
that
data
for
each
application
involved
in
the
interface.
In
such
a
case
you
should
create
a
table
in
the
repository
to
store
the
associated
values
and
then
use
a
database
connection
and
SQL
select
statements
to
retrieve
the
desired
value.
Furthermore,
the
API
provided
for
lookup
relationships
makes
it
very
easy
to
abstract
related
data
across
applications,
but
does
not
make
it
easy
to
perform
more
complicated
queries.
The
lookup
relationship
API
is
designed
to
take
a
piece
of
data
and
return
the
key
value
that
the
data
shares
with
the
other
pieces
of
application
data
in
the
relationship,
or
to
take
a
key
value
and
return
a
particular
piece
of
data
associated
with
it.
The
lookup
relationship
API
cannot
return
multiple
column
values,
however,
or
execute
stored
procedures,
which
the
APIs
of
the
CwDBConnection
class
are
able
to
do.
You
can
also
satisfy
this
requirement
with
Java
code
rather
than
with
a
database
query,
by
using
control
structures
such
as
“if/else”
and
“switch/case”
statements.
Consider
the
following
advantages
and
disadvantages
of
the
different
approaches
and
make
the
appropriate
choice
based
on
the
situation:
146
IBM
WebSphere
Business
Integration
Server
Express
and
Express
Plus:
System
Implementation
Guide