----- Le 20 Fév 23, à 10:55, Francesco Chicchiriccò ilgro...@apache.org a écrit 
:

> On 16/02/23 17:56, Lionel SCHWARZ wrote:
>> Dear all,
>>
>> On my 3.0.1 syncope instance, I have defines a resource with 2 anyTypes
>> (objectclasses). I'm trying to setup a pull task which would run only on 1 of
>> these 2 anyTypes.
>>
>> I feel I have 2 solutions:
>> 1. run a "filtered reconciliation" with my own ReconFilterBuilder 
>> implementation
>> 2. rather use 2 different resources, one for each anyType
>>
>> Did I miss something more simple to do that?
> 
> Hi Lionel,
> the simplest way to achieve your goal is definitely (2).

Hi francesco,
I followed your advice, thanks.
I have another question regarding PULL. I have defined a mapping as follows:


      "mapping": {
        "connObjectLink": null,
        "connObjectKeyItem": {
          "intAttrName": "name",
          "extAttrName": "__NAME__",
          "connObjectKey": true,
          "password": false,
          "mandatoryCondition": "true",
          "purpose": "BOTH",
          "propagationJEXLTransformer": "value.split('\\.',2)[1]",
          "pullJEXLTransformer": "'SERVICE.' + value",
          "transformers": []
        },
        "items": [
           ...
        ]
      }

to sepcify that the remote __NAME__ must match the local "name" attribute, with 
a prefix, for example

Syncope anyobject name:"SERVICE.myservice" must match remote 
__NAME__:"myservice".

Propagation works smoothly but during pull, I get the following error:

org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher - Could not 
match {Uid=Attribute: {Name=__UID__, Value=[1288]}, ObjectClass=ObjectClass: 
IDMSERVICE, DeltaType=CREATE_OR_UPDATE, Token=SyncToken: , 
Object={Uid=Attribute: {Name=__UID__, Value=[1288]}, ObjectClass=ObjectClass: 
IDMSERVICE, Attributes=[Attribute: {Name=__NAME__, Value=[idnum_service]}, 
Attribute: {Name=__UID__, Value=[1288]}], Name=Attribute: {Name=__NAME__, 
Value=[idnum_service]}}, PreviousUid=null} with any existing SERVICE
java.lang.NullPointerException: null    
at 
org.apache.syncope.core.provisioning.api.jexl.JexlUtils.addFieldsToContext(JexlUtils.java:124)
 ~[syncope-core-provisioning-api-3.0.1.jar:3.0.1]
        at 
org.apache.syncope.core.provisioning.java.data.JEXLItemTransformerImpl.lambda$beforePull$1(JEXLItemTransformerImpl.java:179)
 ~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at 
org.apache.syncope.core.provisioning.java.data.JEXLItemTransformerImpl.beforePull(JEXLItemTransformerImpl.java:176)
 ~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
        at 
org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher.matchByConnObjectKeyValue(InboundMatcher.java:230)
 ~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
        at 
org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher.match(InboundMatcher.java:420)
 ~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]

I have the feeling that it comes from the "pullJEXLTransformer", but do not 
understand what's wrong with this.

Do you have an idea, I'm stuck

Regards
Lionel

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to