IDM 4.0 on SLES, Sybase SQL 11

I am under the gun to deliver a prototype of a JDBC integration. We
have everything working except for getting a multi-valued attribute
populated from a child table.

The data is being presented from a view using the direct model, and we
are getting data from the view. However, the documentation is opaque on
some details of the implementation, I can't help feeling like if there
was a more transparent description of how it worked under the hood I
would be able to figure this out quickly.

My view is a join of several tables, the primary key is pk_Student_ID
(which comes from s.Student_ID) and within the view I have a field
called fk_mv__Student_ID__Pkg_Cde (which comes from the related field
sp.Student_ID). Within the sp table there is a field called Pkg_Cde

So I have been trying to figure out how this can possibly work. The
reason I am confused is that it's not clear how the code figures out how
to create a second query to get the multi-valued rows from the child
table. The problem is that there doesn't seem to be enough information
here to establish which table to get the information from.

Since we cannot establish a foreign key relationship to a view, it
cannot be reading the schema to find the relationship. So the semantics
of the field name from the view is used. Fair enough, we have the key
field ("Student_ID") and we have the target to read "Pkg_Cde" and we
know what the primary key value is since it's the record we are working
on, but how does it know what table to do the second SELECT statement

All I can assume is that it's looking at the AS clause of the SELECT
statement that defines the view and using the name of the table that the
field comes from. That's what I assumed, but we all know what happens
when you assume (ask Felix Ungar if you forget).

Where I am right now is that I am getting a value in the field, but
instead of the child values, it seems to be putting in the association
value in the value which is not what we need...

Any light anyone can shed on this (remember this is the the direct
model to a view) would be greatly appreciated.


PS - sample trace follows
[03/17/11 10:01:29.246]:Jenzabar PT:Querying publisher shim.
[03/17/11 10:01:29.246]:Jenzabar PT:
<nds dtdversion="3.5" ndsversion="8.x">
<product version="4.0.0">DirXML</product>
<contact>Novell, Inc.</contact>
<query class-name="idm.VLS_vw_IDM2" event-id="0" scope="entry">

<association>PK_STUDENT_ID=1009024704,table=VLS_VW _IDM2,schema=IDM</association>
<read-attr attr-name="Suffix"/>
<read-attr attr-name="First_Name"/>
<read-attr attr-name="E_Mail_Address"/>
<read-attr attr-name="Active"/>
<read-attr attr-name="Graduation_Date"/>
<read-attr attr-name="Title"/>
<read-attr attr-name="Preferred_Name"/>
<read-attr attr-name="Last_Name"/>
<read-attr attr-name="LSAT"/>
<read-attr attr-name="LS_Tracking"/>
<read-attr attr-name="Degree_Flag"/>
<read-attr attr-name="Middle_Name"/>
<read-attr attr-name="fk_mv__Student_ID__Pkg_Cde"/>
<read-attr attr-name="Person_ID"/>
<read-attr attr-name="Previous_Surname"/>
<read-attr attr-name="Registration_ID"/>
<read-attr attr-name="Student_ID"/>
<read-attr attr-name="Student_Number"/>
[03/17/11 10:01:29.269]:Jenzabar PT:SELECT pk_Student_ID,
Student_Number, Suffix, E_Mail_Address, Graduation_Date, Preferred_Name,
Last_Name, First_Name, Person_ID, Middle_Name, Previous_Surname,
fk_mv__Student_ID__Pkg_Cde, Title FROM
idm.VLS_vw_IDM2 WHERE pk_Student_ID = ?
[03/17/11 10:01:29.271]:Jenzabar PT: IN @ index 1, field
'pk_Student_ID', value = 1009024704
[03/17/11 10:01:29.287]:Jenzabar PT: RS field 'Student_Number',
length: 4, value = '5362'
[03/17/11 10:01:29.287]:Jenzabar PT: RS field 'Suffix', value =
[03/17/11 10:01:29.288]:Jenzabar PT: RS field 'E_Mail_Address',
length: 21, value = ''
[03/17/11 10:01:29.288]:Jenzabar PT: RS field 'Graduation_Date',
length: 21, value = '2010-10-16 00:00:00.0'
[03/17/11 10:01:29.288]:Jenzabar PT: RS field 'Preferred_Name',
value = null
[03/17/11 10:01:29.289]:Jenzabar PT: RS field 'Last_Name', length:
5, value = 'Davis'
[03/17/11 10:01:29.289]:Jenzabar PT: RS field 'First_Name', length:
5, value = 'Polly'
[03/17/11 10:01:29.290]:Jenzabar PT: RS field 'Person_ID', length:
10, value = '1009024703'
[03/17/11 10:01:29.290]:Jenzabar PT: RS field 'Middle_Name',
length: 2, value = 'D.'
[03/17/11 10:01:29.290]:Jenzabar PT: RS field 'Previous_Surname',
value = null
[03/17/11 10:01:29.291]:Jenzabar PT: RS field
'fk_mv__Student_ID__Pkg_Cde', length: 10, value = '1009024704'
[03/17/11 10:01:29.291]:Jenzabar PT: RS field 'pk_Student_ID',
length: 10, value = '1009024704'
[03/17/11 10:01:29.291]:Jenzabar PT: RS field 'Title', length: 3,
value = 'Ms.'
[03/17/11 10:01:29.292]:Jenzabar PT:Publisher shim returned:
[03/17/11 10:01:29.292]:Jenzabar PT:
<nds dtdversion="2.0" ndsversion="8.x" xmlns:jdbc="urn:dirxml:jdbc">
<product build="20100929_0912" instance="Jenzabar"
version="3.5.6">DirXML Driver for JDBC</product>
<contact>Novell, Inc.</contact>
<instance class-name="idm.VLS_vw_IDM2" event-id="0"
src-dn="PK_STUDENT_ID=1009024704,table=VLS_VW_IDM2,sch ema=IDM">
state="associated">PK_STUDENT_ID=1009024704,table= VLS_VW_IDM2,schema=IDM</association>
<attr attr-name="Student_Number">
<value type="string">5362</value>
<attr attr-name="Graduation_Date">
<value type="time">20101016000000000000000</value>
<attr attr-name="E_Mail_Address">
<value type="string"></value>
<attr attr-name="Last_Name">
<value type="string">Davis</value>
<attr attr-name="First_Name">
<value type="string">Polly</value>
<attr attr-name="Middle_Name">
<value type="string">D.</value>
<attr attr-name="Person_ID">
<value type="integer">1009024703</value>
<attr attr-name="Title">
<value type="string">Ms.</value>
* <attr attr-name="fk_mv__Student_ID__Pkg_Cde">
association-ref="PK_STUDENT_ID=1009024704,table=VLS_VW_IDM2,sc hema=IDM"
type="dn">PK_STUDENT_ID=1009024704,table=VLS_VW_ID M2,schema=IDM</value>
<attr attr-name="Student_ID">
<value type="integer">1009024704</value>
<status event-id="0" level="success"></status>

Robert Rawson
Subject Area Master - Identity and Access Management
rrawson's Profile:
View this thread: