Skip to content

Data Adaptation

There are ways to adapt the data being read or written by the Common Model. For example, if one system displays data as a decimal number, but you want the data to show as a monetary value, you can transform that data as the Common Model reads and/or writes it. Adapting data is more likely to be done on the subscribing side, but it is possible to execute on both.

NOTE

Only available adaptation options will be displayed based on your configured Endpoints and Mapping Actions.

Advanced Tab

In the advanced settings, you can dictate when data gets transferred from the Common Model to other systems. For instance, on the subscribing side, you may want some functionality to only execute when a new record is created or only when data is updated. Also, data taken from the Common Model that is a string, but needs to be written to a Connector as a double or decimal value, changing the output, can be done here.

Read Action

SettingDescription
FK System OverrideWhen the data that is read from the Connector creates a Foreign Key on the Data Model, it will by default set the system of Connector. This override allows you to override the key as a value from another system.

Write Action

SettingDescription
FK System OverrideWhen the data is written to the Connector, it will by default pull the Foreign Key value of the Connector it is writing to. This override allows you to override the key as a value from another system.
Supported OperationsBy default, the map will execute for both Create and Updates; however, Supported Operations allows you to direct the map to only execute on a specific Write Operation, Create or Update.
Value TypeConverts the mapped value to a given type — numeric, date, etc. This is a conversion, not a display format, and it runs after any transforms on the map. See Value Formatting.
Supported SystemsBy default, the map will execute for any system that posts a message that this Connector receives; however, Supported Systems allow you to only execute this map if the message came from a specific list of systems.
FK Use LabelBy default, the Foreign Key map writes the value of the Foreign Key; however, this setting allows you to override the default and instead use the Label of the Foreign Key that is stored inside the Central Index.

WARNING

Users should implement the Supported Systems functionality infrequently and only in necessary instances, as this will isolate the data transfer to that specific Mapping.

Transforms Tab

Transforms can be added to either subscribe or publish Mapping; however, they are more commonly used to modify the data being consumed by a system (on the subscribe side). Transforms can be strung together to manipulate data in multiple ways.

Transforms run in list order, and the Value Type setting on the Advanced tab is applied after all of them. That ordering matters whenever a transform produces your final wire format — see Value Formatting → Order of operations.

TransformDescriptionInputs
AdditionAdds a value to a property on the Data Model and outputs the result.Add -- the value to be added
Auto-Number for KeyGenerates a unique identifier for each child on a message (starts at 1, 2, and so on).None (only used on primary key maps)
Business Logic MapAdds conditional logic to a single property. Within a BizLogicMap, you can add Groups for more complex scenarios, where you can achieve And/Or scenarios, but between groups it supports only Or. For example, if the property value equals X or the property value equals Y, then return Z.Group: And/Or, Operator, Value, Return Value. Else Return Value: If all of the groups return false, this value is returned from the map.
Business Logic Map - SimpleAdds conditional logic to a single property. This is the same concept as BizLogicMap, but only matches for equality and does not allow for more complex logic with groupings (e.g. if equals this value then return that value).Comparison: The value you are comparing the property to be equivalent to; then Return: If the value of the property equals the value of the Comparison, then return this value. Return Null, Return Original Value, Else Return Value.
Compute ExpressionThis transform can be used to take in multiple properties and perform conditional logic or computation and return a value. Uses the syntax for .NET DataTable.Compute.Expression
Convert From Base64Used to convert a property from a Base64 encoded string, typically in file upload scenarios.None
Convert TimeZone to UTCThe inverse of Convert UTC To TimeZone: treats the incoming date/time as local to the chosen time zone and converts it to UTC. Typically used on a publish map when the source system stores local times. Accepts a date/time or a parseable date string.Time Zone
Convert To Base64Encodes the value as a Base-64 string (UTF-8).None
Convert UTC To TimeZoneUsed to convert a date time that is in UTC format to a specific time zone, most likely on a subscriber.Time Zone
CSV to ListA single property that is a character delimited list of values, split into a List. This transform will only work when mapping into values on the Common Model that is a list of strings.Make Distinct, Trim Items, Character Separator
Date ChangeShifts a date/time by a fixed offset. Each unit is added independently and may be negative, so "-1 day, +2 hours" is a single transform. Useful for overlap windows on a read filter, or for aligning to a system that expects an inclusive end date.Total Seconds, Total Minutes, Total Hours, Total Days, Total Months, Total Years
Date OnlyStrips the time component, leaving midnight of the same date. Accepts a date/time or a parseable date string, so it doubles as a way to coerce a date string into a real date before a Formatting Template.None
Default To Current DateIf the incoming property value is null, it will default to UTC date/time. Typically used on saves for a create record.None
Default ValueIf the incoming property value is null, it will default to this value. Typically used on saves for a create record.A predetermined value
DivisionTakes a property on the Data Model and divides by a value; then, outputs the result.A Divisor (the value of what you are dividing by)
Flatten Date/TimeUsed to break a date apart into individual properties on a Save, or to combine them on a Read. For example: { "year": 2023, "month": 1, "day": 1 }Include Time, Protocol, Year, Month, Day
Formatting TemplateTakes one to many properties on the Data Model and does a string format; then, returns the result. The format of the template uses placeholders like {0}-{1}-{2}. The mapping engine replaces {0} with the value of the first property, and so on. Each placeholder can carry a format — {0:yyyy-MM-dd}, {0:D6}. See Value Formatting.Template
From Epoch TimeConverts a Unix epoch timestamp in milliseconds into a UTC date/time. Pair with a Formatting Template to render it in the shape the target expects.None
Invoke Instance Method (Deprecated)Calls a named method on the incoming value by reflection. Deprecated — see the warning below.Method Name, Parameters (type + value)
Invoke Static Method (Deprecated)Calls a named static method on a named .NET class by reflection, passing the incoming value as the argument. Deprecated — see the warning below.Class Name, Method Name, Parameter Types
Invoke Static PropertyReturns the value of a named static property or field on a named .NET class. Ignores the incoming value.Class Name, Property Name
JSON ContainsExecutes a JSONPath. If it finds a value, it returns true, else returns false.JSONPath
Math TruncateTrims off all decimal values.None
MultiplicationMultiplies a value to a property on the Data Model and outputs the result.Multiplier (the value to be multiplied)
Parse to JSONTakes a string value and generates a JSON object.None
Regex MatchPulls a value out of a string based on a pattern; returns text from within a string that matches the provided regular expression. Only the matching text will be used in the map (to find specific text within a string, such as a specifically formatted date that you want to pull just the month).Match Pattern
Regex ReplaceFormats a string of digits into a specific format; for example, formatting 10 digits into a specific phone number format.Match Pattern: tells it what to find in the string. Replace Pattern: tells it how to reformat the string based on what has matched.
RoundApplies rounding on a numeric property.Behavior: Always round up, Always round down, Default. Precision.
String JoinTakes multiple values from a Publisher and writes them as a single, delimited string to the Subscriber.Delimiter
SubstringRetrieves a portion of a string. For example, if a field can only accept 30 characters, Substring can be used to return only the first 30 characters of a property and remove the rest.Starting Index: the position on the string you want to start with (e.g. the starting position is 0). Number of Characters.
SubtractionSubtracts a value from a property on the Data Model and outputs the result.Subtract -- the value being subtracted
To Epoch TimeConverts a date/time (or a parseable date string) into a Unix epoch timestamp in milliseconds.None
To LowercaseLowercases the value. String input only — a non-string value raises an error, so place it after any transform that produces text.None
To Title CaseTitle-cases the value (e.g. acme holdingsAcme Holdings). String input only.None
To UppercaseUppercases the value. String input only.None
US State AbbreviationConverts between US state names and their two-letter abbreviations, in either direction. Covers the 50 states, DC, and the USPS territories. Matching is case-insensitive; abbreviations come back uppercase and names in canonical casing.Mode: Abbreviation → Full Name, or Full Name → Abbreviation. Return Original Value (default) or Else Return Value, used when no match is found.

WARNING

Invoke Instance Method and Invoke Static Method are deprecated. They allow arbitrary .NET methods to be invoked from configuration and will be removed in a future release. Use a Compute Expression, a Business Logic Map, or a purpose-built transform instead.

TIP

Several of these transforms are the answer to "my format specifier isn't doing anything" — Date Only, Convert TimeZone to UTC, and From Epoch Time all coerce text or a number into a real date, which a Formatting Template can then format. See Value Formatting.

Behaviors Tab

Behaviors are advanced level options to assist developers in further isolating data transfers. They are unique overrides, used to adapt the data so that it behaves differently than it typically would.

BehaviorDescription
Allow Empty Fixed ValueUsed primarily on Write Maps, it sets empty string on a field that we do not have mapped, but that needs to be included on the payload of a Save.
Bi-Directional Blocking IdentifierUsed to select a field separate from the key that is unique and can be used to enforce bi-directional blocking on bi-directional endpoints.
Hide From LoggingUsed to hide sensitive data (SSN, salaries, etc.) from the logs.
Allow Primary Key to ChangeUsed primarily on Read Maps to tell the engine it can update a value on a Primary Key in the Central Index. By default, Central prevents this from happening, so this acts as an override.
Map from Absolute RootUsed primarily on Read Maps, and mainly inside of nested maps, to path to the top level.
Map To Absolute RootUsed in nested lists to retrieve a value from the parent.
Skip if NullUsed primarily on Write maps, in instances where you want to ignore the map entirely if the incoming value on the property is null.

Overrides

Overrides allow you to define different connector properties based on operations (Create vs Update). For example, you may want a different mapping behavior on creating a new record vs. updating an existing record.

See Also

TeamCentral Admin Web Documentation