Splitting Source Data into Multiple Target Records

You can set up Foundations messaging to create multiple target records on a single object from data in a single message.

The way you set this up depends on the hierarchical level of the records you are creating in the subscription:

  • For the primary target object specified on the subscription: You can create multiple subscriptions that reference that target object.
  • For objects that are children or other descendants of the target object specified on the subscription: You can define and specify target child types on mappings to create categories, such as Credit, Debit, and Admin Fee.

The following example shows that a single publication can be used to create the following records:

  • Journals, the primary target object in the FFA/BillingDocument.Complete subscription
  • Two different categories of journal line items, a child relationship in the FFA/BillingDocument.Complete subscription
  • Billing contracts, the primary target object in the FFA/BillingDocument.Complete subscription

Publication

Subscription

Target Object

Target Child Type

ERP/BillingDocument.Complete FFA/BillingDocument.Complete Journal -
Journal Line Item Credit
Journal Line Item Default
Billing Central/BillingDocument.Complete Billing Contract -

Target Child Types

A target child type is a category that you define on a child mapping. This enables you to create multiple target child records of different types from a single source child record. You can map different keys to the same target field and ensure that separate records are created for that data. The target child type can be identified on the record as the name of the target child type is appended to the value of the child correlation field. No target child type information is appended for the default target child type.

In some circumstances, you might have source data from one record that you want to be represented by separate target records:

  • You want to create target records for the original source data as well as new additional target records, for example, by adding a fixed installation or administration fee to a sales invoice line item
  • You want to split the original source data into several separate target records, for example, to represent credit and debit information on separate journal line items

You can create and assign as many target child types as you need for each subscription. Any child mappings that contain a blank target child type are automatically assigned the Default target child type. Target child types are case insensitive. When separating target child types, one of the child types must have the assignment of ‘Default’.

The following section provides more information about these use cases.

Example: Additional Admin Fee Records

You have a messaging subscription set up to create billing documents and billing document line items. You want to create a separate billing document line item to represent an admin fee whenever a line item is created.

To do this, you can create a mapping for the admin fee details, such as a static fee of $20. You can identify that mapping and any others that you want to appear on that type of record by creating a target child type called Admin Fee.

The following table shows how you can map different information to the same fields using two different child target types.

Key

Target Child Type

Target Field

Name Default Billing Document Line Item Name
Value Default Total Value
Name Admin Fee Billing Document Line Item Name
Fee Admin Fee Total Value

In this example, if you sent the following message, you would create four records.

Key

Target Child Type

Value

Name Default Internet Services
Value Default 500
Name Admin Fee Installation
Fee Admin Fee 20
Name Default Telephone Services
Value Default 100
Name Admin Fee Installation
Fee Admin Fee 20

Example: Separate Credit and Debit Records

You can use target child types to create separate credit and debit records, for example, when creating journal line items. When separating the records, one of the target child types must be left as ‘Default’. In the example below, the Debit records are represented with the ‘Default’ name.

In this example, the publication includes details of a positive and negative value. The negative value is sent by referencing a formula field on the publication source object, which stores the corresponding negative value. 

You can create mappings for two separate target child types, Credit and Default.

Key

Target Child Type

Target Field

Name Credit Journal Line Item ID
CreditValue Credit Value
Name Default Journal Line Item ID
DebitValue Default Value

In this example, if you sent the following message, you would create four records.

Key

Target Child Type

Value

Name Credit Office Supplies
CreditValue Credit 50
Name Default Office Supplies
DebitValue Default -50
Name Credit Kitchen Supplies
CreditValue Credit 100
Name Default Kitchen Supplies
DebitValue Default -100