Thank you Marco, the problem was that users attribute had multiple values.


2015-03-17 5:42 GMT-03:00 Marco Di Sabatino Di Diodoro <
[email protected]>:

>
>
> Il 16/03/2015 19:14, Manfredo Hopp ha scritto:
>
>  Thanks Marco
> The second sync task is  delivering all users rows with only one
> attribute, which are obtained through the scripted sql search.
> This sciript returns  atributes __UID__, __NAME__ , and AtributeN.
>
>  The task has a user template to assign this table to users.
> The mapping is
>
>
>  [image: Imágenes integradas 1]
>
>
>  After running users doesnt show this attribute!
>
>
> There are some errors in your resource mapping:
>
> 1) AtributeN is not configured in the mapping of the resource.
> 2) You must replace __NAME__ with the name of the accountId attribute.
>
> In your groovy, after the select statement you must return:
>
> sql.eachRow(query, {
>                     result.add([
>                         __UID__:it.ACCOUNTID_ATTRIBUTE_NAME,
>                         __NAME__:it.it.ACCOUNTID_ATTRIBUTE_NAME,
>
> ACCOUNTID_ATTRIBUTE_NAME:it.ACCOUNTID_ATTRIBUTE_NAME,
>                         ...,
>                          ...
>                  ])
>             });
>
>
> Regards
> Marco
>
>
>  Thanks
>
> 2015-03-13 6:16 GMT-03:00 Marco Di Sabatino Di Diodoro <
> [email protected]>:
>
>>  Hi Manfredo,
>>
>>
>> Il 12/03/2015 17:51, Manfredo Hopp ha scritto:
>>
>> Marco thanks!
>>
>>  I have 2 tasks to syncronize users data from different tables (both
>> tables share userid)
>>
>>  Task 1 use db.table connector with properties UPDATE,ASSIGN so new
>> users are added/modified. This is working.
>> Task 2 use sriptedSql connector and has properties UPDATE/IGNORE since
>> all records are supposed to match thats why no unmatchig action is taken.
>> The second table is also assigned to users.
>>
>>  So there are 2 tables assigned to users to syncronize different data.
>>
>>  The scripted connector has ONE_PHASE_UPDATE  capability as well as sync
>> and search capabilities.
>>
>>  When I run this task my guess is that since  there is a matching record
>> it should be updated. In fact associating an action class shows it is
>> entering  beforeupdate() method.
>> Results are that no updates occur and only search script is activated.
>>
>>
>>  Sorry Manfredo, but updateScript runs only when Syncope propagates.
>>
>>  From core-connid.log INFO  Entering SEARCH Script       Method: run is
>> the only meesage. Every script  (See log output below)
>>
>>
>>  If Syncope users are not updated after task 2, you need to check the
>> mapping on the resource.
>>
>> Marco
>>
>>
>>  Since search occurs for every record to be updated the process it is
>> reading hole table for each record.
>>
>>  Regards
>>
>>
>>
>>  13:36:06.204 DEBUG Search values into menu
>> 13:36:06.204 DEBUG Perform connection to menu
>> 13:36:06.209 DEBUG Enter: getObject(ObjectClass: __ACCOUNT__, Attribute:
>> {Name=__UID__, Value=[73]}, OperationOptions:
>> {ATTRS_TO_GET:[__UID__,menu,__NAME__,__ENABLE__]})       Method: getObject
>> 13:36:06.212 DEBUG ObjectClass: __ACCOUNT__     Method:
>> createFilterTranslator
>> 13:36:06.213 DEBUG ObjectClass: __ACCOUNT__     Method: executeQuery
>> 13:36:06.215 INFO  Entering SEARCH Script       Method: run
>> 13:36:06.306 DEBUG Search ok    Method: executeQuery
>> 13:36:06.307 DEBUG ConnectorObject is built     Method: processResults
>>  (lots of these)
>>
>>
>>  13:36:06.400 DEBUG ConnectorObject is built     Method: processResults
>> 13:36:06.401 DEBUG ConnectorObject is built     Method: processResults
>> 13:36:06.403 DEBUG Return: {Name=Attribute: {Name=__NAME__, Value=[73]},
>> Attributes=[Attribute: {Name=menu, Value=[]}, Attribute: {Name=__UID__,
>> Value=[73]}, Attribute: {Name=__NAME__, Value=[73]}, Attribute:
>> {Name=__ENABLE__, Value=[true]}], ObjectClass=ObjectClass: __ACCOUNT__,
>> Uid=Attribute: {Name=__UID__, Value=[73]}}     Method: getObject
>> 13:36:06.403 DEBUG Retrieved values []
>> 13:36:07.408 DEBUG Retrieve values for virtual attribute menu
>> (UserVirtualSchema)
>>  13:36:07.408 DEBUG Values found in cache
>> org.apache.syncope.core.cache.VirAttrCacheValue@2dfc7b8
>> 13:36:07.803 DEBUG Retrieve values for virtual attribute nombre
>> (UserVirtualSchema)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2015-03-12 5:59 GMT-03:00 Marco Di Sabatino Di Diodoro <
>> [email protected]>:
>>
>>>  Hi Manfredo,
>>>
>>> Il 11/03/2015 21:45, Manfredo Hopp ha scritto:
>>>
>>>  Hello, from docs:
>>>
>>>  Implementation of custom Groovy SQL scripts
>>>
>>> Every action script receives a set of parameters and an attribute map.
>>> The set of parameters varies for each action.
>>>
>>>    - CreateScript.groovy
>>>    
>>> <https://cwiki.apache.org/confluence/download/attachments/30754125/CreateScript.groovy?version=1&modificationDate=1361178783000&api=v2>
>>>
>>>   CreateScript run if the SearchScript doesn't find the object on the
>>> resource.
>>>
>>>
>>>    - UpdateScript.groovy
>>>    
>>> <https://cwiki.apache.org/confluence/download/attachments/30754125/UpdateScript.groovy?version=1&modificationDate=1361178815000&api=v2>
>>>
>>>   UpdateScript run if the SearchScript find the object on the resource.
>>>
>>>
>>>    - DeleteScript.groovy
>>>    
>>> <https://cwiki.apache.org/confluence/download/attachments/30754125/DeleteScript.groovy?version=1&modificationDate=1361178836000&api=v2>
>>>
>>>   Delete an object.
>>>
>>>
>>>    - SearchScript.groovy
>>>    
>>> <https://cwiki.apache.org/confluence/download/attachments/30754125/SearchScript.groovy?version=1&modificationDate=1361178856000&api=v2>
>>>
>>>   SearchScript run before and after all privisioning operation, search
>>> operation and full reconciliation.
>>>
>>>
>>>    - SyncScript.groovy
>>>    
>>> <https://cwiki.apache.org/confluence/download/attachments/30754125/SyncScript.groovy?version=1&modificationDate=1361178914000&api=v2>
>>>
>>>   SyncScript take only the changes on the resource (incremental
>>> synchronization)
>>>
>>>
>>>    -
>>>
>>>
>>>  Question: When and how does each script run (i.e update script).
>>>
>>>
>>>  When using scripted resource for an update Task, only search script is
>>> activated.
>>>
>>>  I suggest you to check in the Connector configuration if the update
>>> capability is enabled (ONE_PHASE_UPDATE) and if your updateScript has no
>>> errors (core-connid.log). In addition, in the resource configuration
>>> tab check the propagation mode (set ONE_PHASE).
>>>
>>> Moreover, the update takes place only if there are changes on the
>>> attributes present in the mapping of the resource.
>>>
>>> Regards
>>> M
>>>
>>>
>>>  Syncope version 1.2.2 sricptedSQL version 2.1.1
>>>
>>>
>>>  Regards
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>  --
>>> Dott. Marco Di Sabatino Di Diodoro
>>> Tel. +39 3939065570
>>>
>>> Tirasa S.r.l.
>>> Viale D'Annunzio 267 - 65127 Pescara
>>> Tel +39 0859116307 / FAX +39 0859111173http://www.tirasa.net
>>>
>>> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>>>
>>>
>>
>> --
>> Dott. Marco Di Sabatino Di Diodoro
>> Tel. +39 3939065570
>>
>> Tirasa S.r.l.
>> Viale D'Annunzio 267 - 65127 Pescara
>> Tel +39 0859116307 / FAX +39 0859111173http://www.tirasa.net
>>
>> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>>
>>
>
> --
> Dott. Marco Di Sabatino Di Diodoro
> Tel. +39 3939065570
>
> Tirasa S.r.l.
> Viale D'Annunzio 267 - 65127 Pescara
> Tel +39 0859116307 / FAX +39 0859111173http://www.tirasa.net
>
> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>
>

Reply via email to