[midPoint] Help with condition in Synchonization
Ivan Noris
ivan.noris at evolveum.com
Sat Dec 6 00:27:00 CET 2014
Jason,
no reason to feel dumb. I've noticed the possible typo here, that's why
I have asked for confirmation:
Caused by: com.evolveum.midpoint.util.exception.SystemException:
com.evolveum.midpoint.util.exception.ExpressionEvaluationException:
groovy.lang.MissingPropertyException: No such property: familyName for
class: Script75 expression in mapping in outbound mapping for
{.../connector/icf-1/resource-schema-3}name in
resource:ef2bc95b-76e0-48e2-86d6-3d4f02d3eaef(Active Directory: Office
365, Google Apps, Moodle)(organization=PPV(PolyString:OU=SHP
Students,DC=TEST,DC=LOCAL);***familyNam**=null*;
givenName=PPV(PolyString:John); ) in expression in mapping in outbound
mapping for {.../connector/icf-1/resource-schema-3}name in
resource:ef2bc95b-76e0-48e2-86d6-3d4f02d3eaef(Active Directory: Office
365, Google Apps, Moodle)
The log entry above can be explained as:
No such property: familyName ... in mapping ... - you are referencing
the "familyName" variable but it has no definition (e.g. source) in the
mapping.
The mapping could have a <name>Mapping for DN attribute</name>, but it's
obviously mapping for icfs:name, because of
"{.../connector/icf-1/resource-schema-3}name".
The resource is "Active Directory: Office 365, Google Apps, Moodle".
The sources for this mapping are: organization, familyNam (that's the
typo), givenName. Also values are printed.
As the familyName had no value, the mapping expression was referencing
non-existent variable in Groovy interpreter.
So this time it was easy to find the typo :) Some other problems take
more time to get a clue.
So it's working, which is fine ;-)
Regards and have a nice weekend.
Ivan
On 12/06/2014 12:13 AM, Jason Everling wrote:
> omg... I feel so dumb, I swear I looked at that a million times! I had
> a typo for familyNam , I was missing the 'e' ...I swear I checked that!!
>
> It is all working now, Users from DBTable are created and synced,
>
> JASON
>
> On Fri, Dec 5, 2014 at 4:59 PM, Ivan Noris <ivan.noris at evolveum.com
> <mailto:ivan.noris at evolveum.com>> wrote:
>
> Jason,
>
> how does the mapping for icfs:name in Active Directory resource
> look like?
>
> I.
>
>
>
> On 12/05/2014 11:40 PM, Jason Everling wrote:
>> Yes, I changed to instance-3 and it is working, I have another
>> error though now, seems that when it get created in Midpoint and
>> the roles are assigned it gets stuck and errors on the AD
>> Provisioning with
>>
>> Caused by: com.evolveum.midpoint.util.exception.SystemException:
>> com.evolveum.midpoint.util.exception.ExpressionEvaluationException:
>> groovy.lang.MissingPropertyException: No such property:
>> familyName for class: Script75 expression in mapping in outbound
>> mapping for {.../connector/icf-1/resource-schema-3}name in
>> resource:ef2bc95b-76e0-48e2-86d6-3d4f02d3eaef(Active Directory:
>> Office 365, Google Apps,
>> Moodle)(organization=PPV(PolyString:OU=SHP
>> Students,DC=TEST,DC=LOCAL); familyNam=null;
>> givenName=PPV(PolyString:John); ) in expression in mapping in
>> outbound mapping for {.../connector/icf-1/resource-schema-3}name
>> in resource:ef2bc95b-76e0-48e2-86d6-3d4f02d3eaef(Active
>> Directory: Office 365, Google Apps, Moodle)
>>
>> Why familyName error? If I look at the created user in Midpoint
>> the user account has a correct lastname and all the other
>> attributes look fine.
>>
>> JASON
>>
>> On Fri, Dec 5, 2014 at 4:34 PM, Ivan Noris
>> <ivan.noris at evolveum.com <mailto:ivan.noris at evolveum.com>> wrote:
>>
>> Yeah, the namespace...
>>
>> It needs to be the namespace of the resource attributes.
>> That's the same as in schema handling (by default named "ri").
>>
>> basic.getAttributeValue(shadow,
>> 'http://midpoint.evolveum.com/xml/ns/public/resource/instance-3',
>> 'level_')
>>
>> But according to the production object I'm just looking at,
>> it should even work:
>>
>> *basic.getAttributeValue(shadow, 'level_')*
>>
>> This defaults to "ri" namespace.
>>
>> For example in one of our deployments, in one of our sync
>> configurations, we have condition with:
>>
>> <code>
>> sam = basic.getAttributeValue(shadow, 'samAccountName')
>> . . .
>> (and then we process "sam" variable...)
>> </code>
>>
>> Sorry, I didn't check the namespace in the original mail.
>>
>> Regards,
>> Ivan
>>
>>
>> On 12/05/2014 10:46 PM, Jason Everling wrote:
>>> It is still the same, I even tried other ways pulling ideas
>>> from github,
>>>
>>> I tried adding the single quotes, midpoint sees the shadow
>>> user under shadow details but does not create the accounts.
>>> If I remove the condition then the accounts get created.
>>> Somehow it is not liking the condition,
>>>
>>> <code>
>>> tmp = basic.getAttributeValue(shadow,
>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>> 'level_');
>>> return (tmp == '2' || tmp == '3' || tmp == '4' || tmp == '5'
>>> || tmp == 'A' || tmp == 'B' || tmp == 'C' || tmp == 'H')
>>> </code>
>>>
>>> Is the shadow part and namespace correct? this is a DBTable
>>> Resource and the column name is level_ and it is a single
>>> value. Does this attribute need to have a mapping? I am
>>> currently not mapping the value in midpoint, really
>>> wouldn't know what to map it to.
>>>
>>> basic.getAttributeValue(shadow,
>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>> 'level_')
>>>
>>> Here is the full sync object
>>>
>>> <synchronization> <objectSynchronization>
>>> <enabled>true</enabled> <condition> <script> <code> tmp =
>>> basic.getAttributeValue(shadow,
>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>> 'level_'); return (tmp == '2' || tmp == '3' || tmp == '4' ||
>>> tmp == '5' || tmp == 'A' || tmp == 'B' || tmp == 'C' || tmp
>>> == 'H') </code> </script> </condition> <correlation>
>>> <q:equal> <q:path>c:employeeNumber</q:path> <expression>
>>> <path> declare namespace
>>> icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3";
>>> $account/attributes/icfs:name </path> </expression>
>>> </q:equal> </correlation> <reaction>
>>> <situation>linked</situation> <action
>>> ref="http://midpoint.evolveum.com/xml/ns/public/model/action-3#modifyUser"/>
>>> </reaction> <reaction> <situation>deleted</situation>
>>> <action
>>> ref="http://midpoint.evolveum.com/xml/ns/public/model/action-3#inactivateFocus"/>
>>> </reaction> <reaction> <situation>unlinked</situation>
>>> <action
>>> ref="http://midpoint.evolveum.com/xml/ns/public/model/action-3#linkAccount"/>
>>> </reaction> <reaction> <situation>unmatched</situation>
>>> <objectTemplateRef
>>> oid="10000000-0000-0000-0000-000000000203"/> <action
>>> ref="http://midpoint.evolveum.com/xml/ns/public/model/action-3#addUser"/>
>>> </reaction> </objectSynchronization> </synchronization>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Dec 5, 2014 at 3:20 PM, Ivan Noris
>>> <ivan.noris at evolveum.com <mailto:ivan.noris at evolveum.com>>
>>> wrote:
>>>
>>> So if it's string, try to use single quotes.
>>>
>>> ... tmp == '2' || ...
>>>
>>>
>>> On 12/05/2014 07:02 PM, Jason Everling wrote:
>>>> It was because the A, B, C, H didnt exist in the
>>>> database, when I removed those levels it doesn't error
>>>> but it also does not create accounts for the ones that
>>>> have a matching level like 2 or 3
>>>>
>>>> JASON
>>>>
>>>> On Fri, Dec 5, 2014 at 11:46 AM, Jason Everling
>>>> <jeverling at bshp.edu <mailto:jeverling at bshp.edu>> wrote:
>>>>
>>>> I was trying something like that but didnt get
>>>> anywhere,
>>>>
>>>> I have,
>>>>
>>>> <condition>
>>>> <script>
>>>> <code>
>>>> tmp = basic.getAttributeValue(shadow,
>>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>>> 'level_');
>>>> return (tmp == 2 || tmp == 3 || tmp == 4 || tmp ==
>>>> 5 || tmp == A || tmp == B || tmp == C || tmp == H)
>>>> </code>
>>>> </script>
>>>> </condition>
>>>>
>>>> And get error,
>>>>
>>>> ERROR
>>>> (com.evolveum.midpoint.model.common.expression.Expression):
>>>> Error evaluating expression in condition in object
>>>> synchronization null:
>>>> groovy.lang.MissingPropertyException: No such
>>>> property: A for class: Script42 (new) condition in
>>>> object synchronization null
>>>> com.evolveum.midpoint.util.exception.ExpressionEvaluationException:
>>>> groovy.lang.MissingPropertyException: No such
>>>> property: A for class: Script42 (new) condition in
>>>> object synchronization null
>>>>
>>>> On Fri, Dec 5, 2014 at 11:19 AM, Ivan Noris
>>>> <ivan.noris at evolveum.com
>>>> <mailto:ivan.noris at evolveum.com>> wrote:
>>>>
>>>> Hi Jason,
>>>>
>>>> I would do this:
>>>>
>>>> . . .
>>>> <code>
>>>> tmp = basic.getAttributeValue(shadow,
>>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>>> 'level_');
>>>>
>>>> return (tmp == 2 || tmp == 3 || tmp == 4 | ...)
>>>> </code>
>>>> . . .
>>>>
>>>> Regards,
>>>> I.
>>>>
>>>>
>>>> On 12/05/2014 04:12 PM, Jason Everling wrote:
>>>>> I was trying to add a condition to the
>>>>> synchronization element,
>>>>>
>>>>> Here is what I got, there is a column in the
>>>>> table level_ , I only want to sync users that
>>>>> have those specific values
>>>>>
>>>>> <condition>
>>>>> <script>
>>>>> <code>
>>>>> basic.getAttributeValue(shadow,
>>>>> 'http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3',
>>>>> 'level_') = (2 || 3 || 4 || 5 || A || B || C || H)
>>>>> </code>
>>>>> </script>
>>>>> </condition>
>>>>>
>>>>> When it runs I get the following
>>>>>
>>>>> 1 error
>>>>> (new) condition in object synchronization null
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.script.jsr223.Jsr223ScriptEvaluator.createCompiledScript(Jsr223ScriptEvaluator.java:176)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.script.jsr223.Jsr223ScriptEvaluator.evaluate(Jsr223ScriptEvaluator.java:117)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.script.ScriptExpression.evaluate(ScriptExpression.java:110)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.script.ScriptExpressionEvaluator.transformSingleValue(ScriptExpressionEvaluator.java:58)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator.evaluateScriptExpression(AbstractValueTransformationExpressionEvaluator.java:276)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator.evaluateAbsoluteExpression(AbstractValueTransformationExpressionEvaluator.java:206)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.evaluator.AbstractValueTransformationExpressionEvaluator.evaluate(AbstractValueTransformationExpressionEvaluator.java:107)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.Expression.evaluate(Expression.java:136)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.ExpressionUtil.evaluateExpression(ExpressionUtil.java:500)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.common.expression.ExpressionUtil.evaluateCondition(ExpressionUtil.java:523)~[model-common-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.impl.sync.SynchronizationService.isPolicyApplicable(SynchronizationService.java:383)~[model-impl-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.impl.sync.SynchronizationService.determineSynchronizationPolicy(SynchronizationService.java:343)~[model-impl-3.0.1.jar:na]
>>>>> at
>>>>> com.evolveum.midpoint.model.impl.sync.SynchronizationService.notifyChange_aroundBody0(SynchronizationService.java:205)~[model-impl-3.0.1.jar:na]
>>>>> ... 54 common frames omitted
>>>>> Caused by: javax.script.ScriptException:
>>>>> org.codehaus.groovy.control.MultipleCompilationErrorsException:
>>>>> startup failed:
>>>>> Script37.groovy: 2:
>>>>> "basic.getAttributeValue(shadow,
>>>>> http://midpoint.evolveum.com/xml/ns/public/resource/instance-3,
>>>>> level_)" is a method call expression, but it
>>>>> should be a variable expression at line: 2
>>>>> column: 116. File: Script37.groovy @ line 2,
>>>>> column 116.
>>>>> source/instance-3', 'level_') = (2 || 3
>>>>>
>>>>>
>>>>>
>>>>> CONFIDENTIALITY NOTICE:
>>>>> This e-mail together with any attachments is
>>>>> proprietary and confidential; intended for
>>>>> only the recipient(s) named above and may
>>>>> contain information that is privileged. You
>>>>> should not retain, copy or use this e-mail or
>>>>> any attachments for any purpose, or disclose
>>>>> all or any part of the contents to any person.
>>>>> Any views or opinions expressed in this e-mail
>>>>> are those of the author and do not represent
>>>>> those of the Baptist School of Health
>>>>> Professions. If you have received this e-mail
>>>>> in error, or are not the named recipient(s),
>>>>> you are hereby notified that any review,
>>>>> dissemination, distribution or copying of this
>>>>> communication is prohibited by the sender and
>>>>> to do so might constitute a violation of the
>>>>> Electronic Communications Privacy Act, 18
>>>>> U.S.C. section 2510-2521. Please immediately
>>>>> notify the sender and delete this e-mail and
>>>>> any attachments from your computer.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> midPoint mailing list
>>>>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>>>
>>>> --
>>>> Ing. Ivan Noris
>>>> Senior Identity Management Engineer
>>>> evolveum.com <http://evolveum.com> evolveum.com/blog/ <http://evolveum.com/blog/>
>>>> _____________________________________________
>>>> "Semper Id(e)M Vix."
>>>>
>>>>
>>>> _______________________________________________
>>>> midPoint mailing list
>>>> midPoint at lists.evolveum.com
>>>> <mailto:midPoint at lists.evolveum.com>
>>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> CONFIDENTIALITY NOTICE:
>>>> This e-mail together with any attachments is
>>>> proprietary and confidential; intended for only the
>>>> recipient(s) named above and may contain information
>>>> that is privileged. You should not retain, copy or use
>>>> this e-mail or any attachments for any purpose, or
>>>> disclose all or any part of the contents to any person.
>>>> Any views or opinions expressed in this e-mail are
>>>> those of the author and do not represent those of the
>>>> Baptist School of Health Professions. If you have
>>>> received this e-mail in error, or are not the named
>>>> recipient(s), you are hereby notified that any review,
>>>> dissemination, distribution or copying of this
>>>> communication is prohibited by the sender and to do so
>>>> might constitute a violation of the Electronic
>>>> Communications Privacy Act, 18 U.S.C. section
>>>> 2510-2521. Please immediately notify the sender and
>>>> delete this e-mail and any attachments from your computer.
>>>>
>>>>
>>>> _______________________________________________
>>>> midPoint mailing list
>>>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>>
>>> --
>>> Ing. Ivan Noris
>>> Senior Identity Management Engineer
>>> evolveum.com <http://evolveum.com> evolveum.com/blog/ <http://evolveum.com/blog/>
>>> _____________________________________________
>>> "Semper Id(e)M Vix."
>>>
>>>
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com
>>> <mailto:midPoint at lists.evolveum.com>
>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>>
>>>
>>>
>>>
>>>
>>> CONFIDENTIALITY NOTICE:
>>> This e-mail together with any attachments is proprietary and
>>> confidential; intended for only the recipient(s) named above
>>> and may contain information that is privileged. You should
>>> not retain, copy or use this e-mail or any attachments for
>>> any purpose, or disclose all or any part of the contents to
>>> any person. Any views or opinions expressed in this e-mail
>>> are those of the author and do not represent those of the
>>> Baptist School of Health Professions. If you have received
>>> this e-mail in error, or are not the named recipient(s), you
>>> are hereby notified that any review, dissemination,
>>> distribution or copying of this communication is prohibited
>>> by the sender and to do so might constitute a violation of
>>> the Electronic Communications Privacy Act, 18 U.S.C. section
>>> 2510-2521. Please immediately notify the sender and delete
>>> this e-mail and any attachments from your computer.
>>>
>>>
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>> --
>> Ing. Ivan Noris
>> Senior Identity Management Engineer
>> evolveum.com <http://evolveum.com> evolveum.com/blog/ <http://evolveum.com/blog/>
>> _____________________________________________
>> "Semper Id(e)M Vix."
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>
>>
>>
>>
>> CONFIDENTIALITY NOTICE:
>> This e-mail together with any attachments is proprietary and
>> confidential; intended for only the recipient(s) named above and
>> may contain information that is privileged. You should not
>> retain, copy or use this e-mail or any attachments for any
>> purpose, or disclose all or any part of the contents to any
>> person. Any views or opinions expressed in this e-mail are those
>> of the author and do not represent those of the Baptist School of
>> Health Professions. If you have received this e-mail in error, or
>> are not the named recipient(s), you are hereby notified that any
>> review, dissemination, distribution or copying of this
>> communication is prohibited by the sender and to do so might
>> constitute a violation of the Electronic Communications Privacy
>> Act, 18 U.S.C. section 2510-2521. Please immediately notify the
>> sender and delete this e-mail and any attachments from your
>> computer.
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>
> --
> Ing. Ivan Noris
> Senior Identity Management Engineer
> evolveum.com <http://evolveum.com> evolveum.com/blog/ <http://evolveum.com/blog/>
> _____________________________________________
> "Semper Id(e)M Vix."
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
>
>
> CONFIDENTIALITY NOTICE:
> This e-mail together with any attachments is proprietary and
> confidential; intended for only the recipient(s) named above and may
> contain information that is privileged. You should not retain, copy or
> use this e-mail or any attachments for any purpose, or disclose all or
> any part of the contents to any person. Any views or opinions
> expressed in this e-mail are those of the author and do not represent
> those of the Baptist School of Health Professions. If you have
> received this e-mail in error, or are not the named recipient(s), you
> are hereby notified that any review, dissemination, distribution or
> copying of this communication is prohibited by the sender and to do so
> might constitute a violation of the Electronic Communications Privacy
> Act, 18 U.S.C. section 2510-2521. Please immediately notify the sender
> and delete this e-mail and any attachments from your computer.
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
--
Ing. Ivan Noris
Senior Identity Management Engineer
evolveum.com evolveum.com/blog/
_____________________________________________
"Semper Id(e)M Vix."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20141206/a22fdb77/attachment.htm>
More information about the midPoint
mailing list