Notices


 
 
LinkBack Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 20-Oct-2009, 09:29 PM
dgersic's Avatar
 
Join Date: Feb 2008
Posts: 1,947
dgersic 40-49 reputation pointsdgersic 40-49 reputation pointsdgersic 40-49 reputation pointsdgersic 40-49 reputation pointsdgersic 40-49 reputation points
Default Re: Driver PeopleSoft and Component Interface

On Tue, 20 Oct 2009 07:26:02 +0000, jpardol wrote:

> We are creating a CI 8.47 to PeopleSoft Financial, and we have a
> problem.


Financials? Usually it's the HR system that people integrate with IDM.


> The new CI are creating based on PSA as designed. But in the PSA, all
> fields used are single-valued (ratio 1 to 1), such as the name. But we
> may need to also manage the roles, and do not know how to treat them
> because the relationship would be "N to N" and the exchange of
> information is made from the stage table


The PeopleSoft driver and CI can handle multi-valued attributes without a
problem. The PeopleSoft people here refer to them as "scroll" values, if
I recall correctly. They don't actually get put in the staging table,
though. All that goes in there is the EMPLID, the timestamp, and the
status. The driver queries, via the CI, for the data it needs.

> and we do not know how to
> reflect these roles "N" in the stage table to be a variable number,
> because not all users have the same number of roles asigned.


You'll get a "scroll" value of the roles. You'll have to parse it and do
something meaningful with the results. What do you intend to do with
these roles?

Here's a sample of what I'm talking about. Our CI kicks out up to four
types of phone numbers, in a <modify> document it looks like:


<modify-attr attr-name="PERSONAL_PHONE">
<add-value>
<value>
<component name="PHONE_TYPE">MAIN</component>
<component name="PHONE">815/753-1000</component>
</value>
<value>
<component name="PHONE_TYPE">BUSN</component>
<component name="PHONE">815/753-1000</component>
</value>
<value>
<component name="PHONE_TYPE">CELL</component>
<component name="PHONE">815/753-1000</component>
</value>
</add-value>
</modify-attr>




and the DirXML Script to turn this in to something useful is:

<rule>
<description>Flattening view of Phone Scroll (modify)</description>
<conditions>
<and>
<if-operation mode="case" op="equal">modify</if-operation>
<if-op-attr name="PERSONAL_PHONE" op="available"/>
</and>
</conditions>
<actions>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Flattening view of Phone Scroll
(modify)</token-text>
</arg-string>
</do-trace-message>
<do-if>
<arg-conditions>
<and>
<if-xpath op="true">modify-attr[@attr-name='PERSONAL_PHONE']/add-
value/value/component[@name='PHONE_TYPE']/text()='MAIN'</if-xpath>
</and>
</arg-conditions>
<arg-actions>
<do-set-dest-attr-value name="homePhone">
<arg-value>
<token-xpath expression="modify-attr[@attr-name='PERSONAL_PHONE']/
add-value/value/component[@name='PHONE_TYPE'][text()='MAIN']/../component
[@name='PHONE']/text()"/>
</arg-value>
</do-set-dest-attr-value>
</arg-actions>
<arg-actions/>
</do-if>
<do-if>
<arg-conditions>
<and>
<if-xpath op="true">modify-attr[@attr-name='PERSONAL_PHONE']/add-
value/value/component[@name='PHONE_TYPE']/text()='BUSN'</if-xpath>
</and>
</arg-conditions>
<arg-actions>
<do-set-dest-attr-value name="Telephone Number">
<arg-value>
<token-xpath expression="modify-attr[@attr-name='PERSONAL_PHONE']/
add-value/value/component[@name='PHONE_TYPE'][text()='BUSN']/../component
[@name='PHONE']/text()"/>
</arg-value>
</do-set-dest-attr-value>
</arg-actions>
<arg-actions/>
</do-if>
<do-if>
<arg-conditions>
<and>
<if-xpath op="true">modify-attr[@attr-name='PERSONAL_PHONE']/add-
value/value/component[@name='PHONE_TYPE']/text()='CELL'</if-xpath>
</and>
</arg-conditions>
<arg-actions>
<do-set-dest-attr-value name="mobile">
<arg-value>
<token-xpath expression="modify-attr[@attr-name='PERSONAL_PHONE']/
add-value/value/component[@name='PHONE_TYPE'][text()='CELL']/../component
[@name='PHONE']/text()"/>
</arg-value>
</do-set-dest-attr-value>
</arg-actions>
<arg-actions/>
</do-if>
<do-if>
<arg-conditions>
<and>
<if-xpath op="true">modify-attr[@attr-name='PERSONAL_PHONE']/add-
value/value/component[@name='PHONE_TYPE']/text()='PGR'</if-xpath>
</and>
</arg-conditions>
<arg-actions>
<do-set-dest-attr-value name="pager">
<arg-value>
<token-xpath expression="modify-attr[@attr-name='PERSONAL_PHONE']/
add-value/value/component[@name='PHONE_TYPE'][text()='PGR']/../component
[@name='PHONE']/text()"/>
</arg-value>
</do-set-dest-attr-value>
</arg-actions>
<arg-actions/>
</do-if>
<do-strip-op-attr name="PERSONAL_PHONE"/>
</actions>
</rule>


--
---------------------------------------------------------------------------
David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -6. The time now is 08:19 PM.


© 2007 Novell, Inc. All Rights Reserved.

Search Engine Friendly URLs by vBSEO 3.3.2