Multivalued Attributes in Mapping Suggestions

Last modified 01 Sep 2026 12:31 UTC
Since 4.11
This functionality is available since version 4.11.

Overview

This document summarizes the behavior and analysis of multivalued attributes (maxOccurs > 1) during Smart Integration mapping suggestions across midPoint and the AI Microservice.

Test Methodology

The behavior was tested with the following setup:

  • LDAP with multivalue attributes: Verified in gui Resource → Schema → InetOrgPerson to confirm multivalued attributes.

  • Enabled TRACE logging: Monitored MappingsSuggestionOperation in midPoint.

  • Added microservice logging: Logged request parsing, sample formatting, and responses in the AI microservice.

Findings

1. When a multivalued attribute contains only one value

Everything works identically to standard single-value attributes:

  • The microservice automatically unwraps the single-item list into a scalar value.

  • The LLM infers and generates a scalar MEL script.

  • The midPoint quality assessor validates the single-item sample and accepts the mapping.

2. When an attribute contains multiple values

  • Inbound import into empty midPoint (Initial load): When midPoint has no existing data for correlation/validation, the mapping passes without value checks and falls back to a direct As-Is mapping.

  • Target attribute has no data: If the target system has objects but the specific target attribute is empty/missing across samples, the mapping passes without value checks as a direct As-Is mapping.

  • Target attribute has data (As-Is check): midPoint checks if the collections match identically across all samples:

    • Matches: If all values match across the entire collection for every sample, the mapping passes as As-Is with quality 1.0.

    • Mismatches / Incompatible cardinality: midPoint cannot match a multivalued attribute (List) with a single-value attribute (String) or collections with different sizes so it returns false.

  • Script suggestion for multiple values: When any sampled value pair contains multiple values for either the shadow or focus attribute, midPoint does not send the data to the AI microservice. Instead, it falls back to a direct As-Is mapping. This prevents the microservice from receiving multi-item lists, which it cannot process and which previously caused a 500 error.

Was this page helpful?
YES NO
Thanks for your feedback