Address Inheritance Support

  • iPad
  • Browser (Classic)
  • Windows Tablet

Address inheritance allows users to manage addresses from a parent business account instead of a child account. This allows many companies to maintain addresses at the business account level, most often when leveraging third-party providers for address data.

The Address Inheritance function is supported through a set of custom fields on the Address_vod and Child_Account_vod objects in combination with a batch process that scans all account hierarchies and creates copies of all parent business account addresses on linked child, business, or person accounts. The fields on the Address_vod object that are copied can be configured through supporting Veeva Messages.

The following data preparation and configuration steps are required to use the Address Inheritance functionality:

Data Preparation

  1. Load all parent business accounts into the system.
  2. Load all child person accounts and business accounts into the system ensuring the Copy_Address_vod field is selected on all Child_Account_vod records where Address Inheritance is applied.
  3. Load addresses for all parent business accounts and, if applicable, unique Addresses for Children Business and Person Accounts into the system.
  4. Load the Account hierarchies linking Parent Business Accounts with Children Business and Person Accounts into the system.

Configuring Address Inheritance Support

Ensure initial configuration is complete to use this functionality.

  1. Define the fields on the Address_vod object that should be copied from the parent business account address to the child business or person account address. This setting can be defined as global setting as well as a country specific setting.
  • As a global setting:
  • Navigate to the Veeva Message ACCT_HIER_ADDR_COPY_FIELDS
  • Clone this message and activate it per standard Veeva configuration
  • Designate the specific Address fields to be copied for your organization because this is a sample message. Fields should be entered in a comma separated list.

The Primary_vod field cannot be used in this setting.

  • As a country specific setting:
  • Clone the ACCT_HIER_ADDR_COPY_FIELDS Veeva Message and rename it to ACCT_HIER_ADDR_COPY_FIELDS_[CountryCode] where CountryCode equals the two digit country code identifier. The country code must match the two digit country code identifier from the Country picklist on the Address object. For example, [de] for Germany.
  • Ensure the country specific Veeva Message is Active If a country specific Veeva Message exists, the Address Inheritance batch process will copy the fields listed in this message instead of the global message.
  1. Configure child account address fields as Read-only. You can optionally configure Address Inheritance to prevent certain address fields from being editable on the Person Account Address:
  • Create a record type sharing the DeveloperName name as the record type in use by the parent business account address, then add _CHILD as a suffix. For example, CompanyMaintained_CHILD
  • Create record type-specific page layouts limiting edit permissions for the desired fields on the address record. When the child address record is created via Address Inheritance, the system looks for the _CHILD Record Type value and applies the associated layout properties to the copied child address. If no _CHILD record type exists, then the record type for the parent business account address is applied to the child account address.
  1. Schedule the batch process.
  • Create and schedule an Apex Class to enable the VEEVA_BATCH_CHILD_ACCOUNT_PUSH and VEEVA_BATCH_CHILD_ACCOUNT_DELETE batch address update components
  • An example has been provided under the apex class EXAMPLE_FOR_ADDRESS_PUSH_SCHEDULING
  • Schedule the custom apex class created for batch updates using the Schedule Apex button and define according to your desired run time
  • The batch process should be scheduled according to the timing needed to support your business process. For example, if your organization processes updates to addresses from an external system nightly, then the batch job in Veeva should be scheduled to run after the update from the external system has completed.
  • The batch process is an ongoing process that cascades updates made to the parent address to the corresponding child address records (for example, where the Controlling Address ID on the child address is equal to the parent address record ID and the Controlled Address flag on the child address is checked)
  • To prevent errors in the batch process, if the EXAMPLE_FOR_ADDRESS_PUSH_SCHEDULING apex class is set for a batch size of 10, try to limit the batch to approximately 25 child accounts and 60 addresses to be copied.
  • After the batch process is complete, unmark the Copy Address check box from the child accounts so they will not be queried later if you attempt to run the job again.

As an alternative to creating an apex class, users can authorize Real Time Address Push.

  1. Configure the default value of the No_Address_Copy field in the Address_vod object to be disabled.
  2. Set the Enable_RealTime_Address_Push custom label value to true. Real Time Push asynchronously updates Child Account address data whenever the Parent Accounts is modified. This allows administrators to process the account-level data changes without running an apex batch job.

When address inheritance is enabled and a new account is created using the Data Loader's web services API, the following occurs:

  • All addresses from the selected parent business account are copied to the newly created child account record
  • The fields copied as part of the child account address records)are based on the fields defined in the ACCT_HIER_ADDR_COPY_FIELDS_vod Veeva Message as well as default field values defined by the Administrator or within the Veeva CRM application
  • If no additional fields are defined in the ACCT_HIER_ADDR_COPY_FIELDS Veeva Message, then the following fields are copied by default:
  • Name (Address Line 1)
  • Address_Line_2_vod
  • City_vod
  • Zip_vod
  • The Controlled Address flag on the Child Account Address record is selected populating the Controlling Address field with the parent address ID
  • The Copy Address flag will remain selected on the Child Account record ensuring any future updates to the Controlling Address are cascaded to the corresponding Child Account Address records

The CRM address inheritance process deletes the controlled address from the Person Account when the Child Account record is deleted, using the trigger VEEVA_CHILD_ACCOUNT_ADDRESS_CLEAN on the Child_Account_vod object.

  • If users are creating Parent-Child account relationships using the Member Of related list on an account, the Copy Address check box should be added to the page layout to allow the user to manually enable address inheritance from the parent account. Alternatively, if address inheritance always applies, you can configure the default value for this field to be selected thereby eliminating the need to expose it in the page layout for a user to select. To do this, you must also enable the ENABLE_PARENT_ACCOUNT_ADDRESS_COPY_vod__c Veeva Setting.
  • All processing occurs only online. Inherited addresses will not display in the offline client until a subsequent sync and execution of the address batch process.
  • There may be some delay in copying the addresses depending on the number of records processed
  • The No Address Copy field on the Address object is an administrative field that allows for a one-time override of the Address Inheritance process to prevent a designated Business Account Address from being copied
  • When importing records, the No Address Copy field can be selected to designate that a Business Account address should not be copied. The value of this field is cleared after the import completes. You must also deselect the custom label ENABLE_REALTIME_ADDRESS_PUSH.
  • The No Address Copy field is strictly for administrative use. It should not be added to any page layout. In addition, as the field value is not persistent, it could cause confusion for a user if exposed in the UI.

An account’s primary address cannot be inactive or have inactive child addresses. When marking the child of a primary parent address as inactive, admins must also remove the child address’s relationship to the primary address.