----- 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
smime.p7s
Description: S/MIME Cryptographic Signature