[midPoint] Report with account data

Dmitriy Berezkin berezkin.dmitriy at gmail.com
Wed Mar 14 20:27:56 CET 2018


Hi!

Could you tell me about reports? I want to make a report with account data and user object.
For example, I have the resource "Test CSV: username». And I want to make a report that looks like this:

> User Name(user.name) |  Telephone Number(user.telephoneNumber) | Attribute1 from System 1(account.extattr1) | Attribute1 from System 2 (account.extattr2)
> user111                  | 11-11                                            | 10293                  | Zorg

How I can add account data into report? What expression should I use?

Here is my resource:
> <resource xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
>           xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
>           xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
>           xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3"
>           xmlns:org="http://midpoint.evolveum.com/xml/ns/public/common/org-3"
>           xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
>           xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
>           oid="ef2bc95b-76e0-59e2-86d6-9999cccccccc"
>           version="60">
>    <name>Test CSV: username</name>
>    <description>Simple CSV resource that is using single identifier (username)</description>
>    <metadata>
>       <createTimestamp>2018-03-02T16:36:53.777+03:00</createTimestamp>
>       <creatorRef oid="00000000-0000-0000-0000-000000000002"
>                   relation="org:default"
>                   type="c:UserType"/>
>       <createChannel>http://midpoint.evolveum.com/xml/ns/public/model/channels-3#objectImport</createChannel>
>       <modifyTimestamp>2018-03-02T18:00:47.726+03:00</modifyTimestamp>
>       <modifierRef oid="00000000-0000-0000-0000-000000000002"
>                    relation="org:default"
>                    type="c:UserType"/>
>       <modifyChannel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</modifyChannel>
>    </metadata>
>    <operationExecution id="7">
>       <timestamp>2018-03-02T17:56:05.227+03:00</timestamp>
>       <operation>
>          <objectDelta>
>             <t:changeType>modify</t:changeType>
>             <t:objectType>c:ResourceType</t:objectType>
>          </objectDelta>
>          <executionResult>
>             <operation>com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeDelta</operation>
>             <status>success</status>
>             <token>1000000000000014795</token>
>          </executionResult>
>          <objectName>Test CSV: username</objectName>
>       </operation>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"/>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</channel>
>    </operationExecution>
>    <operationExecution id="8">
>       <timestamp>2018-03-02T17:56:07.721+03:00</timestamp>
>       <operation>
>          <objectDelta>
>             <t:changeType>modify</t:changeType>
>             <t:objectType>c:ResourceType</t:objectType>
>          </objectDelta>
>          <executionResult>
>             <operation>com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeDelta</operation>
>             <status>success</status>
>             <token>1000000000000014854</token>
>          </executionResult>
>          <objectName>Test CSV: username</objectName>
>       </operation>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"/>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</channel>
>    </operationExecution>
>    <operationExecution id="12">
>       <timestamp>2018-03-02T17:58:36.414+03:00</timestamp>
>       <operation>
>          <objectDelta>
>             <t:changeType>modify</t:changeType>
>             <t:objectType>c:ResourceType</t:objectType>
>          </objectDelta>
>          <executionResult>
>             <operation>com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeDelta</operation>
>             <status>success</status>
>             <token>1000000000000014995</token>
>          </executionResult>
>          <objectName>Test CSV: username</objectName>
>       </operation>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"/>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</channel>
>    </operationExecution>
>    <operationExecution id="13">
>       <timestamp>2018-03-02T18:00:45.612+03:00</timestamp>
>       <operation>
>          <objectDelta>
>             <t:changeType>modify</t:changeType>
>             <t:objectType>c:ResourceType</t:objectType>
>          </objectDelta>
>          <executionResult>
>             <operation>com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeDelta</operation>
>             <status>success</status>
>             <token>1000000000000015503</token>
>          </executionResult>
>          <objectName>Test CSV: username</objectName>
>       </operation>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"/>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</channel>
>    </operationExecution>
>    <operationExecution id="6">
>       <timestamp>2018-03-02T18:00:47.826+03:00</timestamp>
>       <operation>
>          <objectDelta>
>             <t:changeType>modify</t:changeType>
>             <t:objectType>c:ResourceType</t:objectType>
>          </objectDelta>
>          <executionResult>
>             <operation>com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeDelta</operation>
>             <status>success</status>
>             <token>1000000000000015562</token>
>          </executionResult>
>          <objectName>Test CSV: username</objectName>
>       </operation>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"/>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#user</channel>
>    </operationExecution>
>    <operationalState>
>       <lastAvailabilityStatus>up</lastAvailabilityStatus>
>    </operationalState>
>    <connectorRef oid="49b1894d-5640-4724-a9ed-27ceac1e756f"
>                  relation="org:default"
>                  type="c:ConnectorType">
>       <filter>
>          <q:equal>
>             <q:path>c:connectorType</q:path>
>             <q:value>com.evolveum.polygon.connector.csv.CsvConnector</q:value>
>          </q:equal>
>       </filter>
>    </connectorRef>
>    <connectorConfiguration xmlns:icfc="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/connector-schema-3">
>       <icfc:configurationProperties xmlns:gen746="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/com.evolveum.polygon.connector-csv/com.evolveum.polygon.connector.csv.CsvConnector">
>          <gen746:multivalueDelimiter>;</gen746:multivalueDelimiter>
>          <gen746:filePath>/opt/midpoint/midpoint-3.7/doc/samples/resources/csv/1.csv</gen746:filePath>
>          <gen746:encoding>utf-8</gen746:encoding>
>          <gen746:fieldDelimiter>,</gen746:fieldDelimiter>
>          <gen746:passwordAttribute>password</gen746:passwordAttribute>
>          <gen746:uniqueAttribute>username</gen746:uniqueAttribute>
>       </icfc:configurationProperties>
>    </connectorConfiguration>
>    <schema>
>       <cachingMetadata>
>          <retrievalTimestamp>2018-03-02T18:00:47.971+03:00</retrievalTimestamp>
>          <serialNumber>d62577d6e3e25661-189f7dbae6a048af</serialNumber>
>       </cachingMetadata>
>       <definition>
>          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                      xmlns:a="http://prism.evolveum.com/xml/ns/public/annotation-3"
>                      xmlns:tns="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
>                      xmlns:ra="http://midpoint.evolveum.com/xml/ns/public/resource/annotation-3"
>                      elementFormDefault="qualified"
>                      targetNamespace="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3">
>             <xsd:import namespace="http://prism.evolveum.com/xml/ns/public/annotation-3"/>
>             <xsd:import namespace="http://midpoint.evolveum.com/xml/ns/public/resource/annotation-3"/>
>             <xsd:complexType name="AccountObjectClass">
>                <xsd:annotation>
>                   <xsd:appinfo>
>                      <ra:resourceObject/>
>                      <ra:identifier>ri:username</ra:identifier>
>                      <ra:displayNameAttribute>ri:username</ra:displayNameAttribute>
>                      <ra:namingAttribute>ri:username</ra:namingAttribute>
>                      <ra:nativeObjectClass>__ACCOUNT__</ra:nativeObjectClass>
>                      <ra:kind>account</ra:kind>
>                      <ra:default>true</ra:default>
>                   </xsd:appinfo>
>                </xsd:annotation>
>                <xsd:sequence>
>                   <xsd:element minOccurs="0" name="disabled" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:ignore>true</a:ignore>
>                            <a:displayOrder>120</a:displayOrder>
>                            <ra:nativeAttributeName>disabled</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>disabled</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                   <xsd:element minOccurs="0" name="lastname" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:displayOrder>130</a:displayOrder>
>                            <ra:nativeAttributeName>lastname</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>lastname</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                   <xsd:element minOccurs="0" name="extattr2" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:displayOrder>140</a:displayOrder>
>                            <ra:nativeAttributeName>extattr2</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>extattr2</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                   <xsd:element minOccurs="0" name="extattr1" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:displayOrder>150</a:displayOrder>
>                            <ra:nativeAttributeName>extattr1</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>extattr1</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                   <xsd:element minOccurs="0" name="firstname" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:displayOrder>160</a:displayOrder>
>                            <ra:nativeAttributeName>firstname</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>firstname</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                   <xsd:element name="username" type="xsd:string">
>                      <xsd:annotation>
>                         <xsd:appinfo>
>                            <a:displayOrder>100</a:displayOrder>
>                            <ra:nativeAttributeName>username</ra:nativeAttributeName>
>                            <ra:frameworkAttributeName>__NAME__</ra:frameworkAttributeName>
>                         </xsd:appinfo>
>                      </xsd:annotation>
>                   </xsd:element>
>                </xsd:sequence>
>             </xsd:complexType>
>          </xsd:schema>
>       </definition>
>    </schema>
>    <schemaHandling>
>       <objectType id="1">
>          <displayName>Default Account</displayName>
>          <default>true</default>
>          <objectClass>ri:AccountObjectClass</objectClass>
>          <attribute id="2">
>             <c:ref>ri:username</c:ref>
>             <tolerant>false</tolerant>
>             <exclusiveStrong>false</exclusiveStrong>
>             <outbound>
>                <authoritative>false</authoritative>
>                <exclusive>false</exclusive>
>                <strength>normal</strength>
>                <source>
>                   <c:path>$user/name</c:path>
>                </source>
>             </outbound>
>             <inbound id="14">
>                <authoritative>true</authoritative>
>                <exclusive>false</exclusive>
>                <strength>normal</strength>
>                <target>
>                   <c:path>$user/name</c:path>
>                </target>
>             </inbound>
>          </attribute>
>          <attribute id="3">
>             <c:ref>ri:firstname</c:ref>
>             <tolerant>false</tolerant>
>             <exclusiveStrong>false</exclusiveStrong>
>             <outbound>
>                <source>
>                   <c:path>$user/givenName</c:path>
>                </source>
>             </outbound>
>             <inbound id="15">
>                <authoritative>true</authoritative>
>                <exclusive>false</exclusive>
>                <strength>normal</strength>
>                <target>
>                   <c:path>$user/givenName</c:path>
>                </target>
>             </inbound>
>          </attribute>
>          <attribute id="4">
>             <c:ref>ri:lastname</c:ref>
>             <tolerant>false</tolerant>
>             <exclusiveStrong>false</exclusiveStrong>
>             <outbound>
>                <authoritative>false</authoritative>
>                <exclusive>false</exclusive>
>                <strength>normal</strength>
>                <source>
>                   <c:path>$user/familyName</c:path>
>                </source>
>             </outbound>
>             <inbound id="16">
>                <authoritative>true</authoritative>
>                <exclusive>false</exclusive>
>                <strength>normal</strength>
>                <target>
>                   <c:path>$user/familyName</c:path>
>                </target>
>             </inbound>
>          </attribute>
>          <attribute id="9">
>             <c:ref>ri:disabled</c:ref>
>             <tolerant>true</tolerant>
>             <exclusiveStrong>false</exclusiveStrong>
>          </attribute>
>          <attribute id="10">
>             <c:ref>ri:extattr1</c:ref>
>             <tolerant>true</tolerant>
>          </attribute>
>          <attribute id="11">
>             <c:ref>ri:extattr2</c:ref>
>             <tolerant>true</tolerant>
>             <exclusiveStrong>false</exclusiveStrong>
>          </attribute>
>          <activation>
>             <administrativeStatus>
>                <outbound id="5"/>
>             </administrativeStatus>
>          </activation>
>          <credentials>
>             <password xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>                       xsi:type="c:ResourcePasswordDefinitionType">
>                <outbound/>
>             </password>
>          </credentials>
>       </objectType>
>    </schemaHandling>
>    <capabilities>
>       <cachingMetadata>
>          <retrievalTimestamp>2018-03-02T18:00:47.965+03:00</retrievalTimestamp>
>          <serialNumber>bc448cace5d6c36e-2884eda7e9fe424b</serialNumber>
>       </cachingMetadata>
>       <native xmlns:cap="http://midpoint.evolveum.com/xml/ns/public/resource/capabilities-3"
>               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>               xsi:type="c:CapabilityCollectionType">
>          <cap:schema/>
>          <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>
>          <cap:addRemoveAttributeValues/>
>          <cap:credentials>
>             <cap:password>
>                <cap:readable>true</cap:readable>
>             </cap:password>
>          </cap:credentials>
>       </native>
>       <configured xmlns:cap="http://midpoint.evolveum.com/xml/ns/public/resource/capabilities-3"
>                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>                   xsi:type="c:CapabilityCollectionType">
>          <cap:activation>
>             <cap:status>
>                <cap:attribute>ri:disabled</cap:attribute>
>                <cap:enableValue>false</cap:enableValue>
>                <cap:disableValue>true</cap:disableValue>
>             </cap:status>
>          </cap:activation>
>       </configured>
>    </capabilities>
>    <synchronization>
>       <objectSynchronization>
>          <enabled>true</enabled>
>          <correlation>
>             <q:equal>
>                <q:path>c:name</q:path>
>                <expression xmlns="">
>                   <path>$account/attributes/ri:username</path>
>                </expression>
>             </q:equal>
>          </correlation>
>          <reconcile>false</reconcile>
>          <reaction>
>             <situation>linked</situation>
>             <synchronize>true</synchronize>
>             <reconcile>false</reconcile>
>          </reaction>
>          <reaction>
>             <situation>unlinked</situation>
>             <synchronize>true</synchronize>
>             <action>
>                <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/action-3#link</handlerUri>
>             </action>
>          </reaction>
>          <reaction>
>             <situation>unmatched</situation>
>             <synchronize>true</synchronize>
>             <action>
>                <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus</handlerUri>
>             </action>
>          </reaction>
>       </objectSynchronization>
>    </synchronization>
> </resource>
>
> <user xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
>       xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
>       xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
>       xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3"
>       xmlns:org="http://midpoint.evolveum.com/xml/ns/public/common/org-3"
>       xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
>       xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
>       oid="a7a35195-edd5-4879-a9b8-9f1c36e441a7"
>       version="12">
>    <name>user111</name>
>    <operationExecution id="1">
>       <timestamp>2018-03-02T18:01:00.445+03:00</timestamp>
>       <status>success</status>
>       <initiatorRef oid="00000000-0000-0000-0000-000000000002"
>                     relation="org:default"
>                     type="c:UserType"><!-- administrator --></initiatorRef>
>       <taskRef oid="35fc0d3e-deed-42a9-9c20-3ec40b5d3f3d"
>                relation="org:default"
>                type="c:TaskType"><!-- csvTT --></taskRef>
>       <channel>http://midpoint.evolveum.com/xml/ns/public/provisioning/channels-3#reconciliation</channel>
>    </operationExecution>
>    <linkRef oid="7c8a0127-ddb9-4722-b613-2878ea98f324"
>             relation="org:default"
>             type="c:ShadowType"><!-- user111 --></linkRef>
>    <activation>
>       <effectiveStatus>enabled</effectiveStatus>
>       <enableTimestamp>2018-03-02T17:19:11.038+03:00</enableTimestamp>
>    </activation>
>    <iteration>0</iteration>
>    <iterationToken/>
>    <givenName>Firstname</givenName>
>    <familyName>Lastname</familyName>
>    <telephoneNumber>11-11</telephoneNumber>
> </user>


—
Dmitry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20180314/8d57bbc6/attachment.htm>


More information about the midPoint mailing list