[midPoint] assignmentTargetSearch "null polystring orig" error
Radovan Semancik
radovan.semancik at evolveum.com
Mon Dec 7 17:36:38 CET 2015
Thanks. Documentation is fixed.
On 12/07/2015 05:31 PM, Devin Rosenbauer wrote:
> Perfect! That appears to work!
>
> I found it in various places:
>
> The expression explained here simply doesn't work in 3.3. I had to
> modify quite a few things:
> https://wiki.evolveum.com/display/midPoint/Expression#Expression-AssignmentTargetSearch
>
> The search filter layout I used was here:
> https://wiki.evolveum.com/display/midPoint/XML+Object+Query
>
> After reading those pages, I misread the sample at
> /samples/demo-generic synchronization/object-template-user.xml and
> missed that there was indeed no <q:value> tag in the sample. I had
> also poked around through the schema and observed that <value> was an
> allowed field at that location, so I figured that couldn't have been
> the problem.
>
> Thanks!
>
>
>
>
> On Mon, Dec 7, 2015 at 11:20 AM, Radovan Semancik
> <radovan.semancik at evolveum.com <mailto:radovan.semancik at evolveum.com>>
> wrote:
>
> Hi,
>
> I have extended our object template tests to make sure that this
> case works. And it really works. After extending the tests I have
> found the error in your definition.
>
> Instead of
>
> <q:equal>
> <q:path>c:name</q:path>
> <q:value>
> <expression>
> <path>$givenName</path>
> </expression>
> </q:value>
> </q:equal>
>
> use
>
> <q:equal>
> <q:path>c:name</q:path>
> <expression>
> <path>$givenName</path>
> </expression>
> </q:equal>
>
>
> i.e. remove the <q:value> element. In your case midPoint
> interpreted the whole <expression>...</expression> as a literal
> value which caused strange things to happen ...
>
> BTW, could you point me to the documentation that you have used to
> create your code, please? It perhaps needs an update.
>
> --
> Radovan Semancik
> Software Architect
> evolveum.com <http://evolveum.com>
>
>
>
> On 12/07/2015 04:05 PM, Devin Rosenbauer wrote:
>> In this case, I'm actually not making any changes to the input
>> object. Given Name is already set to the value that shows up in
>> the error message ("Devin"), and I'm just hitting Save with the
>> Reconcile checkbox checked.
>>
>> However, this also happens if I change the name to something
>> else. In both cases, it's not null.
>>
>> On Mon, Dec 7, 2015 at 10:02 AM, Radovan Semancik
>> <radovan.semancik at evolveum.com
>> <mailto:radovan.semancik at evolveum.com>> wrote:
>>
>> Hi,
>>
>> I have similar mapping working in our story tests.
>>
>> How does your input object looks like? I mean, how does the
>> user looks like before it is processed by the template?
>> Is there any chance that the givenName is null?
>>
>> The evaluation of null expressions has changed a bit in 3.3.
>> But I think that your expression should work and you are
>> probably hitting a but. I will need more data to replicate it.
>>
>> --
>> Radovan Semancik
>> Software Architect
>> evolveum.com <http://evolveum.com>
>>
>>
>>
>> On 12/04/2015 05:15 PM, Devin Rosenbauer wrote:
>>> Can anybody else please try this mapping on their end and
>>> see if it works?
>>>
>>> On Tue, Dec 1, 2015 at 1:51 PM, Devin Rosenbauer
>>> <devin at identityworksllc.com
>>> <mailto:devin at identityworksllc.com>> wrote:
>>>
>>> Version is 3.3.
>>>
>>> I've got the following in my user template, based on a
>>> somewhat modified version of what's in the documentation
>>> online:
>>>
>>> <mapping>
>>> <source>
>>> <c:path>$user/givenName</c:path>
>>> </source>
>>> <expression>
>>> <assignmentTargetSearch>
>>> <targetType>c:OrgType</targetType>
>>> <filter>
>>> <q:equal>
>>> <q:path>c:name</q:path>
>>> <q:value>
>>> <expression>
>>> <path>$givenName</path>
>>> </expression>
>>> </q:value>
>>> </q:equal>
>>> </filter>
>>> <createOnDemand>true</createOnDemand>
>>> <populateObject>
>>> <populateItem>
>>> <expression>
>>> <c:path>$givenName</c:path>
>>> </expression>
>>> <target>
>>> <c:path>name</c:path>
>>> </target>
>>> </populateItem>
>>> </populateObject>
>>> </assignmentTargetSearch>
>>> </expression>
>>> <target>
>>> <c:path>assignment</c:path>
>>> </target>
>>> </mapping>
>>>
>>> I expect that this would create an Org called "Devin"
>>> and assign the user to it.
>>>
>>> Here's what I get as an error message when I attempt to
>>> save and reconcile the user:
>>>
>>> *
>>> Failed to convert query. Reason: Null polystring
>>> orig in XNode(map:1
>>> entries)(givenName=PPV(PolyString:Devin); ) in
>>> expression in mapping in
>>> objectTemplate:c0c010c0-d34d-b33f-f00d-777222222334(User
>>> Template 2)
>>> o
>>> operation.com.evolveum.midpoint.web.page.admin.PageAdminFocus.save
>>>
>>> o _Cause:_
>>>
>>> Failed to convert query. Reason: Null polystring
>>> orig in XNode(map:1
>>> entries)(givenName=PPV(PolyString:Devin); ) in
>>> expression in mapping in
>>> objectTemplate:c0c010c0-d34d-b33f-f00d-777222222334(User
>>> Template 2)
>>>
>>> The documentation on the Expressions page and the
>>> samples appear to be somewhat incorrect here. I've had
>>> to make some corrections from <query> to <filter>,
>>> adding a <source>, and so forth. I also am temporarily
>>> using an OOTB field instead of a custom field to ensure
>>> that it's a PolyString and not an xsd:string, just to
>>> make sure that wasn't the issue.
>>>
>>> At this point, it seems pretty clear that it is grabbing
>>> the value in the XNodeMap, since it's printed in the
>>> error message.
>>>
>>> So, how should this mapping be structured to do what I
>>> need to do?
>>>
>>> --
>>> Devin Rosenbauer
>>> Principal Consultant
>>> Identity Works LLC
>>> +1 585 210 3201 <tel:%2B1%20585%20210%203201>
>>>
>>>
>>>
>>>
>>> --
>>> Devin Rosenbauer
>>> Principal Consultant
>>> Identity Works LLC
>>> +1 585 210 3201 <tel:%2B1%20585%20210%203201>
>>>
>>>
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>
>>
>>
>> --
>> Devin Rosenbauer
>> Principal Consultant
>> Identity Works LLC
>> +1 585 210 3201 <tel:%2B1%20585%20210%203201>
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
>
> --
> Devin Rosenbauer
> Principal Consultant
> Identity Works LLC
> +1 585 210 3201
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
--
Radovan Semancik
Software Architect
evolveum.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20151207/68a4953c/attachment.htm>
More information about the midPoint
mailing list