[midPoint] inbound that returns only the first entry from a list

Fabian Noll-Dukiewicz fabian.noll-dukiewicz at fndit.de
Fri Jul 22 13:08:29 CEST 2022


Hi,

you can tokenize your input (inArr = input.tokenize(',') to create an array. After that you can loop through your values or  just return the first one (return inArr[0]).

Hope that helps.

Kind regards,
Fabian

Von: Hsin-Fang Hsu <hsin-fang.hsu at itconcepts.ch>
Datum: Freitag, 22. Juli 2022 um 10:52
An: midPoint General Discussion <midpoint at lists.evolveum.com>
Betreff: [midPoint] inbound that returns only the first entry from a list
Hi,

In the resource, the attribute ri:mail is a list. In the inbound, I just want to take the first entry in the mail list and target it to emailAddress.
How can I do this?

The code below simply results in the error: Attempt to add 2 values to a single-valued item emailAddress
The input of the inbound attribute is always just one value instead of a list, so I cannot check if the input is a list.

<attribute>
    <ref>ri:mail</ref>
    <inbound>
        <expression>
            <script>
                <code>
                    log.info("--input is:"+input)
                    return input
                </code>
            </script>
        </expression>
        <target>
            <path>emailAddress</path>
        </target>
    </inbound>
</attribute>


Thank you very much for your help in advance!

Best regards,
Hsin-Fang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220722/60c4819e/attachment.htm>


More information about the midPoint mailing list