[midPoint] Fwd: Import or Recon Organization is only creates Shadow, nor Organizational Structure
Dilek Gider
dilek.gider at basistek.com
Thu Feb 2 08:56:23 CET 2017
Hi Martin,
Thank you so much, yesterday I made changes you have suggested. First of
all it always gave an error, but when I reset all db, then it worked!
I think shadows that I created before caused errors.
But inspite of setting "parentOrgRef" to the correct value, all of
organizations created seperatedly, I am trying to create all organizations
bu parent-child relation.
On Tue, Jan 31, 2017 at 5:13 PM, Martin Lízner - AMI Praha a.s. <
martin.lizner at ami.cz> wrote:
> Hi, Im pretty sure there is documentation for that :-) Its called generic
> synchronization: - https://wiki.evolveum.com/di
> splay/midPoint/Roles,+Metaroles+and+Generic+Synchronization
>
> Basically you handle organizations in the simillar way as accounts. In
> basic scenario, you would be fine with just resource definition
> customization. Here is the code snippet from my DBTable connector syncing
> org. structure. On top of that create live sync or reconcile task to load
> changes into mp.
>
> M.
>
> <schemaHandling>
> <objectType>
> <kind>generic</kind>
> <intent>organization</intent>
> <default>false</default>
> <objectClass>ri:AccountObjectClass</objectClass>
> <attribute>
> <c:ref>icfs:uid</c:ref>
> <inbound>
> <strength>strong</strength>
> <target>
> <c:path>$focus/name</c:path>
> </target>
> </inbound>
> </attribute>
> ....
>
> <synchronization>
> <objectSynchronization>
> <objectClass>ri:AccountObjectClass</objectClass>
> <kind>generic</kind>
> <intent>organization</intent>
> * <focusType>c:OrgType</focusType>*
> <enabled>true</enabled>
> <correlation>
> <q:equal>
> <q:path>c:name</q:path>
> <expression>
> <path>$shadow/attributes/icfs:uid</path>
> </expression>
> </q:equal>
> </correlation>
> <reaction>
> <situation>linked</situation>
> <synchronize>true</synchronize>
> </reaction>
> <reaction>
> <situation>deleted</situation>
> <synchronize>true</synchronize>
> <action>
> <handlerUri>http://midpoint.evolveum.com/xml/ns/public/mode
> l/action-3#unlink</handlerUri>
> </action>
> </reaction>
> <reaction>
> <situation>unlinked</situation>
> <synchronize>true</synchronize>
> <action>
> <handlerUri>http://midpoint.evolveum.com/xml/ns/public/mode
> l/action-3#link</handlerUri>
> </action>
> </reaction>
> <reaction>
> <situation>unmatched</situation>
> <synchronize>true</synchronize>
> <action>
> <handlerUri>http://midpoint.evolveum.com/xml/ns/public/mode
> l/action-3#addFocus</handlerUri>
> </action>
> </reaction>
> </objectSynchronization>
> </synchronization>
>
> Martin Lízner
> solution architect
>
> gsm: [+420] 737 745 571 <+420%20737%20745%20571>
> e-mail: martin.lizner at ami.cz
>
>
> AMI Praha a.s.
> Pláničkova 11
> 162 00 Praha 6
> tel.: [+420] 274 783 239 <+420%20274%20783%20239>
> web: www.ami.cz
>
>
>
> [image: AMI Praha a.s.] <http://www.skyidentity.com/>
>
> Textem tohoto e-mailu podepisující neslibuje uzavřít ani neuzavírá za
> společnost AMI Praha a.s.
> jakoukoliv smlouvu. Každá smlouva, pokud bude uzavřena, musí mít výhradně
> písemnou formu.
>
>
> 2017-01-31 15:03 GMT+01:00 Dilek Gider <dilek.gider at basistek.com>:
>
>> Hi everyone,
>>
>> Could you please help me? Organizations added only as Shadows. How can I
>> add them into real Organizational Structure in to Midpoint?
>> I asked this question before and nobody answered. There is no
>> documentation about this problem.
>>
>> Thanks in advance
>>
>>
>> ---------- Forwarded message ----------
>> From: Dilek Gider <dilek.gider at basistek.com>
>> Date: Wed, Jan 18, 2017 at 4:06 PM
>> Subject: Import or Recon Organization is only creates Shadow, nor
>> Organizational Structure
>> To: midPoint General Discussion <midpoint at lists.evolveum.com>
>>
>>
>> Hi,
>>
>> I have ScriptedSQL Connector. I am getting organization structure from
>> database these attrbutes: name, displayName and parentOrgRef
>> I tried import and reconciliation type tasks, Shadows are creating
>> successfully but Organizations are not creating.
>> I tried both <kind>account</kind> and <kind>generic</kind> on
>> SchemaHandling. Nothing changes.
>> How can I import or reconcile organizations and build organization
>> structure from database? My datas are as follows:
>>
>> id name parent_id
>> 0101 XXX.A.Ş. 0000
>> 0102 YYY A.Ş. 0000
>> 0103 ZZZ A.Ş. 0000
>> 0200 CCCCC AŞ 0000
>> 0201 SSSSSS 0000
>> 50001365 MANAGEMENT 0101
>> 50001366 ASİSTANCE 0101
>> 50001367 DRIVERS 0101
>> 50002780 COMMUNICATION 0102
>> 50004775 MANAGEMENT 0102
>> 50006930 MANAGEMENT 0103
>>
>> <xsd:complexType name="CustomOrganizationObjectClass">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <ra:resourceObject/>
>> <ra:identifier>icfs:uid</ra:identifier>
>> <ra:secondaryIdentifier>icfs:
>> name</ra:secondaryIdentifier>
>> <ra:displayNameAttribute>icfs
>> :name</ra:displayNameAttribute>
>> <ra:namingAttribute>icfs:name</ra:namingAttribute>
>> <ra:nativeObjectClass>Organiz
>> ation</ra:nativeObjectClass>
>> </xsd:appinfo>
>> </xsd:annotation>
>> <xsd:sequence>
>> <xsd:element minOccurs="0" name="displayName"
>> type="xsd:string">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayOrder>120</a:displayOrder>
>> <ra:frameworkAttributeName>di
>> splayName</ra:frameworkAttributeName>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> <xsd:element minOccurs="0" name="parentOrg"
>> type="xsd:string">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayOrder>130</a:displayOrder>
>> <ra:frameworkAttributeName>pa
>> rentOrg</ra:frameworkAttributeName>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> <xsd:element minOccurs="0" name="description"
>> type="xsd:string">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayOrder>140</a:displayOrder>
>> <ra:frameworkAttributeName>de
>> scription</ra:frameworkAttributeName>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> <xsd:element ref="icfs:name">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayName>ConnId Name</a:displayName>
>> <a:displayOrder>110</a:displayOrder>
>> <ra:frameworkAttributeName>__
>> NAME__</ra:frameworkAttributeName>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> <xsd:element minOccurs="0" name="name"
>> type="xsd:string">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayOrder>150</a:displayOrder>
>> <ra:frameworkAttributeName>na
>> me</ra:frameworkAttributeName>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> <xsd:element minOccurs="0" ref="icfs:uid">
>> <xsd:annotation>
>> <xsd:appinfo>
>> <a:displayName>ConnId UID</a:displayName>
>> <a:displayOrder>100</a:displayOrder>
>> <a:access>read</a:access>
>> </xsd:appinfo>
>> </xsd:annotation>
>> </xsd:element>
>> </xsd:sequence>
>> </xsd:complexType>
>>
>>
>> <schemaHandling>
>> <objectType>
>> <kind>account</kind>
>> <displayName>OrgType</displayName>
>> <default>true</default>
>> <objectClass>ri:CustomOrganizationObjectClass</objectClass>
>> <attribute>
>> <c:ref>icfs:uid</c:ref>
>> <displayName>Entry UUID</displayName>
>> <limitations>
>> <access>
>> <read>true</read>
>> </access>
>> </limitations>
>> </attribute>
>> <attribute>
>> <c:ref>icfs:name</c:ref>
>> <displayName>Organization Id</displayName>
>> <limitations>
>> <minOccurs>0</minOccurs>
>> <access>
>> <read>true</read>
>> <add>true</add>
>> <modify>true</modify>
>> </access>
>> </limitations>
>> <tolerant>false</tolerant>
>> <exclusiveStrong>false</exclusiveStrong>
>> <outbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <source>
>> <c:path>$focus/name</c:path>
>> </source>
>> </outbound>
>> <inbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <target>
>> <c:path>$focus/name</c:path>
>> </target>
>> </inbound>
>> </attribute>
>> <attribute>
>> <c:ref>ri:name</c:ref>
>> <displayName>Organization Name</displayName>
>> <tolerant>false</tolerant>
>> <exclusiveStrong>false</exclusiveStrong>
>> <outbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <source>
>> <c:path>$focus/displayName</c:path>
>> </source>
>> </outbound>
>> <inbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <target>
>> <c:path>$focus/displayName</c:path>
>> </target>
>> </inbound>
>> </attribute>
>> <attribute>
>> <c:ref>ri:parentOrg</c:ref>
>> <displayName>Parent Org Id</displayName>
>> <tolerant>false</tolerant>
>> <exclusiveStrong>false</exclusiveStrong>
>> <outbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <source>
>> <c:path>$focus/costCenter</c:path>
>> </source>
>> </outbound>
>> <inbound>
>> <authoritative>true</authoritative>
>> <exclusive>false</exclusive>
>> <strength>normal</strength>
>> <target>
>> <c:path>$focus/costCenter</c:path>
>> </target>
>> </inbound>
>> </attribute>
>> </objectType>
>> </schemaHandling>
>> <capabilities>
>> <cachingMetadata>
>> <retrievalTimestamp>2017-01-18T14:32:39.006+02:00</retrieva
>> lTimestamp>
>> <serialNumber>31a0960a98ab18d-4afc49b08ce181c6</serialNumber>
>> </cachingMetadata>
>> <native xmlns:cap="http://midpoint.evo
>> lveum.com/xml/ns/public/resource/capabilities-3">
>> <cap:addRemoveAttributeValues/>
>> <cap:activation>
>> <cap:status/>
>> <cap:lockoutStatus/>
>> </cap:activation>
>> <cap:credentials>
>> <cap:password>
>> <cap:returnedByDefault>false</cap:returnedByDefault>
>> </cap:password>
>> </cap:credentials>
>> <cap:liveSync/>
>> <cap:testConnection/>
>> <cap:create/>
>> <cap:read/>
>> <cap:update/>
>> <cap:delete/>
>> <cap:script>
>> <cap:host>
>> <cap:type>connector</cap:type>
>> </cap:host>
>> </cap:script>
>> </native>
>> </capabilities>
>> <synchronization>
>> <objectSynchronization>
>> <name>Org Unit</name>
>> <objectClass>ri:CustomOrganizationObjectClass</objectClass>
>> <kind>account</kind>
>> <intent>default</intent>
>> <focusType>c:OrgType</focusType>
>> <enabled>true</enabled>
>> <correlation>
>> <q:description>Correlation expression.</q:description>
>> <q:equal>
>> <q:path>c:name</q:path>
>> <expression>
>> <c:path>declare namespace icfs='
>> http://midpoint.evolveum.com/xml/ns/public/connector/i
>> cf-1/resource-schema-3'; $shadow/attributes/icfs:name</c:path>
>> </expression>
>> </q:equal>
>> </correlation>
>> <reconcile>false</reconcile>
>> <reaction>
>> <name>Linked</name>
>> <situation>linked</situation>
>> <synchronize>true</synchronize>
>> <reconcile>false</reconcile>
>> </reaction>
>> <reaction>
>> <name>Deleted</name>
>> <situation>deleted</situation>
>> <synchronize>true</synchronize>
>> <reconcile>false</reconcile>
>> <action>
>> <name>Unlink</name>
>> <handlerUri>
>> http://midpoint.evolveum.com/xml/ns/public/model/action-3#unlink
>> </handlerUri>
>> </action>
>> </reaction>
>> <reaction>
>> <name>Unlinked</name>
>> <situation>unlinked</situation>
>> <synchronize>true</synchronize>
>> <reconcile>false</reconcile>
>> <action>
>> <name>Link</name>
>> <handlerUri>
>> http://midpoint.evolveum.com/xml/ns/public/model/action-3#link
>> </handlerUri>
>> </action>
>> </reaction>
>> <reaction>
>> <name>Unmatched</name>
>> <situation>unmatched</situation>
>> <synchronize>true</synchronize>
>> <reconcile>false</reconcile>
>> <objectTemplateRef oid="c0c010c0-d34d-b33f-f00d-777222555111"
>> type="c:ObjectTemplateType"/>
>> <action>
>> <name>Add focus</name>
>> <handlerUri>
>> http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus
>> </handlerUri>
>> </action>
>> </reaction>
>> </objectSynchronization>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20170202/ba726ee0/attachment.htm>
More information about the midPoint
mailing list