<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hello Alexander,<br>
<br>
I've enhanced our sample to cover also this case. You can find it
in today's commit: <a
href="https://github.com/Evolveum/midpoint/commit/4ad1df9eb787ebee0f1ba4cf5920d29ac31797bb">https://github.com/Evolveum/midpoint/commit/4ad1df9eb787ebee0f1ba4cf5920d29ac31797bb</a><br>
<br>
The code looks like this:<br>
<br>
private static void changeUserGivenName(ModelPortType modelPort,
String oid, String newValue) throws FaultMessage {<br>
Document doc = ModelClientUtil.getDocumnent();<br>
ObjectModificationType userDelta = new
ObjectModificationType();<br>
userDelta.setOid(oid);<br>
ItemDeltaType itemDelta = new ItemDeltaType();<br>
itemDelta.setModificationType(ModificationTypeType.REPLACE);<br>
ItemDeltaType.Value itemValue = new ItemDeltaType.Value();<br>
<b>
itemValue.getAny().add(ModelClientUtil.toJaxbElement(ModelClientUtil.COMMON_GIVEN_NAME,
ModelClientUtil.createPolyStringType(newValue, doc)));</b><b><br>
</b> itemDelta.setValue(itemValue);<br>
userDelta.getModification().add(itemDelta);<br>
modelPort.modifyObject(ModelClientUtil.getTypeUri(UserType.class),
userDelta);<br>
}<br>
<br>
Instead of setting <font color="#000099">"path = givenName",
value to replace = "<value>abc</value>"</font> it is
necessary to set the parameters as following:<br>
<br>
<font color="#000099"> path = (nothing)<br>
value to replace = <givenName>abc</givenName><br>
</font><br>
(Note that I've also added appropriate QName constant into
ModelClientUtil, although you can of course provide such a value
directly in your code.)<br>
<br>
Hope this helps,<br>
Pavol<br>
<br>
On 27. 3. 2014 18:29, Alexander Grzesik wrote:<br>
</div>
<blockquote
cite="mid:6d48e1e7-815f-48f3-be12-760eaa715de1@medisite.de"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<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;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 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.E-MailFormatvorlage17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 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]-->
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I am trying to use the
ModelClient to use Midpoint as IDM Backend for an external
application.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Based on the ModelSample
I was able to create, delete, modify roles and change
password of a user.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">What I did not found out
is how to modify a simple attribute of a User (e.g.
givenName).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">My code looks like this:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:10.0pt;font-family:Consolas;color:black"
lang="EN-US">Document doc = ModelClientUtil.<i>getDocumnent</i>();</span><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:10.0pt;font-family:Consolas;color:black"
lang="EN-US">ObjectModificationType userDelta = </span><b><span
style="font-size:10.0pt;font-family:Consolas;color:#7F0055" lang="EN-US">new</span></b><span
style="font-size:10.0pt;font-family:Consolas;color:black"
lang="EN-US"> ObjectModificationType();</span><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:Consolas;color:black"
lang="EN-US">userDelta.setOid(oid);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ItemDeltaType delta =
new ItemDeltaType();<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">delta.setModificationType(ModificationTypeType.REPLACE);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">delta.setPath(ModelClientUtil.createPathElement("givenName",
doc));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ItemDeltaType.Value
value = new ItemDeltaType.Value();<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">value.getAny().add(<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">
ModelClientUtil.toJaxbElement(ModelClientUtil.COMMON_VALUE,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">
ModelClientUtil.createPolyStringType((String) newValue,
doc)));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">delta.setValue(value);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">userDelta.getModification().add(delta);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">modelPort.modifyObject(ModelClientUtil.getTypeUri(UserType.class),
userDelta);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I get the following
error:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">com.evolveum.midpoint.xml.ns._public.common.fault_1_wsdl.FaultMessage:
Looking for definition of class class
com.evolveum.midpoint.prism.PrismContainerDefinition but
found PPD:{.../common/common-2a}givenName
{<a class="moz-txt-link-freetext" href="http://prism.evolveum.com/xml/ns/public/types-2">http://prism.evolveum.com/xml/ns/public/types-2</a>}PolyStringType[0,1],RCU<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Could you give me an
example how to modify properties of a User via the
ModelClient api?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Alexander<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
</blockquote>
<br>
</body>
</html>