+ Start a Discussion
Jay HartleyJay Hartley 

Why did edit page layout for Person Account change in recent SOAP APIs?

We just made a significant... ok HUGE... jump in the SOAP API version we are using, so I'm not sure when exactly this changed, but in API 24, the page layout for Person Account shows the First Name and Last Name on diferent rows when in Edit mode. The latest API, v37, seems to compress them all onto a single row, which gives our custom UIs a major headache.

What really confuses me is that Salesforce's own Account edit page has a layout consistent with the old API version, not the new one.

We've been able to deal with the other changes in the structure of the page-layout describe itself, but this is fundamentally a difference in the layout and labelling of the fields, just due to an API change. What gives? Am I missing something?

Old API: (Note two rows, two columns to show Salutation+FirstName, Credentials, LastName, and Specialty)
<editLayoutSections>
	<columns>2</columns>
	<heading>Account Information</heading>
	<layoutRows>
		<layoutItems>
			<editable>true</editable>
			<label>First Name</label>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>21</tabOrder>
				<type>Field</type>
				<value>Salutation</value>
			</layoutComponents>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>22</tabOrder>
				<type>Field</type>
				<value>FirstName</value>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>false</required>
		</layoutItems>
		<layoutItems>
			<editable>true</editable>
			<label>Credentials</label>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>31</tabOrder>
				<type>Field</type>
				<value>Credentials_vod__c</value>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>false</required>
		</layoutItems>
		<numItems>2</numItems>
	</layoutRows>
	<layoutRows>
		<layoutItems>
			<editable>true</editable>
			<label>Last Name</label>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>23</tabOrder>
				<type>Field</type>
				<value>LastName</value>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>true</required>
		</layoutItems>
		<layoutItems>
			<editable>true</editable>
			<label>Specialty</label>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>32</tabOrder>
				<type>Field</type>
				<value>Specialty_1_vod__c</value>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>false</required>
		</layoutItems>
		<numItems>2</numItems>
	</layoutRows>
	<layoutRows>
   <!-- snipped rest ... -->
</editLayoutSections>
API 37: (one row, two columns to show Salutation+FirstName+LastName and Credential. This is the same user and org as above result!)
<editLayoutSections>
	<columns>2</columns>
	<heading>Account Information</heading>
	<layoutRows>
		<layoutItems>
			<editableForNew>true</editableForNew>
			<editableForUpdate>true</editableForUpdate>
			<label>Name</label>
			<layoutComponents xsi:type="FieldLayoutComponent">
				<displayLines>1</displayLines>
				<tabOrder>20</tabOrder>
				<type>Field</type>
				<value>Name</value>
				<components>
					<displayLines>1</displayLines>
					<tabOrder>21</tabOrder>
					<type>Field</type>
					<value>Salutation</value>
				</components>
				<components>
					<displayLines>1</displayLines>
					<tabOrder>22</tabOrder>
					<type>Field</type>
					<value>FirstName</value>
				</components>
				<components>
					<displayLines>1</displayLines>
					<tabOrder>23</tabOrder>
					<type>Field</type>
					<value>LastName</value>
				</components>
				<fieldType>string</fieldType>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>true</required>
		</layoutItems>
		<layoutItems>
			<editableForNew>true</editableForNew>
			<editableForUpdate>true</editableForUpdate>
			<label>Credentials</label>
			<layoutComponents>
				<displayLines>1</displayLines>
				<tabOrder>31</tabOrder>
				<type>Field</type>
				<value>Credentials_vod__c</value>
			</layoutComponents>
			<placeholder>false</placeholder>
			<required>false</required>
		</layoutItems>
		<numItems>2</numItems>
	</layoutRows>
      <!-- snip ... -->
</editLayoutSections>