[prev in list] [next in list] [prev in thread] [next in thread] 

List:       forgerock-openidm
Subject:    [OpenIDM]  Role provisioning to MySQL with ScriptedSQL
From:       "Demarest, Fabien (BE - Brussels)" <fdemarest () DELOITTE ! com>
Date:       2015-03-12 8:14:02
Message-ID: 030465c4156b40339ddfc4dd015536a9 () BEDAC0436 ! be ! deloitte ! com
[Download RAW message or body]

Hi,

I am trying to setup a simple provisioning of managed/role from OpenIDM to MySQL DB.
The configuration used is based on sample 3, and specifically the table \
"organizations".

For testing, only the "name" and "_id" of an OpenIDM role are to be pushed to the DB. \
The mapping looks like this :

(OpenIDM) name -> name (DB)
(OpenIDM) _id -> role (DB)

Problem :
Right now, only the name of a role is correctly pushed on the new entries in the DB.

I think there is a problem in the Search and/or Create script or possibly the \
provisioner (see below). The logs do not show any errors with the code below.

Can this line of code work in the CreateScript? (the rest of the code is below)
createAttributes.hasAttribute("role") ? createAttributes.findString("role") : ""

(When I manually enter a value at the end of this line between "", the table column \
"role" is populated in the DB.)

SchemaScript
----------------

objectClass {
        type 'role'
        attributes {
            name String.class, REQUIRED
            role String.class, REQUIRED
        }
    }


Provisioner
-------------

"role" : {
            "$schema" : "http://json-schema.org/draft-03/schema",
            "id" : "role",
            "type" : "object",
            "nativeType" : "role",
            "properties" : {
                "name" : {
                    "type" : "string",
                    "required" : true,
                    "nativeName" : "__NAME__",
                    "nativeType" : "string"
                },
                "role" : {
                    "type" : "string",
                    "required" : true,
                    "nativeName" : "_id",
                    "nativeType" : "string"
                }
            }
        }
    }

CreateScript
---------------

def ROLE = new ObjectClass("role")
...

case ROLE:
        def generatedKeys = sql.executeInsert(
                "INSERT INTO roles (name,role) values (?,?)",
                [
                                               uid,
                                               createAttributes.hasAttribute("role") \
? createAttributes.findString("role") : ""  ]
        )
        return new Uid(generatedKeys[0][0] as String)

        break

SearchScript
---------------

case ROLE:
        sql.eachRow("""
        SELECT
                id,
                name,
                role,
                timestamp
        FROM
                roles
        ${where}
        ${orderBy}
        ${limit}
        """, whereParams, { row ->
            handler {
                               uid row.id as String
                               id row.name
                               attribute 'role', row.role
            }
            lastTimestamp = row.timestamp
            lastId = row.id
            resultCount++
        });
        break
This email and any files transmitted with it are confidential and intended solely for \
the use of the individual or entity to whom they are addressed. If you are not the \
named addressee or an employee or agent responsible for delivering this message to \
the named addressee, you are hereby notified that you are not authorized to read, \
print, retain, copy or disseminate this message or any part of it.  If you have \
received this email in error we request you to notify us by reply e-mail and to \
delete all electronic files of the message.  E-mail transmission cannot be guaranteed \
to be secure or error free as information could be intercepted, corrupted, lost, \
destroyed, arrive late or incomplete, or contain viruses. The sender therefore does \
not accept liability for any errors or omissions in the content of this message, and \
shall have no liability for any loss or damage suffered by the user, which arise as a \
result of e-mail transmission.


[Attachment #3 (text/html)]

<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NL-BE" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="FR-BE">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="FR-BE"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I am trying to setup a simple provisioning of \
managed/role from OpenIDM to MySQL DB.<br> The configuration used is based on sample \
3, and specifically the table &#8220;organizations&#8221;.<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">For testing, only the &#8220;name&#8221; and \
&#8220;_id&#8220; of an OpenIDM role are to be pushed to the DB. The mapping looks \
like this :<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">(OpenIDM) name -&gt; name (DB)<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">(OpenIDM) _id -&gt; role \
(DB)<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><b><span \
lang="EN-GB">Problem :<o:p></o:p></span></b></p> <p class="MsoNormal"><span \
lang="EN-GB">Right now, only the name of a role is correctly pushed on the new \
entries in the DB.<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span lang="EN-GB">I \
think there is a problem in the Search and/or Create script or possibly the \
provisioner (see below). <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">The logs do not show any errors with the code \
below.<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span lang="EN-GB">Can \
this line of code work in the CreateScript? (the rest of the code is \
below)<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">createAttributes.hasAttribute(&quot;role&quot;) ? \
createAttributes.findString(&quot;role&quot;) : &quot;&quot;<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">(When I manually enter a value at the end of \
this line between &quot;&quot;, the table column &#8220;role&#8221; is populated in \
the DB.)<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><b><span \
lang="EN-GB">SchemaScript<o:p></o:p></span></b></p> <p class="MsoNormal"><span \
lang="EN-GB">----------------<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">objectClass {<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type \
'role'<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attributes \
{<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name \
String.class, REQUIRED<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role \
String.class, REQUIRED<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><b>Provisioner<o:p></o:p></b></p> <p \
class="MsoNormal">-------------<o:p></o:p></p> <p \
class="MsoNormal"><o:p>&nbsp;</o:p></p> <p class="MsoNormal">&quot;role&quot; : \
{<o:p></o:p></p> <p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;$schema&quot; : &quot;<a \
href="http://json-schema.org/draft-03/schema">http://json-schema.org/draft-03/schema</a>&quot;,<o:p></o:p></p>
 <p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;id&quot; : &quot;role&quot;,<o:p></o:p></p> <p \
class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
<span lang="EN-GB">&quot;type&quot; : &quot;object&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;nativeType&quot; : &quot;role&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;properties&quot; : {<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;name&quot; : {<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;type&quot; : \
&quot;string&quot;,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;required&quot; : true,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;nativeName&quot; : &quot;__NAME__&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;nativeType&quot; : &quot;string&quot;<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
},<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;role&quot; : {<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;type&quot; : &quot;string&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;required&quot; : \
true,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;nativeName&quot; : &quot;_id&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;nativeType&quot; : &quot;string&quot;<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><b><span lang="EN-GB">CreateScript<o:p></o:p></span></b></p> <p \
class="MsoNormal"><span lang="EN-GB">---------------<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">def ROLE = new \
ObjectClass(&quot;role&quot;)<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&#8230;<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">case ROLE:<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def generatedKeys = \
sql.executeInsert(<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;INSERT INTO roles (name,role) values (?,?)&quot;,<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
[<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
uid,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb \
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
createAttributes.hasAttribute(&quot;role&quot;) ? \
createAttributes.findString(&quot;role&quot;) : &quot;&quot;<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
]<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
return new Uid(generatedKeys[0][0] as String)<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p \
class="MsoNormal"><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
break<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><b><span \
lang="EN-GB">SearchScript<o:p></o:p></span></b></p> <p class="MsoNormal"><span \
lang="EN-GB">---------------<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">case ROLE:<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
sql.eachRow(&quot;&quot;&quot;<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;SELECT<o:p></o:p></span></p> \
<p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
id,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
name,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
role,<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
timestamp<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
roles<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
${where}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
${orderBy}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
${limit}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;, \
whereParams, { row -&gt;<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
handler {<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
uid row.id as String<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
id row.name<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& \
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
attribute 'role', row.role<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
}<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
lastTimestamp = row.timestamp<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
</span><span lang="FR-BE">lastId = row.id<o:p></o:p></span></p> <p \
class="MsoNormal"><span \
lang="FR-BE">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
resultCount&#43;&#43;<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="FR-BE">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="FR-BE">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
break<o:p></o:p></span></p> </div>
<p>This email and any files transmitted with it are confidential and intended solely \
for the use of the individual or entity to whom they are addressed.<br> If you are \
not the named addressee or an employee or agent responsible for delivering this \
message to the named addressee, you are hereby notified that you are not authorized \
to read, print, retain, copy or disseminate this message or any part of it. <br> If \
you have received this email in error we request you to notify us by reply e-mail and \
to delete all electronic files of the message. <br> E-mail transmission cannot be \
guaranteed to be secure or error free as information could be intercepted, corrupted, \
lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore \
does not accept liability for any errors or omissions in the content of this message, \
and shall have no liability for any loss or damage suffered by the user, which arise \
as a result of e-mail transmission.</p></body> </html>



_______________________________________________
OpenIDM mailing list
OpenIDM@forgerock.org
https://lists.forgerock.org/mailman/listinfo/openidm

--===============8099038687993733292==--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic