Home PowerExchange rules Some rules for PWX for LDAP Connector

Some rules for PWX for LDAP Connector

Written by 
Rate this item
(0 votes)

All terms used in the article are explained in “PowerExchange for LDAP User Guide”.

The example shows how to send rows to a LDAP target where the Parent_Group represents the DN which is to be changed.

Single value LDAP attributes of the DN are included in the Parent_Group. Multi value LDAP attributes are represented by additional port groups which are referred to as Child_Groups. Sending rows to a multi-group target, requires setting the following ports:

 

 

< Group Primary Key

< GroupForeign Key

< Attribute value

< UpdateStrategy

As one must set the Group Primary Key for the Parent_Group and a number of Child Groups; this is elaborated upon further in the article:

< Child Primary Key is a Group Primary Key for Child Group.

< Parent Primary Key is a Group Primary Key for Parent Group.

The "Parent Group" figure shows a Parent_Group with “GPK_Parent_Group” port which is a Parent Primary Key. The "Child Group" figure depicts a Child Group for “member” LDAP attribute. “GPK__member” is a Child Primary Key. GFK_Parent_Group_member is a foreign key for “member” Child Groups. In order to replace the attribute member with value “m1” and “m2” for an entry defined by “dn” port in Parent_Group, one must set the ports as follows:

For the first row_________________________________________________________________

GPK_Parent_Group=X where X cannot be null.

dn=<distinguish name to which member attribute is going to be added>

Update_Strategy_Parent_Group=1 where 0 is insert, 1 update, 2 delete, 3 update else insert

GPK_member=Y1 where Y1 must be unique, not null

GFK_Parent_Group_member=X where X is just the same value as GPK_Parent_Group

Update_Strategy_member=1 where 0 is insert, 1 is replace, 2 is delete, 3 is replace

member = m1 where m1 is a value of the member attribute

For the second row_______________________________________________________________

GPK_Parent_Group=X where X cannot be null.

dn=<distinguish name to which member attribute is going to be added>

Update_Strategy_Parent_Group=1 where 0 is insert, 1 update, 2 delete, 3 update else insert

GPK_member= Y2 where Y2 must be different from Y1

GFK_Parent_Group_member=X where X is just the same value as GPK_Parent_Group

Update_Strategy_member=1 where 0 is insert, 1 is replace, 2 is delete, 3 is replace

member = m2 where m2 is a value of member attribute

________________________________________________________________________________

X and Y must follow certain rules. The rules are presented below. X is referred to as Parent Primary Key and Y is referred to as Child Primary Key.

1. Child primary keys (CPK) must be unique for whole transfer.

Let’s assume that one needs to add two “member” attributes. For each attribute. One needs, therefore, to define a child primary key. If the same key is assigned to both attributes, the following can occur:

· If session attribute “Duplicate Parent Row Handling” is set to first, then value from the first row is taken.

· If session attribute “Duplicate Parent Row Handling“ is set to last , then value from the last row is taken.

· If session attribute “Duplicate Parent Row Handling” is set to error, then an error is generated.

2. Each Parent Primary Key (PPK) defines a single operation.

a. List of replace operations on a child group with the same PPK defines list of values for the child group. Old values are cleared.

b. If a child operation fails following child operations for the PPK are not executed.

3. Operations are executed in the Parent Primary Key, Child Primary key order.

4. To create Primary Group, mandatory attributes are required to be set.

5. Keys cannot be null. => use router transformation if a random set of keys can be null

6. To do constant set of operations on one row use union transformation

7. To do a random set of operations for one row based on some constant set of criteria use router transformation and then union operation.

8. If type of key is a string, use lpad for numbers in those keys.

Since constant improvement and develpoment is an important facet of this project, please send any suggestions, comments, and questions to This e-mail address is being protected from spambots. You need JavaScript enabled to view it .

a PDF wersion of the article is available here

Read 4723 times