Best Practices

Keep all container subforms in fragment as flowed to enable customization and resizing of tables. If a fragment contains tables, avoid putting target areas and fields at the same level. Tables are resized only if a fragment layout contains only tables.

If you are using dynamic tables, set the binding of fields, container row, and table to "use name" for merging data correctly with the repeating table.

If you are using dynamic tables, all the repeating DDEs bound to the table fields are part of same hierarchy. All collection DDEs fall on the path from root element to the deepest collection DDE. For non-repeating DDEs, there is no such restriction.

Increase maximum collection level in a Data Dictionary to 50

The letter render fails while resolving modules with complex data dictionary elements. This error occurs when a letter contains dictionary elements that have a collection level of more than 15.

You can, however, increase the collection level of your data dictionaries up to 50.

To increase maximum collection level in a Data Dictionary to 50
  1. Log in to CRXDE using the Administrator account.

  2. Open /etc/aep/config/dataservices/services-config.xml.

  3. To, increase the maximum collection level to 50, add the sections indicated by the comment "Max Collection level changes" below in the same sections of the services-config.xml file.

    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"> 
        <endpoint url="http://{server.name}:{server.port}/{context.root}/dataservices/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> 
        <properties> 
            <polling-enabled>false</polling-enabled>         
                <!-- Max Collection level changes --> 
                <serialization> 
                    <max-collection-nest-level>50</max-collection-nest-level> 
                </serialization> 
                <!-- Max Collection level changes --> 
        </properties> 
    </channel-definition> 
     
    <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel"> 
        <endpoint url="http://{server.name}:{server.port}/{context.root}/dataservices/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/> 
        <properties> 
            <polling-enabled>true</polling-enabled> 
            <polling-interval-seconds>8</polling-interval-seconds>  
                <!-- Max Collection level changes --> 
                <serialization> 
                    <max-collection-nest-level>50</max-collection-nest-level> 
                </serialization> 
                <!-- Max Collection level changes --> 
        </properties> 
    </channel-definition>
  4. Click on Save All to save the changes.

  5. Restart the application server.

// Ethnio survey code removed