Logo

Transformaciones disponibles

Transformaciones disponibles #

La transformación de datos consiste en aplicar una función a una serie de valores para sustituirlos por otros nuevos. Prisma Campaigns permite cambiar el formato, la estructura o los valores. Como resultado, los datos se organizan mejor para la elaboración de informes y análisis. Además, este proceso facilita la compatibilidad con otras aplicaciones y protege contra los valores nulos u otros inconvenientes.

Datos de muestra #

ColumnaValor
ID"1"
Name"John Doe"
Email Address"chorch@gmail.com"
City"Atlanta"
Country"USA"
Country Code"us"
Issue Date"2020-04-01"
Exp Date"04/01/2024"
Balance USD"1103"
Currency Rate"41.13"
Sec Question"Some question"
More Data" MORE AND MORE DATA "
Extra Data""
JsonData"{\"a_boolean\": true, \"a_string\": \"Json String Value\"}"

Funciones de conversión #

  • as_int() convierte un valor en un número entero

    Balance_USD
    => "1103"
    
    Balance_USD:as_int()
    => 1103
    
  • as_decimal() convierte un valor en un número decimal

    Currency_Rate
    => "41.13"
    
    Currency_Rate:as_decimal()
    => 41.13
    
  • as_date() convierte un valor en una fecha y hora

    Issue_Date
    => "2020-04-01"
    
    // Zona horaria UTC
    Issue_Date:as_date()
    => #inst"2020-04-01T00:00:00.000-00:00"
    
    // Zona horaria específica
    Issue_Date:as_date("America/Los_Angeles")
    => #inst"2020-04-01T07:00:00.000-00:00"
    
    // Offset con respecto a GMT
    Issue_Date:as_date(-7)
    => #inst"2020-04-01T07:00:00.000-00:00"
    
    // Utilizar un formato específico
    Exp_Date:as_date(-7, \"MM/dd/YYYY\")
    => #inst"2024-04-01T07:00:00.000-00:00"
    
    // Algunos formatos son detectados automáticamente
    Exp_Date:as_date(-7)
    => #inst"2024-04-01T07:00:00.000-00:00"
    

Operadores aritméticos #

  • Suma y concatenación

    Balance_USD:as_int() + Balance_USD:as_int()
    => 2206
    
    Balance_USD:as_int() + -1000
    => 103
    

    Cuando se aplica en cadenas de texto, las concatena.

    City + ", " + Country
    => "Atlanta, USA"
    
  • Resta, multiplicación y división

    Balance_USD:as_int() - Balance_USD:as_int()
    => 0
    
    Balance_USD:as_int() * -1
    => -1103
    
    Balance_USD:as_int() * 2
    => 2206
    
    Balance_USD:as_int() * Currency_Rate:as_decimal()
    => 45366.39
    
    Balance_USD:as_int() / 2
    => 551.5
    
    Balance_USD:as_int() / Balance_USD:as_int()
    => 1
    

Funciones de fecha #

La mayoría de estas funciones aceptan un parámetro de idioma ("en" y "es" para inglés y español, respectivamente) a fin de devolver valores en el lenguage correspondiente.

  • system:current-date() devuelve la fecha y hora actual del sistem

    system:current-date():format-date("yyyy-MM-dd")
    => "2022-12-03"
    
  • day() obtiene el día del mes

    Issue_Date:as_date():day()
    => 1
    
  • dayname() y Dayname() devuelven el día de la semana en minúsculas y capitalizado, respectivamente:

    Issue_Date:as_date():dayname("en")
    => "wednesday"
    
    Issue_Date:as_date():dayname("es")
    => "miércoles"
    
    Issue_Date:as_date():Dayname("en")
    => "Wednesday"
    
    Issue_Date:as_date():Dayname("es")
    => "Miércoles"
    
  • month() obtiene el mes del año

    Issue_Date:as_date():month()
    => 4
    
  • monthname() y Monthname() devuelven el nombre del mes en minúsculas y capitalizado, respectivamente:

    Issue_Date:as_date():monthname("en")
    => "april"
    
    Issue_Date:as_date():monthname("es")
    => "abril"
    
    Issue_Date:as_date():Monthname("en")
    => "April"
    
    Issue_Date:as_date():Monthname("es")
    => "Abril"
    
  • year() obtiene el año

    Issue_Date:as_date():year()
    => 2020
    
  • formal() y Formal() devuelven la fecha en un formato formal

    Issue_Date:as_date():formal("en")
    => "wednesday, april 1, 2020"
    
    Issue_Date:as_date():formal("es")
    => "miércoles 1 de abril de 2020"
    
    Issue_Date:as_date():Formal("en")
    => "Wednesday, April 1, 2020"
    
    Issue_Date:as_date():Formal("es")
    => "Miércoles 1 de Abril de 2020"
    
  • format-date() convierte la fecha en un formato especial

    Issue_Date:as_date():format-date("M/d/YYYY")
    => "4/1/2020"
    
    Issue_Date:as_date():format-date("EEE, d MMM yyyy")
    => "Wed, 1 Apr 2020"
    
  • years-from-date() obtiene el número de años desde una fecha

    Issue_Date:as_date():years-from-date()
    => 2
    

Otras funciones #

  • or() devuelve un valor por defecto si el argumento es vacío

    Country:or("Default country")
    => "USA"
    
    Extra_Data:or("No extra information provided")
    => "No extra information provided"
    
  • trim() Elimina espacios al principio y final de la oración.

    More_Data:trim()
    => "MORE AND MORE DATA"
    
  • capitalize() Capitaliza la oración. Es decir: todas las letras de cada palabra se convierten a minúsculas, a excepción de la primera, que se convierte a mayúscula.

    More_Data:capitalize()
    => "     More And More Data "
    
    More_Data:trim():capitalize()
    => "More And More Data"
    
  • replace(findStr, replaceStr) reemplaza todas las ocurrencias de findStr con replaceStr.

    Email_Address:replace("@", " (at) ")
    => "chorch (at) gmail.com"
    
  • ucase() convierte cadenas de texto en mayúsculas

    Country_Code:ucase()
    => "US"
    
  • lcase() convierte cadenas de texto a minúsculas

    City:lcase()
    => "atlanta"
    
  • subs(pos, [len]) extrae una subcadena de texto (len es opcional). Cuando len no está presente, subs(pos) extrae el texto comenzando en pos hasta el fin de la cadena.

    City:subs(0, 1) + City:subs(-3) + \".\"
    => "Mdeo."
    
  • unescape-html() deshace los caracteres HTML (&, <, >, ", ', ', / and /)

    Sec_Question
    => "Some question"
    
    Sec_Question:unescape-html()
    => "Some question"
    
  • getAt(index, separator) divide una cadena de texto en un arreglo utilizando separator y devuelve el elemento ubicado en la posición dada por index (basada en cero).

    Email_Address:getAt(0, "@")
    => "chorch"
    
    Email_Address:getAt(1, "@")
    => "gmail.com"
    
  • json(key) analiza JSON para obtener un key

    JsonData:json("a_string")
    => "Json String Value"
    
    JsonData:json("a_boolean")
    => true
    
  • format(formatStr) da formato a una cadena de texto utilizando formatStr

    Name:format("Hello, %s!")
    => "Hello, John Doe!"
    
    Name:format("Hello, %s! ") + Balance_USD:as_decimal():format("Your balance is $%.2f")
    => "Hello, John Doe! Your balance is $1103.00"
    

Condicionales #

Se provee soporte para condicionales simples. El siguiente ejemplo se puede emplear para llenar un campo calculado con el nombre Country en base al número de teléfono celular (columna: Cellphone).

IF Cellphone:subs(0, 2) = "+1" THEN
    "USA"
ELSE IF Cellphone:subs(0, 3) = "+44" THEN
    "UK"
ELSE
    "Other"
END