Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Insert excerpt
_Banners
_Banners
namephixScript
nopaneltrue

This page is for anyone writing text strings in expressions, macros or scripts. It also includes

informtion

information about how to escape special characters.

Using Text Expressions

In PhixFlow, a text expression is made up from a string of characters inside double quotes.  Text expressions can also include variable elements so that data from

streams

tables or other PhixFlow items can be inserted into the string. The expression must evaluate to a fixed string.

PanelborderColor

#7da054titleColorwhitetitleBGColor#7da054borderStylesolidtitleSections on this page

Table of Contents
indent12px
stylenone

Required output
Example Text Expression
Completed"Completed"
abc"def

To embed a quote mark:

  • Either use  a combination of single and double quotes   'abc"def'
  • Or prefix the quote with a backslash  "abc\"def"


Note

This is different to regular expressions, in which a double-backslash is used to escape

special

characters.


The account number ACC46242 failed

Generate a message including the current account number being processed, which is provided by _out.accountNumber:

"The account number " + _out.accountNumber + " failed"

This message

is finished.

"This message\n" +

"is finished."

Escaping Special Characters

When writing expressions you may need to enter a character that has special meaning. For example, a string could include a double-quote, but in the expression PhixFlow will read this as the end of the string. To tell PhixFlow to ignore a special character, you can use the backslash character.  

You must use a

backslast

backslash to escape any of the special characters listed in the table below.

CharacterTypeEscape string

backspace

Represented As "\b"
Escaped "\\\\b"
form feedRepresented As "\f"
Escaped"\\\\f"
tabRepresented As"\t"
Escaped "\\\\t"
carraige returnRepresented As"\r"
Escaped "\\\\r"
newlineRepresented As"\n"
Escaped "\\\\n"
backslashRepresented As

"\\\\"

Escaped "\\\\\\\\"
double quoteRepresented As'"'
Escaped '\\\\"'

Examples

Handling JSON data in PhixFlow often requires adding escape characters or removing characters that PhixFlow cannot recognise.

Tip

Some databases do not recognise 4-bit characters, such as emojis; see Database for recommended database configurations. 

  • Oracle database with the recommended configuration can store the full range of Unicode characters including 4-bit characters.
  • MariaDB  databases cannot store 4-bit characters. You will need to remove any invalid characters before writing to the database

Escaping Invalid Characters

If you are outputting stream data into JSON format, the data can include special characters that JSON will not accept.

Example

The following macro escapes

these invalid

special characters. 


Code Block
titleMacro
do(
    $value = $args[1],
    $value = replaceAll( $value , "\b","\\\\b"),
    $value = replaceAll( $value , "\f","\\\\f"),
    $value = replaceAll( $value , "\t","\\\\t"),
    $value = replaceAll( $value , "\r","\\\\r"),
    $value = replaceAll( $value , "\n","\\\\n"),
    $value = replaceAll( $value , "\\\\","\\\\\\\\"),
    $value = replaceAll( $value , '"','\\\\"')
)

Validating Data Imported Into PhixFlow

JSON data, like any imported data format, can include characters that cannot be written to a database that is using the UTF-8 character set. For example, 4-bit Emojis are not supported by UTF-8.


The following regular expression lists the characters expected in a JSON file and removes invalid characters from it.

Code Block
replaceAll(JSON Code,"[^\\p{Space}0-9A-Za-z!:\\\"%&\\[*()\\],-/_\\\\{}\\.]","")

The backslash character escapes special characters such as [] , . and \ 

See Also

Expressions and Scripts