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] <mailto:[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
    updateScripthas 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 0859111173
    http://www.tirasa.net

    Apache Syncope PMC Member
    http://people.apache.org/~mdisabatino/  
<http://people.apache.org/%7Emdisabatino/>



--
Dott. Marco Di Sabatino Di Diodoro
Tel. +39 3939065570

Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173
http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/~mdisabatino/

Reply via email to