Data source/SPOR.OMS/data model/addressLine1/mapping/CDQ/transformation

From CDQ
Jump to navigation Jump to search


Part of Hierarchical relation between two concepts of the CDQ Data Model. Data source SPOR.OMS
Mapping source The source of a data model mapping. SPOR.OMS addressLine1, addressLine2THOROUGHFARE_VALUE
Transformation type A type of a transformation applied to a data model mapping. CUSTOM_TRANSFORMATION"CUSTOM_TRANSFORMATION" is not in the list (UPPER_CASE, LOWER_CASE, CUSTOM) of allowed values for the "Has transformation type" property.
Transformation parameter A transformation parameter is an action proccessed by a data model transformation. n/a
Description Informal and comprehensive human-readable definition of a concept. n/a

Transformation code Any code (in Python, JAVA or other) that will transform values for a given data source attributes.

def transform(raw_data):
    if not raw_data.strip():
        return

    result = {}

    addressLines = [elem.strip() for elem in raw_data.split(';')]

    if len(addressLines) < 1:
        return

    addressLine1 = [elem.strip() for elem in addressLines[0].split('¦')]
    addressLine2 = [elem.strip() for elem in addressLines[1].split('¦')] if len(addressLines) > 1 else []

    if addressLine1 and addressLine1[0] and addressLine2 and addressLine2[0]:
        result["addresses[0].thoroughfares[0].value"] = addressLine1[0] + ", " + addressLine2[0]
    elif addressLine1 and addressLine1[0]:
        result["addresses[0].thoroughfares[0].value"] = addressLine1[0]
    elif addressLine2 and addressLine2[0]:
        result["addresses[0].thoroughfares[0].value"] = addressLine2[0]

    if result:
        result["addresses[0].thoroughfares[0].type.technicalKey"] = "STREET"

    return result