0

I am deploying an app that uses Dynamic Forms with multiple field sections. However, the target deployed environ only shows the field sections without any of the fields in them. There are no records in this app. I don't even see the fields when creating a new record. Is there something else I need to add to the package.xml to retrieve in order to associate the fields to these field sections ? My profile has the proper permissions and tab visibility so this is not an access issue.

Manifest package and retrieval used (with properties file):

 <target name="LightningBundle">
    <sf:retrieve username="${DEV.username}" password="${DEV.password}" serverurl="${DEV.url}" retrieveTarget="LightningBundle" unpackaged="LightningBundle.xml" maxPoll="10" pollWaitMillis="500000" trace="false" apiVersion="50.0"/>
</target>

Manifest

    <?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>ComplaintReviewUnit</members>
        <name>CustomApplication</name>
    </types>    
    <types>
        <members>Inquiry__c</members>
        <name>CustomObject</name>
    </types>
    <types>
        <members>Inquiry__c-ComplaintReviewUnit</members>
        <name>Layout</name>
    </types>    
    <types>
        <members>Inquiry__c.ComplaintReviewUnit</members>
        <name>RecordType</name>
    </types>
    <fullName>Complaint Review Unit Record Page</fullName>
    <types>
        <members>Complaint_Review_Unit_Record_Page</members>
        <members>Complaint_Review_Unit_UtilityBar</members>
        <name>FlexiPage</name>
    </types>    
    <types>
    <members>Inquiry__c</members>
     <members>CRUTest__c</members>  
    <name>CustomTab</name>
    </types>        
    <version>50.0</version>
</Package>

Now we see the FieldInstances representing the fields placed within the FieldSection components. The names of the FieldSection components (columns and Name) are represented by the Facet.

   <flexiPageRegions>
        <itemInstances>
            <fieldInstance>
                <fieldItem>Record.trmsNo__c</fieldItem>
            </fieldInstance>
        </itemInstances>
        <itemInstances>
            <fieldInstance>
                <fieldItem>Record.remediationNo__c</fieldItem>
            </fieldInstance>
        </itemInstances>
        <itemInstances>
            <fieldInstance>
                <fieldItem>Record.status__c</fieldItem>
            </fieldInstance>
        </itemInstances>
        <name>Facet-60f8245e-1e6c-40aa-8041-6d2a6ef64539</name>
        <type>Facet</type>
    </flexiPageRegions>
    <flexiPageRegions>
        <itemInstances>
            <fieldInstance>
                <fieldItem>Record.Case__c</fieldItem>
            </fieldInstance>
        </itemInstances>
        <name>Facet-a683ab77-d9c9-48a9-b8fe-03c767a54094</name>
        <type>Facet</type>
    </flexiPageRegions>

The FieldSection component is in 2 column format. Each column is represented by it's own unique Facet. The last (3rd) Facet is the actual reference to the 'Name' of the FieldSection.

<flexiPageRegions>
    <itemInstances>
        <componentInstance>
            <componentInstanceProperties>
                <name>body</name>
                **<value>Facet-608e22f2-3967-406e-9394-0bb9fcbdaf2f</value>**
            </componentInstanceProperties>
            <componentName>flexipage:column</componentName>
        </componentInstance>
    </itemInstances>
    <itemInstances>
        <componentInstance>
            <componentInstanceProperties>
                <name>body</name>
                **<value>Facet-2e76466f-de89-483b-b5c9-c871eb028a3e</value>**
            </componentInstanceProperties>
            <componentName>flexipage:column</componentName>
        </componentInstance>
    </itemInstances>
    <name>**Facet-417af858-bde8-4e36-b009-0f1a3e84d349**</name>
    <type>Facet</type>
</flexiPageRegions>

This is the Facet that reflect the Name of the FieldSection:

   <itemInstances>
        <componentInstance>
            <componentInstanceProperties>
                <name>columns</name>
                <value>**Facet-417af858-bde8-4e36-b009-0f1a3e84d349**</value>
            </componentInstanceProperties>
            <componentInstanceProperties>
                <name>label</name>
                <value>**Call Listening Response**</value>
            </componentInstanceProperties>
            <componentName>flexipage:fieldSection</componentName>
            <visibilityRule>
                <criteria>
                    <leftValue>{!Record.requestCallListening__c}</leftValue>
                    <operator>EQUAL</operator>
                    <rightValue>Yes</rightValue>
                </criteria>
            </visibilityRule>
        </componentInstance>
    </itemInstances>
2
  • What exactly did you deploy? Your package.xml or command you use would be helpful. – Kris Goncalves Apr 8 at 12:36
  • @KrisGoncalves I provided these in the edit above. – rickmac Apr 8 at 13:51
1

Your API version is the issue. I see 48.0 in the package.xml and then 42.0 in the ANT script?

Dynamic forms, and it's underlying metadata, is only returned in API version 49.0 or later.

If you look at the flexipage docs, you'll see this mentioned:

enter image description here

The field sections in FlexiPage are actually just FlexiPageRegion which has existed prior to dynamic forms (and hence why that deploys solely). To get the new features you need to use API 49 or higher to get the relevant properties that control the fields themselves

  1. FieldInstance
  2. FieldInstanceProperty
4
  • Hey Kris, Thanks. Let me build another with ver 49 (on both :) ) Sounds like the FieldInstance will show up in the Flexipages after the build. Will update the results here as well for others embarking on dynamic forms. – rickmac Apr 8 at 17:39
  • @KrisGonvales I provided the edit above. Now I see the Field Instances and verified them against the UI as well. Where do the facet values map to the actual names of the FieldSection components that contain the FieldInstances? – rickmac Apr 8 at 20:35
  • If you copy the Facet value you should find all the exact references to it. There's another <flexiPageRegions> that contain <componentInstanceProperties> that have the name and value to map the Facet to the label name – Kris Goncalves Apr 8 at 20:43
  • @KrisGonvales great. Took some hunting and picking. The 2 column format was throwing me off. I edited the above to detail my findings using the information you provided. Thanks for all this. I think this thread will help others. – rickmac Apr 8 at 21:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.