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

List:       forgerock-openidm-commit
Subject:    [CommitOpenIDM] [5048] trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml: CR-6386
From:       anonymous () forgerock ! org
Date:       2015-03-25 7:49:07
Message-ID: 20150325074907.D01163F881 () sources ! internal ! forgerock ! com
[Download RAW message or body]

[Attachment #2 (text/html)]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[5048] trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml: CR-6386 \
(OPENIDM-2969, OPENIDM-2983, OPENIDM-3065) Multiple issues in the scripting \
appendix</title> </head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt;  } #msg dl a { font-weight: \
bold} #msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
 #patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
                .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a \
href="http://sources.forgerock.org/changelog/openidm/?cs=5048">5048</a></dd> \
<dt>Author</dt> <dd>lana</dd> <dt>Date</dt> <dd>2015-03-25 07:49:07 +0000 (Wed, 25 \
Mar 2015)</dd> </dl>

<h3>Log Message</h3>
<pre>CR-6386 (<a href="https://bugster.forgerock.org/jira/browse/OPENIDM-2969">OPENIDM-2969</a>, \
<a href="https://bugster.forgerock.org/jira/browse/OPENIDM-2983">OPENIDM-2983</a>, <a \
href="https://bugster.forgerock.org/jira/browse/OPENIDM-3065">OPENIDM-3065</a>) \
Multiple issues in the scripting appendix</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcmaindocbkxintegratorsguideappendixscriptingxml">trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml</a></li>
 </ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcmaindocbkxintegratorsguideappendixscriptingxml"></a>
<div class="modfile"><h4>Modified: \
trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml (5047 => 5048)</h4> \
<pre class="diff"><span> <span class="info">--- \
trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml	2015-03-24 23:21:39 \
                UTC (rev 5047)
+++ trunk/src/main/docbkx/integrators-guide/appendix-scripting.xml	2015-03-25 \
07:49:07 UTC (rev 5048) </span><span class="lines">@@ -65,18 +65,16 @@
</span><span class="cx"> 
</span><span class="cx">    &lt;section xml:id=&quot;script-json&quot;&gt;
</span><span class="cx">     &lt;title&gt;Script Configuration File&lt;/title&gt;
</span><del>-
</del><span class="cx">      &lt;para&gt;
</span><span class="cx">       OpenIDM ${docTargetVersion} includes a script \
configuration file </span><del>-      \
                (&lt;filename&gt;/path/to/openidm/conf/script.json&lt;/filename&gt;) \
                that enables you
-      to modify the parameters used by your Groovy and Java Scripts. You can
-      also use this file to change the default project and script directories.
-      For more information, see &lt;link
-      xlink:show=&quot;new&quot; \
xlink:role=&quot;http://docbook.org/xlink/role/olink&quot; </del><ins>+      \
(&lt;filename&gt;conf/script.json&lt;/filename&gt;) that enables you to modify the +  \
parameters used by your Javascript and Groovy scripts. You can also use +      this \
file to change the default project and script directories. For more +      \
information, see &lt;link xlink:show=&quot;new&quot; +      \
xlink:role=&quot;http://docbook.org/xlink/role/olink&quot; </ins><span class="cx">    \
xlink:href=&quot;integrators-guide#config-default-directories&quot;&gt;&lt;citetitle&gt;Default
 </span><span class="cx">       and Custom Configuration \
Directories&lt;/citetitle&gt;&lt;/link&gt;. </span><span class="cx">      \
&lt;/para&gt; </span><del>-
</del><span class="cx">      &lt;para&gt;
</span><span class="cx">       The properties shown in the default version of the
</span><span class="cx">       &lt;filename&gt;script.json&lt;/filename&gt; file are \
described here: </span><span class="lines">@@ -245,7 +243,7 @@
</span><span class="cx">     &lt;title&gt;Calling A Script From a Configuration \
File&lt;/title&gt; </span><span class="cx">     &lt;para&gt;
</span><span class="cx">      You can call a script from within a configuration file \
by providing the </span><del>-     script source, or be referencing a file that \
contains the script source. </del><ins>+     script source, or by referencing a file \
that contains the script source. </ins><span class="cx">      For example:
</span><span class="cx">     &lt;/para&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -277,8 +275,10 @@
</span><span class="cx">     &lt;varlistentry&gt;
</span><span class="cx">      &lt;term&gt;source&lt;/term&gt;
</span><span class="cx">      &lt;listitem&gt;
</span><del>-      &lt;para&gt;string, required if file is not specified&lt;/para&gt;
</del><span class="cx">       &lt;para&gt;
</span><ins>+       string, required if &lt;literal&gt;file&lt;/literal&gt; is not \
specified +      &lt;/para&gt;
+      &lt;para&gt;
</ins><span class="cx">        Specifies the source code of the script to be \
executed. </span><span class="cx">       &lt;/para&gt;
</span><span class="cx">      &lt;/listitem&gt;
</span><span class="lines">@@ -286,21 +286,20 @@
</span><span class="cx">     &lt;varlistentry&gt;
</span><span class="cx">      &lt;term&gt;file&lt;/term&gt;
</span><span class="cx">      &lt;listitem&gt;
</span><del>-      &lt;para&gt;string, required if source is not \
specified&lt;/para&gt; </del><span class="cx">       &lt;para&gt;
</span><ins>+       string, required if &lt;literal&gt;source&lt;/literal&gt; is not \
specified +      &lt;/para&gt;
+      &lt;para&gt;
</ins><span class="cx">        Specifies the file containing the source code of the \
script to execute. </span><span class="cx">       &lt;/para&gt;
</span><span class="cx">      &lt;/listitem&gt;
</span><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx">    &lt;/variablelist&gt;
</span><del>-
-   &lt;/section&gt;
-
-  &lt;/section&gt;
-
-  &lt;section xml:id=&quot;scripting-example&quot;&gt;
-   &lt;title&gt;Examples&lt;/title&gt;
</del><span class="cx">    &lt;para&gt;
</span><ins>+    The following examples indicate how scripts can be called from \
configuration +    files.
+   &lt;/para&gt;
+   &lt;para&gt;
</ins><span class="cx">     The following example (included in the \
&lt;filename&gt;sync.json&lt;/filename&gt; file) </span><span class="cx">     returns \
&lt;literal&gt;true&lt;/literal&gt; if the \
&lt;literal&gt;employeeType&lt;/literal&gt; is </span><span class="cx">     equal to \
&lt;literal&gt;external&lt;/literal&gt;, otherwise returns </span><span \
class="lines">@@ -319,7 +318,6 @@ </span><span class="cx">     sets the \
&lt;literal&gt;__PASSWORD__&lt;/literal&gt; attribute to </span><span class="cx">     \
&lt;literal&gt;defaultpwd&lt;/literal&gt; when OpenIDM creates a target object. \
</span><span class="cx">    &lt;/para&gt; </span><del>-
</del><span class="cx">    &lt;programlisting language=&quot;javascript&quot;&gt;
</span><span class="cx"> &quot;onCreate&quot; : {
</span><span class="cx">   &quot;type&quot; : &quot;text/javascript&quot;,
</span><span class="lines">@@ -332,7 +330,6 @@
</span><span class="cx">     script is located in a file,
</span><span class="cx">     \
&lt;filename&gt;/path/to/openidm/script/createUnixHomeDir.js&lt;/filename&gt;. \
</span><span class="cx">    &lt;/para&gt; </span><del>-
</del><span class="cx">    &lt;programlisting language=&quot;javascript&quot;&gt;
</span><span class="cx"> {
</span><span class="cx">   &quot;filters&quot; : [ {
</span><span class="lines">@@ -344,7 +341,55 @@
</span><span class="cx">     }
</span><span class="cx">   } ]
</span><span class="cx"> }   &lt;/programlisting&gt;
</span><ins>+    &lt;para&gt;
+     Often, script files are reused in different contexts. You can pass
+     variables to your scripts to provide these contextual details at runtime.
+     You pass variables to the scripts that are referenced in configuration
+     files by declaring the variable name in the script reference.
+    &lt;/para&gt;
+    &lt;para&gt;
+     The following example of a scheduled task configuration calls a script
+     named &lt;literal&gt;triggerEmailNotification.js&lt;/literal&gt;. The example \
sets the +     sender and recipient of the email in the schedule configuration, \
rather +     than in the script itself.
+    &lt;/para&gt;
+    &lt;programlisting language=&quot;javascript&quot;&gt;{
+    &quot;enabled&quot; : true,
+    &quot;type&quot; : &quot;cron&quot;,
+    &quot;schedule&quot; : &quot;0 0/1 * * * ?&quot;,
+    &quot;invokeService&quot; : &quot;script&quot;,
+    &quot;invokeContext&quot; : {
+        &quot;script&quot;: {
+            &quot;type&quot; : &quot;text/javascript&quot;,
+            &quot;file&quot; : &quot;script/triggerEmailNotification.js&quot;,
+            &quot;fromSender&quot; : &quot;admin@example.com&quot;,
+            &quot;toEmail&quot; : &quot;user@example.com&quot;
+        }
+    }
+}   &lt;/programlisting&gt;
+    &lt;para&gt;
+     In general, it is preferable to namespace variables passed into scripts
+     with the &lt;literal&gt;&quot;globals&quot;&lt;/literal&gt; map. Passing \
variables in this way +     prevents collisions with the top-level reserved words for \
script maps, such +     as &lt;literal&gt;file&lt;/literal&gt;, \
&lt;literal&gt;source&lt;/literal&gt;, and +     &lt;literal&gt;type&lt;/literal&gt;. \
The following example uses the +     \
&lt;literal&gt;&quot;globals&quot;&lt;/literal&gt; map to namespace the variables \
passed in the +     previous example.
+    &lt;/para&gt;
+    &lt;programlisting language=&quot;javascript&quot;&gt;&quot;script&quot;: {
+    &quot;type&quot; : &quot;text/javascript&quot;,
+    &quot;file&quot; : &quot;script/triggerEmailNotification.js&quot;,
+    &quot;globals&quot; : {
+        &quot;fromSender&quot; : &quot;admin@example.com&quot;,
+        &quot;toEmail&quot; : &quot;user@example.com&quot;
+    }
+}&lt;/programlisting&gt;
+    &lt;para&gt;
+     Script variables are not necessarily simple \
&lt;literal&gt;key:value&lt;/literal&gt; +     pairs. A script variable can be any \
arbitrarily complex JSON object. +    &lt;/para&gt;
</ins><span class="cx">    &lt;/section&gt;
</span><ins>+  &lt;/section&gt;
</ins><span class="cx"> 
</span><span class="cx">    &lt;section xml:id=&quot;function-ref&quot;&gt;
</span><span class="cx">     &lt;title&gt;Function Reference&lt;/title&gt;
</span><span class="lines">@@ -363,21 +408,6 @@
</span><span class="cx">      provided to each script.
</span><span class="cx">     &lt;/para&gt;
</span><span class="cx">     &lt;para&gt;
</span><del>-     OpenIDM also provides a &lt;literal&gt;logger&lt;/literal&gt; \
                object to access the
-     Simple Logging Facade for Java (SLF4J) facilities. The following code shows
-     an example of the &lt;literal&gt;logger&lt;/literal&gt; object.
-    &lt;/para&gt;
-    &lt;programlisting \
language=&quot;javascript&quot;&gt;logger.info(&quot;Parameters passed in: {} {} \
                {}&quot;, param1, param2, param3);&lt;/programlisting&gt;
-    &lt;para&gt;
-     To set the log level for all scripts, add the following property to the
-     &lt;filename&gt;openidm/conf/logging.properties&lt;/filename&gt; file:
-     &lt;literal&gt;org.forgerock.openidm.script.javascript.JavaScript.level&lt;/literal&gt;.
                
-     The level can be one of &lt;literal&gt;SEVERE&lt;/literal&gt; (highest value),
-     &lt;literal&gt;WARNING, INFO, CONFIG, FINE, FINER&lt;/literal&gt;, or
-     &lt;literal&gt;FINEST&lt;/literal&gt; (lowest value). For example:
-    &lt;/para&gt;
-    &lt;programlisting \
language=&quot;javascript&quot;&gt;org.forgerock.script.javascript.JavaScript.level=WARNING&lt;/programlisting&gt;
                
-    &lt;para&gt;
</del><span class="cx">      The following sections describe the OpenIDM functions \
supported by the </span><span class="cx">      script engine.
</span><span class="cx">     &lt;/para&gt;
</span><span class="lines">@@ -420,15 +450,22 @@
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      The created OpenIDM resource object.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;The created OpenIDM resource object.&lt;/para&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-     &lt;para&gt;
-      An exception is thrown if the object could not be created.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       An exception is thrown if the object could not be created.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Example&lt;/title&gt;
+      &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.create(&quot;managed/user&quot;, bjensen, \
&lt;replaceable&gt;map&lt;/replaceable&gt;);&lt;/programlisting&gt; +     \
&lt;/blockquote&gt; </ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-patch&quot;&gt;
</span><span class="lines">@@ -466,21 +503,37 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;object&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The value of the modifications to be applied to the object.
</del><ins>+         The value of the modifications to be applied to the object. The \
patch +         set includes the operation type, the field to be changed, and the new
+         values. A PATCH request can &lt;literal&gt;add&lt;/literal&gt;,
+         &lt;literal&gt;remove&lt;/literal&gt;, \
&lt;literal&gt;replace&lt;/literal&gt;, or +         \
&lt;literal&gt;increment&lt;/literal&gt; an attribute value. A +         \
&lt;literal&gt;replace&lt;/literal&gt; operation replaces an existing value, or +     \
adds a value if no value exists. </ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      The modified OpenIDM resource object.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       The modified OpenIDM resource object.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-     &lt;para&gt;
-      An exception is thrown if the object could not be updated.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       An exception is thrown if the object could not be updated.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Example&lt;/title&gt;
+      &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.patch(&quot;managed/user/&quot; + \
user._id, null, + [{&quot;operation&quot; : &quot;replace&quot;, &quot;field&quot; : \
&quot;/password&quot;, &quot;value&quot;: \
&quot;Passw0rd&quot;}]);&lt;/programlisting&gt; +     &lt;/blockquote&gt;
</ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-read&quot;&gt;
</span><span class="lines">@@ -495,22 +548,29 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The identifier of the object to be read.
</del><ins>+         The full path to the object to be read, including the ID.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      The read OpenIDM resource object, or &lt;literal&gt;null&lt;/literal&gt; if \
                not found.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       The OpenIDM resource object, or &lt;literal&gt;null&lt;/literal&gt; if not \
found. +      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Example&lt;/title&gt;
+      &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.read(&quot;managed/user/&quot;+userId)&lt;/programlisting&gt;
 +     &lt;/blockquote&gt;
</ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-update&quot;&gt;
</span><span class="cx">      &lt;title&gt;openidm.update(id, rev, \
value)&lt;/title&gt; </span><span class="cx">      &lt;para&gt;
</span><del>-      This function updates a resource object.
</del><ins>+      This function updates an entire resource object.
</ins><span class="cx">      &lt;/para&gt;
</span><span class="cx">      &lt;variablelist&gt;
</span><span class="cx">       &lt;title&gt;Parameters&lt;/title&gt;
</span><span class="lines">@@ -528,9 +588,10 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The revision of the object to be updated. Use \
                &lt;literal&gt;null&lt;/literal&gt; if
-         the object is not subject to revision control, or if you want to skip
-         the revision check and update the object, regardless of the revision.
</del><ins>+         The revision of the object to be updated. Use \
&lt;literal&gt;null&lt;/literal&gt; +         if the object is not subject to \
revision control, or if you want to +         skip the revision check and update the \
object, regardless of the +         revision.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="lines">@@ -539,21 +600,40 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;object&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The value of the object to be updated.
</del><ins>+         The complete replacement object.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      The modified OpenIDM resource object.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       The modified OpenIDM resource object.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       An exception is thrown if the object could not be updated.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+     &lt;title&gt;Example&lt;/title&gt;
</ins><span class="cx">      &lt;para&gt;
</span><del>-      An exception is thrown if the object could not be updated.
</del><ins>+      In this example, the managed user entry is read (with an
+      &lt;literal&gt;openidm.read&lt;/literal&gt;, the user entry that has been read \
is +      updated with a new description, and the entire updated object is replaced
+      with the new value.
</ins><span class="cx">      &lt;/para&gt;
</span><ins>+     &lt;programlisting language=&quot;javascript&quot;&gt;
+    var user_read = openidm.read('managed/user/' + source._id);
+    user_read['description'] = 'The entry has been updated';
+    openidm.update('managed/user/' + source._id, null, user_read);
+     &lt;/programlisting&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-delete&quot;&gt;
</span><span class="lines">@@ -586,35 +666,34 @@
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      A &lt;literal&gt;null&lt;/literal&gt; value if successful.
-     &lt;/para&gt;
-
-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-     &lt;para&gt;
-      An exception is thrown if the object could not be deleted.
-     &lt;/para&gt;
-     &lt;note&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
</ins><span class="cx">       &lt;para&gt;
</span><del>-       Note that &lt;literal&gt;delete&lt;/literal&gt; is a reserved \
                word in JavaScript
-       and this function can therefore not be called in the usual manner. To
-       call delete from a JavaScript, you must specify the call as shown in the
-       following example:
</del><ins>+       Returns the deleted object if successful.
</ins><span class="cx">       &lt;/para&gt;
</span><del>-      &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm['delete']('managed/user/'+ user._id, \
user._rev)&lt;/programlisting&gt; </del><ins>+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
</ins><span class="cx">       &lt;para&gt;
</span><del>-       Calling &lt;literal&gt;openidm.delete()&lt;/literal&gt; directly \
                from a JavaScript
-       results in an error similar to the following:
</del><ins>+       An exception is thrown if the object could not be deleted.
</ins><span class="cx">       &lt;/para&gt;
</span><del>-      &lt;screen&gt;org.forgerock.openidm.script.ScriptException: \
                missing name after . operator&lt;/screen&gt;
-     &lt;/note&gt;
</del><ins>+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+     &lt;title&gt;Example&lt;/title&gt;
+      &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.delete('managed/user/'+ user._id, \
user._rev)&lt;/programlisting&gt; +     &lt;/blockquote&gt;
</ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-query&quot;&gt;
</span><del>-     &lt;title&gt;openidm.query(id, params)&lt;/title&gt;
</del><ins>+     &lt;title&gt;openidm.query(id, params, fields)&lt;/title&gt;
</ins><span class="cx">      &lt;para&gt;
</span><span class="cx">       This function performs a query on the specified \
OpenIDM resource object. </span><ins>+      For more information, see &lt;link
+      xlink:href=&quot;integrators-guide#constructing-queries&quot;
+      xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;&lt;citetitle&gt;Constructing
 +      Queries&lt;/citetitle&gt;&lt;/link&gt;.
</ins><span class="cx">      &lt;/para&gt;
</span><span class="cx">      &lt;variablelist&gt;
</span><span class="cx">       &lt;title&gt;Parameters&lt;/title&gt;
</span><span class="lines">@@ -623,7 +702,9 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The identifier of the object to perform the query on.
</del><ins>+         The resource object on which the query should be performed, for
+         example, &lt;literal&gt;&quot;managed/user&quot;&lt;/literal&gt;, or
+         &lt;literal&gt;&quot;system/ldap/account&quot;&lt;/literal&gt;.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="lines">@@ -632,13 +713,62 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;object&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         An object containing the query ID and its parameters.
</del><ins>+         The parameters that are passed to the query,
+         &lt;literal&gt;_queryFilter&lt;/literal&gt;, \
&lt;literal&gt;_queryId&lt;/literal&gt;, or +         \
&lt;literal&gt;_queryExpression&lt;/literal&gt;. Additional parameters passed to +    \
the query will differ, depending on the query. </ins><span class="cx">         \
&lt;/para&gt; </span><ins>+        &lt;para&gt;
+         Certain common parameters can be passed to the query to restrict the
+         query results. The following sample query passes paging parameters and
+         sort keys to the query.
+        &lt;/para&gt;
+        &lt;informalexample&gt;&lt;?dbfo pgwide=&quot;1&quot;?&gt;
+&lt;programlisting&gt;reconAudit = openidm.query(&quot;audit/recon&quot;, {
+    &quot;_queryFilter&quot;: queryFilter,
+    &quot;_pageSize&quot;: limit,
+    &quot;_pagedResultsOffset&quot;: offset,
+    &quot;_pagedResultsCookie&quot;: string,
+    &quot;_sortKeys&quot;: &quot;-timestamp&quot;
+});&lt;/programlisting&gt;
+        &lt;/informalexample&gt;
+        &lt;para&gt;
+         For more information about &lt;literal&gt;_queryFilter&lt;/literal&gt; \
syntax, see +         &lt;link xlink:show=&quot;new&quot; \
xlink:href=&quot;integrators-guide#query-filters&quot; +         \
xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;&lt;citetitle&gt;Common \
+         Filter Expressions&lt;/citetitle&gt;&lt;/link&gt;. For more information \
about +         paging, see &lt;link xlink:show=&quot;new&quot;
+         xlink:href=&quot;integrators-guide#paging-query-results&quot;
+         xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;&lt;citetitle&gt;Paging
 +         Query Results&lt;/citetitle&gt;&lt;/link&gt;.
+        &lt;/para&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><ins>+      &lt;varlistentry&gt;
+       &lt;term&gt;fields&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         list
+        &lt;/para&gt;
+        &lt;para&gt;
+         A list of the fields, or columns, that should be returned in the
+         result. The following example returns only the
+         &lt;literal&gt;userName&lt;/literal&gt; and \
&lt;literal&gt;_id&lt;/literal&gt; fields: +        &lt;/para&gt;
+        &lt;programlisting language=&quot;javascript&quot;&gt;
+openidm.query(&quot;managed/user&quot;, { &quot;_queryFilter&quot;: &quot;/userName \
sw \&quot;user.1\&quot;&quot;}, [&quot;userName&quot;, &quot;_id&quot;]) +        \
&lt;/programlisting&gt; +        &lt;para&gt;
+         This parameter is particularly useful in enabling you to return the
+         response from a query without including intermediary code to massage it
+         into the right format.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
</ins><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
</del><ins>+     &lt;blockquote&gt;
+     &lt;title&gt;Returns&lt;/title&gt;
</ins><span class="cx">      &lt;para&gt;
</span><span class="cx">       The result of the query. A query result includes the \
following parameters: </span><span class="cx">      &lt;/para&gt;
</span><span class="lines">@@ -695,12 +825,32 @@
</span><span class="cx">   ],
</span><span class="cx">   &quot;query-time-ms&quot;: 1
</span><span class="cx"> }
</span><del>-     &lt;/programlisting&gt;
</del><ins>+      &lt;/programlisting&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-     &lt;para&gt;
-      An exception is thrown if the given query could not be processed.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       An exception is thrown if the given query could not be processed.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Examples&lt;/title&gt;
+      &lt;para&gt;
+       The following sample query uses a &lt;literal&gt;_queryFilter&lt;/literal&gt; \
to +       query the managed user repository.
+      &lt;/para&gt;
+      &lt;programlisting&gt;openidm.query(&quot;managed/user&quot;,
+{ '_queryFilter' : userIdPropertyName + ' eq &quot;' + security.authenticationId  + \
'&quot;' });&lt;/programlisting&gt; +      &lt;para&gt;
+       The following sample query references the \
&lt;literal&gt;for-userName&lt;/literal&gt; +       query, defined in the repository \
configuration, to query the managed user +       repository.
+      &lt;/para&gt;
+      &lt;programlisting&gt;openidm.query(&quot;managed/user&quot;,
+{&quot;_queryId&quot;: &quot;for-userName&quot;, &quot;uid&quot;: \
request.additionalParameters.uid } );&lt;/programlisting&gt; +     \
&lt;/blockquote&gt; </ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-action&quot;&gt;
</span><span class="lines">@@ -718,7 +868,8 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The resource that the function acts upon, such as managed/user.
</del><ins>+         The resource that the function acts upon, for example,
+         &lt;literal&gt;managed/user&lt;/literal&gt;.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="lines">@@ -727,14 +878,206 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">         &lt;para&gt;
</span><del>-         The action to execute.
</del><ins>+         The action to execute. Actions are used to represent \
functionality that +         is not covered by the standard methods for a resource \
(create, read, +         update, delete, patch, or query). In general, you should not \
use the +         &lt;literal&gt;openidm.action&lt;/literal&gt; function for create, \
read, update, +         patch, delete or query operations. Instead, use the \
corresponding +         function specific to the operation (for example,
+         &lt;literal&gt;openidm.create&lt;/literal&gt;).
</ins><span class="cx">         &lt;/para&gt;
</span><ins>+        &lt;para&gt;
+         Using the operation-specific functions enables you to benefit from the
+         well-defined REST API, which follows the same pattern as all other
+         standard resources in the system. Using the REST API enhances usability
+         for your own API enforces the established patterns described in the
+         &lt;link xlink:show=&quot;new&quot; \
xlink:href=&quot;integrators-guide#appendix-rest&quot; +         \
xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;&lt;citetitle&gt;REST \
API +         Reference&lt;/citetitle&gt;&lt;/link&gt;.
+        &lt;/para&gt;
+        &lt;para&gt;
+         OpenIDM-defined resources support a fixed set of actions. For
+         user-defined resources (scriptable endpoints) you can implement
+         whatever actions you require.
+        &lt;/para&gt;
+        &lt;variablelist&gt;
+         &lt;para&gt;
+          The following list outlines the supported actions, for each
+          OpenIDM-defined resource. The actions listed here are also supported
+          over the REST interface, and are described in detail in the &lt;link
+          xlink:href=&quot;integrators-guide#appendix-rest&quot;
+          xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;&lt;citetitle&gt;REST
 +          Appendix&lt;/citetitle&gt;&lt;/link&gt;.
+         &lt;/para&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the managed resource
+           (&lt;literal&gt;managed/&lt;replaceable&gt;*&lt;/replaceable&gt;&lt;/literal&gt;)
 +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            command, patch-by-query
+           &lt;/para&gt;
+          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on system resources
+           (&lt;literal&gt;system/&lt;replaceable&gt;*&lt;/replaceable&gt;&lt;/literal&gt;)
 +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            availableConnectors, createCoreConfig, createFullConfig, test,
+            testConfig, liveSync, authenticate, script
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.action(&quot;system/ldap/account&quot;, \
&quot;authenticate&quot;, {}, +{&quot;userName&quot; : &quot;bjensen&quot;, \
&quot;password&quot; : &quot;Passw0rd&quot;});&lt;/programlisting&gt; +          \
&lt;/listitem&gt; +         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the repository (&lt;literal&gt;repo&lt;/literal&gt;)
+          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            command, updateDbCredentials
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;programlisting language=&quot;javascript&quot;&gt;var r, command = {
+    &quot;commandId&quot;: &quot;purge-by-recon-number-of&quot;,
+    &quot;numberOf&quot;: numOfRecons,
+    &quot;includeMapping&quot; : includeMapping,
+    &quot;excludeMapping&quot; : excludeMapping
+};
+r = openidm.action(&quot;repo/audit/recon&quot;, &quot;command&quot;, {}, \
command);&lt;/programlisting&gt; +          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the synchronization resource \
(&lt;literal&gt;sync&lt;/literal&gt;) +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            performAction,
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.action('sync', 'performAction', content, \
params)&lt;/programlisting&gt; +          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the reconciliation resource \
(&lt;literal&gt;recon&lt;/literal&gt;) +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            recon, cancel
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.action(&quot;recon&quot;, \
&quot;cancel&quot;, content, params);&lt;/programlisting&gt; +          \
&lt;/listitem&gt; +         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the script resource \
(&lt;literal&gt;script&lt;/literal&gt;) +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            eval
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;programlisting \
language=&quot;javascript&quot;&gt;openidm.action(&quot;script&quot;, \
&quot;eval&quot;, getConfig(scriptConfig), {});&lt;/programlisting&gt; +          \
&lt;/listitem&gt; +         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the policy resource \
(&lt;literal&gt;policy&lt;/literal&gt;) +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            validateObject, validateProperty
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;informalexample&gt;&lt;?dbfo pgwide=&quot;1&quot;?&gt;
+&lt;programlisting language=&quot;javascript&quot;&gt;openidm.action(&quot;policy/&quot; \
+ fullResourcePath, &quot;validateObject&quot;, request.content, { \
&quot;external&quot; : &quot;true&quot; });&lt;/programlisting&gt; +           \
&lt;/informalexample&gt; +          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the workflow resource \
(&lt;literal&gt;workflow/*&lt;/literal&gt;) +          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            claim, createProcessInstance
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+           &lt;informalexample&gt;&lt;?dbfo pgwide=&quot;1&quot;?&gt;
+&lt;programlisting language=&quot;javascript&quot;&gt;var params = {
+&quot;_key&quot; : &quot;EmailNotification&quot;,
+&quot;fromSender&quot; : &quot;admin@example.com&quot;,
+&quot;toEmail&quot; : &quot;bjensen@example.com&quot;
+};
+openidm.action('workflow/processinstance', {&quot;_action&quot; : \
&quot;createProcessInstance&quot;}, params);&lt;/programlisting&gt; +           \
&lt;/informalexample&gt; +          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the task scanner resource
+           (&lt;literal&gt;taskscanner&lt;/literal&gt;)
+          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            execute, cancel
+           &lt;/para&gt;
+          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+         &lt;varlistentry&gt;
+          &lt;term&gt;
+           Actions supported on the external email resource
+           (&lt;literal&gt;external/email&lt;/literal&gt;)
+          &lt;/term&gt;
+          &lt;listitem&gt;
+           &lt;para&gt;
+            sendEmail
+           &lt;/para&gt;
+           &lt;para&gt;
+            For example:
+           &lt;/para&gt;
+            &lt;programlisting language=&quot;javascript&quot;&gt;{
+    emailParams = {
+        &quot;from&quot; : 'admin@example.com',
+        &quot;to&quot; : user.mail,
+        &quot;subject&quot; : 'Password expiry notification',
+        &quot;type&quot; : 'text/plain',
+        &quot;body&quot; : 'Your password will expire soon. Please change it!'
+    }
+    openidm.action(&quot;external/email&quot;, 'sendEmail',  emailParams);
+}&lt;/programlisting&gt;
+          &lt;/listitem&gt;
+         &lt;/varlistentry&gt;
+        &lt;/variablelist&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;content&lt;/term&gt;
</span><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;object&lt;/para&gt;
</del><ins>+        &lt;para&gt;object (optional)&lt;/para&gt;
</ins><span class="cx">         &lt;para&gt;
</span><span class="cx">          Content given to the action for processing.
</span><span class="cx">         &lt;/para&gt;
</span><span class="lines">@@ -743,26 +1086,31 @@
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;params&lt;/term&gt;
</span><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;object&lt;/para&gt;
</del><ins>+        &lt;para&gt;object (optional)&lt;/para&gt;
</ins><span class="cx">         &lt;para&gt;
</span><del>-         Parameters are key/value strings. You may see them in \
                JavaScript files
-         with entries such as
-         &lt;literal&gt;request.additionalParameters.userId&lt;/literal&gt; and
-         &lt;literal&gt;request.additionalParameters.mapping&lt;/literal&gt;.
</del><ins>+         Additional parameters passed to the script. The
+         &lt;literal&gt;params&lt;/literal&gt; object must be a set of simple \
key:value +         pairs, and cannot include complex values. The parameters must map
+         directly to URL variables, which take the form
+         &lt;literal&gt;name1=val1&amp;amp;name2=val2&amp;amp;...&lt;/literal&gt;.
</ins><span class="cx">         &lt;/para&gt;
</span><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">      &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-     &lt;para&gt;
-      The result of the action may be &lt;literal&gt;null&lt;/literal&gt;.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       The result of the action may be &lt;literal&gt;null&lt;/literal&gt;.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-     &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-     &lt;para&gt;
-      If the action cannot be executed, an exception is thrown.
-     &lt;/para&gt;
</del><ins>+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       If the action cannot be executed, an exception is thrown.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
</ins><span class="cx">     &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;function-encrypt&quot;&gt;
</span><span class="lines">@@ -774,215 +1122,293 @@
</span><span class="cx">       &lt;title&gt;Parameters&lt;/title&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;value&lt;/term&gt;
</span><del>-        &lt;listitem&gt;
-         &lt;para&gt;any&lt;/para&gt;
-         &lt;para&gt;
-          The value to be encrypted.
-         &lt;/para&gt;
-        &lt;/listitem&gt;
-       &lt;/varlistentry&gt;
</del><ins>+       &lt;listitem&gt;
+        &lt;para&gt;any&lt;/para&gt;
+        &lt;para&gt;
+         The value to be encrypted.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;cipher&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;string&lt;/para&gt;
+        &lt;para&gt;
+         The cipher with which to encrypt the value, using the form
+         &quot;algorithm/mode/padding&quot; or just &quot;algorithm&quot;. Example:
+         &lt;literal&gt;AES/ECB/PKCS5Padding&lt;/literal&gt;.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;alias&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;string&lt;/para&gt;
+        &lt;para&gt;
+         The key alias in the keystore with which to encrypt the node.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       The value, encrypted with the specified cipher and key.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+       &lt;para&gt;
+        An exception is thrown if the object could not be encrypted for any
+        reason.
+       &lt;/para&gt;
+     &lt;/blockquote&gt;
+     &lt;/section&gt;
+
+    &lt;section xml:id=&quot;function-decrypt&quot;&gt;
+     &lt;title&gt;openidm.decrypt(value)&lt;/title&gt;
+     &lt;para&gt;This function decrypts a value.&lt;/para&gt;
+     &lt;variablelist&gt;
+      &lt;title&gt;Parameters&lt;/title&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;value&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;object&lt;/para&gt;
+        &lt;para&gt;
+         The value to be decrypted.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       A deep copy of the value, with any encrypted value decrypted.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+      &lt;para&gt;
+       An exception is thrown if the object could not be decrypted for any
+       reason. An error is thrown if the value is passed in as a string - it
+       must be passed in an object.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+    &lt;/section&gt;
+
+    &lt;section xml:id=&quot;function-isencrypted&quot;&gt;
+     &lt;title&gt;openidm.isEncrypted(object)&lt;/title&gt;
+     &lt;para&gt;
+      This function determines if a value is encrypted.
+     &lt;/para&gt;
+     &lt;variablelist&gt;
+      &lt;title&gt;Parameters&lt;/title&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;object to check&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;any&lt;/para&gt;
+        &lt;para&gt;
+         The object whose value should be checked to determine if it is
+         encrypted.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Returns&lt;/title&gt;
+      &lt;para&gt;
+       Boolean, &lt;literal&gt;true&lt;/literal&gt; if the value is encrypted, and
+       &lt;literal&gt;false&lt;/literal&gt; if it is not encrypted.
+      &lt;/para&gt;
+     &lt;/blockquote&gt;
+
+     &lt;blockquote&gt;
+      &lt;title&gt;Throws&lt;/title&gt;
+       &lt;para&gt;
+        An exception is thrown if the server is unable to detect whether the
+        value is encrypted, for any reason.
+       &lt;/para&gt;
+     &lt;/blockquote&gt;
+    &lt;/section&gt;
+
+    &lt;section xml:id=&quot;logger-functions&quot;&gt;
+     &lt;title&gt;Logging Functions&lt;/title&gt;
+     &lt;para&gt;
+      OpenIDM also provides a &lt;literal&gt;logger&lt;/literal&gt; object to access \
the +      Simple Logging Facade for Java (SLF4J) facilities. The following code
+      shows an example of the &lt;literal&gt;logger&lt;/literal&gt; object.
+     &lt;/para&gt;
+     &lt;programlisting \
language=&quot;javascript&quot;&gt;logger.info(&quot;Parameters passed in: {} {} \
{}&quot;, param1, param2, param3);&lt;/programlisting&gt; +     &lt;para&gt;
+      To set the log level for all scripts, add the following property to the
+      &lt;filename&gt;openidm/conf/logging.properties&lt;/filename&gt; file:
+      &lt;literal&gt;org.forgerock.openidm.script.javascript.JavaScript.level&lt;/literal&gt;.
 +      The level can be one of &lt;literal&gt;SEVERE&lt;/literal&gt; (highest \
value), +      &lt;literal&gt;WARNING, INFO, CONFIG, FINE, FINER&lt;/literal&gt;, or
+      &lt;literal&gt;FINEST&lt;/literal&gt; (lowest value). For example:
+     &lt;/para&gt;
+     &lt;programlisting \
language=&quot;javascript&quot;&gt;org.forgerock.script.javascript.JavaScript.level=WARNING&lt;/programlisting&gt;
 +     &lt;para&gt;
+      In addition, JavaScript has a useful logging function named
+      &lt;literal&gt;console.log()&lt;/literal&gt;. This function provides an easy \
way to +      dump data to the OpenIDM standard output (usually the same output as \
the +      Felix console). The function works well with the JavaScript built-in
+      function &lt;literal&gt;JSON.stringify&lt;/literal&gt; and provides \
fine-grained +      details about any given object. For example, the following line \
will +      print a formatted JSON structure that represents the HTTP request details
+      to STDOUT.&lt;/para&gt;
+     &lt;programlisting \
language=&quot;javascript&quot;&gt;console.log(JSON.stringify(context.http, null, \
4));&lt;/programlisting&gt; +     &lt;para&gt;
+      For more information, see .
+     &lt;/para&gt;
+     &lt;note&gt;
+      &lt;para&gt;
+       These logging functions apply only to JavaScript scripts. To use the
+       logging functions in Groovy scripts, the following lines must be added to
+       the Groovy scripts:
+      &lt;/para&gt;
+      &lt;programlisting&gt;
+import org.slf4j.*;
+logger = LoggerFactory.getLogger('logger');
+      &lt;/programlisting&gt;
+     &lt;/note&gt;
+     &lt;para&gt;
+      The following sections describe the logging functions available to the
+      script engine.
+     &lt;/para&gt;
+
+     &lt;section xml:id=&quot;function-logger-debug&quot;&gt;
+      &lt;title&gt;logger.debug(string message, object... params)&lt;/title&gt;
+      &lt;para&gt;
+       Logs a message at DEBUG level.
+      &lt;/para&gt;
+      &lt;variablelist&gt;
+       &lt;title&gt;Parameters&lt;/title&gt;
</ins><span class="cx">        &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;cipher&lt;/term&gt;
</del><ins>+        &lt;term&gt;message&lt;/term&gt;
</ins><span class="cx">         &lt;listitem&gt;
</span><span class="cx">          &lt;para&gt;string&lt;/para&gt;
</span><span class="cx">          &lt;para&gt;
</span><del>-          The cipher with which to encrypt the value, using the form
-          &quot;algorithm/mode/padding&quot; or just &quot;algorithm&quot;. Example:
-          &lt;literal&gt;AES/ECB/PKCS5Padding&lt;/literal&gt;.
</del><ins>+          The message format to log. Params replace \
&lt;literal&gt;{}&lt;/literal&gt; in +          your message.
</ins><span class="cx">          &lt;/para&gt;
</span><span class="cx">         &lt;/listitem&gt;
</span><span class="cx">        &lt;/varlistentry&gt;
</span><span class="cx">        &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;alias&lt;/term&gt;
</del><ins>+        &lt;term&gt;params&lt;/term&gt;
</ins><span class="cx">         &lt;listitem&gt;
</span><del>-         &lt;para&gt;string&lt;/para&gt;
</del><ins>+         &lt;para&gt;object&lt;/para&gt;
</ins><span class="cx">          &lt;para&gt;
</span><del>-          The key alias in the keystore with which to encrypt the node.
</del><ins>+          Arguments to include in the message.
</ins><span class="cx">          &lt;/para&gt;
</span><span class="cx">         &lt;/listitem&gt;
</span><span class="cx">        &lt;/varlistentry&gt;
</span><span class="cx">       &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-      &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-      &lt;para&gt;
-       The value, encrypted with the specified cipher and key.
-      &lt;/para&gt;
-
-      &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-      &lt;para&gt;
-       An exception is thrown if the object could not be encrypted for any reason.
-      &lt;/para&gt;
-     &lt;/section&gt;
-
-     &lt;section xml:id=&quot;function-decrypt&quot;&gt;
-      &lt;title&gt;openidm.decrypt(value)&lt;/title&gt;
-       &lt;para&gt;This function decrypts a value.&lt;/para&gt;
-       &lt;variablelist&gt;
-        &lt;title&gt;Parameters&lt;/title&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;value&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;any&lt;/para&gt;
-          &lt;para&gt;
-           The value to be decrypted.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-       &lt;/variablelist&gt;
-       &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Returns&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><del>-        A deep copy of the value, with any encrypted value decrypted.
</del><ins>+        A &lt;literal&gt;null&lt;/literal&gt; value if successful.
</ins><span class="cx">        &lt;/para&gt;
</span><del>-       &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-       &lt;para&gt;
-        An exception is thrown if the object could not be decrypted for any
-        reason.
-       &lt;/para&gt;
-      &lt;/section&gt;
</del><ins>+      &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-      &lt;section xml:id=&quot;function-isencrypted&quot;&gt;
-       &lt;title&gt;openidm.isEncrypted(object)&lt;/title&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Throws&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><del>-        This function determines if a value is encrypted.
-       &lt;/para&gt;
-       &lt;variablelist&gt;
-        &lt;title&gt;Parameters&lt;/title&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;object to check&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;any&lt;/para&gt;
-          &lt;para&gt;
-           The object whose value should be checked to determine if it is
-           encrypted.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-       &lt;/variablelist&gt;
-       &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-       &lt;para&gt;
-        Boolean, &lt;literal&gt;true&lt;/literal&gt; if the value is encrypted, and
-        &lt;literal&gt;false&lt;/literal&gt; if it is not encrypted.
-       &lt;/para&gt;
-       &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-       &lt;para&gt;
-        An exception is thrown if the server is unable to detect whether the
-        value is encrypted, for any reason.
-       &lt;/para&gt;
-      &lt;/section&gt;
-
-      &lt;section xml:id=&quot;function-logger-debug&quot;&gt;
-       &lt;title&gt;logger.debug(string message, object... params)&lt;/title&gt;
-       &lt;para&gt;
-        Logs a message at DEBUG level.
-       &lt;/para&gt;
-       &lt;variablelist&gt;
-        &lt;title&gt;Parameters&lt;/title&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;message&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;string&lt;/para&gt;
-          &lt;para&gt;
-           The message format to log. Params replace \
                &lt;literal&gt;{}&lt;/literal&gt; in
-           your message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;params&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;object&lt;/para&gt;
-          &lt;para&gt;
-           Arguments to include in the message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-       &lt;/variablelist&gt;
-       &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-       &lt;para&gt;
-        A &lt;literal&gt;null&lt;/literal&gt; value if successful.
-       &lt;/para&gt;
-       &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-       &lt;para&gt;
</del><span class="cx">         An exception is thrown if the message could not be \
logged. </span><span class="cx">        &lt;/para&gt;
</span><del>-      &lt;/section&gt;
</del><ins>+      &lt;/blockquote&gt;
+     &lt;/section&gt;
</ins><span class="cx"> 
</span><del>-      &lt;section xml:id=&quot;function-logger-error&quot;&gt;
-       &lt;title&gt;logger.error(string message, object... params)&lt;/title&gt;
-       &lt;para&gt;
-        Logs a message at ERROR level.
-       &lt;/para&gt;
-       &lt;variablelist&gt;
-        &lt;title&gt;Parameters&lt;/title&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;message&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;string&lt;/para&gt;
-          &lt;para&gt;
-           The message format to log. Params replace \
                &lt;literal&gt;{}&lt;/literal&gt; in
-           your message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;params&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;object&lt;/para&gt;
-          &lt;para&gt;
-           Arguments to include in the message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-       &lt;/variablelist&gt;
</del><ins>+     &lt;section xml:id=&quot;function-logger-error&quot;&gt;
+      &lt;title&gt;logger.error(string message, object... params)&lt;/title&gt;
+      &lt;para&gt;
+       Logs a message at ERROR level.
+      &lt;/para&gt;
+      &lt;variablelist&gt;
+       &lt;title&gt;Parameters&lt;/title&gt;
+       &lt;varlistentry&gt;
+        &lt;term&gt;message&lt;/term&gt;
+        &lt;listitem&gt;
+         &lt;para&gt;string&lt;/para&gt;
+         &lt;para&gt;
+          The message format to log. Params replace \
&lt;literal&gt;{}&lt;/literal&gt; in +          your message.
+         &lt;/para&gt;
+        &lt;/listitem&gt;
+       &lt;/varlistentry&gt;
+       &lt;varlistentry&gt;
+        &lt;term&gt;params&lt;/term&gt;
+        &lt;listitem&gt;
+         &lt;para&gt;object&lt;/para&gt;
+         &lt;para&gt;
+          Arguments to include in the message.
+         &lt;/para&gt;
+        &lt;/listitem&gt;
+       &lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
</ins><span class="cx"> 
</span><del>-       &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Returns&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><span class="cx">         A &lt;literal&gt;null&lt;/literal&gt; value if \
successful. </span><span class="cx">        &lt;/para&gt;
</span><ins>+      &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-       &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Throws&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><span class="cx">         An exception is thrown if the message could not be \
logged. </span><span class="cx">        &lt;/para&gt;
</span><del>-      &lt;/section&gt;
</del><ins>+      &lt;/blockquote&gt;
+     &lt;/section&gt;
</ins><span class="cx"> 
</span><del>-      &lt;section xml:id=&quot;function-logger-info&quot;&gt;
-       &lt;title&gt;logger.info(string message, object... params)&lt;/title&gt;
-       &lt;para&gt;
-        Logs a message at INFO level.
-       &lt;/para&gt;
-       &lt;variablelist&gt;
-        &lt;title&gt;Parameters&lt;/title&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;message&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;string&lt;/para&gt;
-          &lt;para&gt;
-           The message format to log. Params replace \
                &lt;literal&gt;{}&lt;/literal&gt; in
-           your message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-        &lt;varlistentry&gt;
-         &lt;term&gt;params&lt;/term&gt;
-         &lt;listitem&gt;
-          &lt;para&gt;object&lt;/para&gt;
-          &lt;para&gt;
-           Arguments to include in the message.
-          &lt;/para&gt;
-         &lt;/listitem&gt;
-        &lt;/varlistentry&gt;
-       &lt;/variablelist&gt;
</del><ins>+     &lt;section xml:id=&quot;function-logger-info&quot;&gt;
+      &lt;title&gt;logger.info(string message, object... params)&lt;/title&gt;
+      &lt;para&gt;
+       Logs a message at INFO level.
+      &lt;/para&gt;
+      &lt;variablelist&gt;
+       &lt;title&gt;Parameters&lt;/title&gt;
+       &lt;varlistentry&gt;
+        &lt;term&gt;message&lt;/term&gt;
+        &lt;listitem&gt;
+         &lt;para&gt;string&lt;/para&gt;
+         &lt;para&gt;
+          The message format to log. Params replace \
&lt;literal&gt;{}&lt;/literal&gt; in +          your message.
+         &lt;/para&gt;
+        &lt;/listitem&gt;
+       &lt;/varlistentry&gt;
+       &lt;varlistentry&gt;
+        &lt;term&gt;params&lt;/term&gt;
+        &lt;listitem&gt;
+         &lt;para&gt;object&lt;/para&gt;
+         &lt;para&gt;
+          Arguments to include in the message.
+         &lt;/para&gt;
+        &lt;/listitem&gt;
+       &lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
</ins><span class="cx"> 
</span><del>-       &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Returns&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><span class="cx">         A &lt;literal&gt;null&lt;/literal&gt; value if \
successful. </span><span class="cx">        &lt;/para&gt;
</span><ins>+      &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-       &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Throws&lt;/title&gt;
</ins><span class="cx">        &lt;para&gt;
</span><span class="cx">         An exception is thrown if the message could not be \
logged. </span><span class="cx">        &lt;/para&gt;
</span><ins>+      &lt;/blockquote&gt;
</ins><span class="cx">      &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">      &lt;section \
xml:id=&quot;function-logger-trace&quot;&gt; </span><span class="lines">@@ -1013,15 \
+1439,19 @@ </span><span class="cx">        &lt;/varlistentry&gt;
</span><span class="cx">       &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-      &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-      &lt;para&gt;
-       A &lt;literal&gt;null&lt;/literal&gt; value if successful.
-      &lt;/para&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Returns&lt;/title&gt;
+       &lt;para&gt;
+        A &lt;literal&gt;null&lt;/literal&gt; value if successful.
+       &lt;/para&gt;
+      &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-      &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-      &lt;para&gt;
-       An exception is thrown if the message could not be logged.
-      &lt;/para&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Throws&lt;/title&gt;
+       &lt;para&gt;
+        An exception is thrown if the message could not be logged.
+       &lt;/para&gt;
+      &lt;/blockquote&gt;
</ins><span class="cx">      &lt;/section&gt;
</span><span class="cx"> 
</span><span class="cx">      &lt;section xml:id=&quot;function-logger-warn&quot;&gt;
</span><span class="lines">@@ -1052,17 +1482,22 @@
</span><span class="cx">        &lt;/varlistentry&gt;
</span><span class="cx">       &lt;/variablelist&gt;
</span><span class="cx"> 
</span><del>-      &lt;bridgehead&gt;Returns&lt;/bridgehead&gt;
-      &lt;para&gt;
-       A &lt;literal&gt;null&lt;/literal&gt; value if successful.
-      &lt;/para&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Returns&lt;/title&gt;
+       &lt;para&gt;
+        A &lt;literal&gt;null&lt;/literal&gt; value if successful.
+       &lt;/para&gt;
+      &lt;/blockquote&gt;
</ins><span class="cx"> 
</span><del>-      &lt;bridgehead&gt;Throws&lt;/bridgehead&gt;
-      &lt;para&gt;
-       An exception is thrown if the message could not be logged.
-      &lt;/para&gt;
</del><ins>+      &lt;blockquote&gt;
+       &lt;title&gt;Throws&lt;/title&gt;
+       &lt;para&gt;
+        An exception is thrown if the message could not be logged.
+       &lt;/para&gt;
+      &lt;/blockquote&gt;
</ins><span class="cx">      &lt;/section&gt;
</span><span class="cx">     &lt;/section&gt;
</span><ins>+    &lt;/section&gt;
</ins><span class="cx"> 
</span><span class="cx">     &lt;section xml:id=&quot;script-places&quot;&gt;
</span><span class="cx">      &lt;title&gt;Places to Trigger Scripts&lt;/title&gt;
</span><span class="lines">@@ -1167,8 +1602,9 @@
</span><span class="cx">      &lt;title&gt;Variables Available in \
Scripts&lt;/title&gt; </span><span class="cx">      &lt;para&gt;
</span><span class="cx">       The variables that are available to scripts depend on \
the triggers that </span><del>-      launch the script. The following section \
                outlines the available variables,
-      per trigger.
</del><ins>+      launch the script, and on the locations in which those triggers are
+      defined. The following section outlines the available variables, per
+      trigger.
</ins><span class="cx">      &lt;/para&gt;
</span><span class="cx">      &lt;variablelist&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="lines">@@ -1192,13 +1628,23 @@
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;onCreate, postCreate&lt;/term&gt;
</span><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;object, source, target&lt;/para&gt;
</del><ins>+        &lt;para&gt;
+         Triggered in &lt;filename&gt;sync.json&lt;/filename&gt; : object, source, \
target +        &lt;/para&gt;
+        &lt;para&gt;
+         Triggered in &lt;filename&gt;managed.json&lt;/filename&gt; : object
+        &lt;/para&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;onDelete, postDelete&lt;/term&gt;
</span><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;object&lt;/para&gt;
</del><ins>+        &lt;para&gt;
+         Triggered in &lt;filename&gt;sync.json&lt;/filename&gt; : object, source, \
target +        &lt;/para&gt;
+        &lt;para&gt;
+         Triggered in &lt;filename&gt;managed.json&lt;/filename&gt; : object
+        &lt;/para&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="lines">@@ -1246,7 +1692,12 @@
</span><span class="cx">       &lt;varlistentry&gt;
</span><span class="cx">        &lt;term&gt;onUpdate, postUpdate&lt;/term&gt;
</span><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;oldObject, newObject&lt;/para&gt;
</del><ins>+        &lt;para&gt;
+         Triggered in &lt;filename&gt;sync.json&lt;/filename&gt; : source, target
+        &lt;/para&gt;
+        &lt;para&gt;
+         Triggered in &lt;filename&gt;managed.json&lt;/filename&gt; : oldObject, \
newObject +        &lt;/para&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><span class="cx">       &lt;/varlistentry&gt;
</span><span class="cx">       &lt;varlistentry&gt;
</span></span></pre>
</div>
</div>
<div id="footer">Copyright (c) by ForgeRock. All rights reserved.</div>

</body>
</html>



_______________________________________________
CommitOpenIDM mailing list
CommitOpenIDM@forgerock.org
https://lists.forgerock.org/mailman/listinfo/commitopenidm


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

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