Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

This is the documentation for ConfiForms Server/Data Center app

However, this might also work for ConfiForms cloud and in most cases it does. But please see this page to understand the differences between server and cloud versions of the ConfiForms app.


In order to make it easier to integrate with other external systems, such as JIRA, for example, we have implemented so called "virtual" functions, what you can call on field values.

 

Usage:

  • When using in IFTTT macro body or in ListView/PlainView/CalendarView - the notation would be: [entry.fieldname.virtual_function] 

 

  • When using in ConfiForms Field macro then reference it by fieldname, adding the virtual function name: fieldname.virtual_function

 

Useful, when you try to prepare a JSON or some other format when used together with IFTTT macro to enable integrations with other systems

 

See also Accessing field values and properties. You can use complex properties in your filters. For example filtering dropdown fields by values and by labels, filtering page type fields by page metadata fields, filtering user fields by, for example - email property


As of now, the following functions are supported:

FunctionDescriptionUsing in ConfiForms Field macroUsing in ListVIew/PlanView/CalendarView or in IFTTT macro body
urlencode

Does URL encode on given value, see "urlEncode" method in

https://developer.atlassian.com/static/javadoc/confluence/4.0/reference/com/atlassian/confluence/util/GeneralUtil.html

myfield.urlencode[entry.myfield.urlencode]
escapeXML

Escapes XML on given value, see "escapeXml" method in

https://developer.atlassian.com/static/javadoc/confluence/4.0/reference/com/atlassian/confluence/util/GeneralUtil.html

myfield.escapeXml[entry.myfield.escapeXml]
escape

Escapes string as in "escapeForHtmlAttribute" method in

https://developer.atlassian.com/static/javadoc/confluence/4.0/reference/com/atlassian/confluence/util/GeneralUtil.html

myfield.escapeForHtmlAttribute[entry.myfield.escapeForHtmlAttribute]
formatDate
Tries to format date fields in the specified format, expects date format as in http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.htmlmyfield.formatDate(JAVA_FORMAT)

[entry.myfield.formatDate(JAVA_FORMAT)]

(no quotes)

jiraDate
Same as "formatDate" method above, but specifies constant dateformat pattern (yyyy-MM-dd), suitable for JIRA REST APImyfield.jiraDate[entry.myfield.jiraDate]
jiraDateTime
Same as "formatDate" method above, but specifies constant dateformat pattern ("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), should be compatible with ISO 8601 standard as JIRA requires when setting timestamps to JIRA fieldsmyfield.jiraDateTime[entry.myfield.jiraDateTime]
escapeJSON
Escapes illegal characters in the field value to generate a valid JSON property. New lines, quotes, tabs and etc will be properly escapedmyfield.escapeJSON[entry.myfield.escapeJSON]
asArray
asArrayMultiSelect
asArrayMultiUserPicker

 

Tries to create an array from the value. Useful when you want to pass ConfiForms multi-select values to JIRA. Something like

"customfield_XXXX" : [[entry.myfield.asArray]]
 
this will generate
 
"customfield_XXXX" : ["val1","val2"]
 
assuming "myfield" field is a multi select and has 2 values: val1 and val2

 

There are variations to support other multi-select fields in JIRA

https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-create-issue#JIRARESTAPIExample-CreateIssue-MultiSelect

  • asArrayMultiSelect
  • asArrayMultiUserPicker (can be used to generate arrays for both: multi-user and multi-group field types)

 

myfield.asArray

myfield.asArrayMultiSelect

myfield.asArrayMultiUserPicker

[entry.myfield.asArray]

[entry.myfield.asArrayMultiSelect]

 [entry.myfield.asArrayMultiUserPicker]

replaceCRLFWithBR
Replaces CR/LF with <BR/> to show with line brakes in HTML (useful when you reference the textarea field using [entry.] notation)myfield.replaceCRLFWithBR[entry.myfield.replaceCRLFWithBR]
asUserFullNames
Works only with User multi-select fields and shows list of full names for selected usersmyfield.asUserFullNames[entry.myfield.asUserFullNames]
asUserEmails
Works only with User multi-select fields and shows list of emails for selected usersmyfield.asUserEmails[entry.myfield.asUserEmails]
asUserNames
Works only with User multi-select fields and shows list of usernames for selected usersmyfield.asUserNames[entry.myfield.asUserNames]
friendlyDate
Formatting date and date/time field types with https://docs.atlassian.com/confluence/latest/com/atlassian/confluence/core/datetime/FriendlyDateFormatter.htmlmyfield.friendlyDate[entry.myfield.friendlyDate]
asCount
Returns size of a collection for multi-value fields or number of chars for other typesmyfield.asCount[entry.myfield.asCount]
asSize
Returns size of a collection for multi-value fields or number of chars for other types (same as "count")myfield.asSize[entry.myfield.asSize]
asLength
Returns size of a collection for multi-value fields or number of chars for other typesmyfield.asLength[entry.myfield.asLength]
formatCurrency

 

Tries to format value as currency using either default or given format

https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

If value could not be formatted according to given format then value will be returned as is

myfield.formatCurrency(JAVA_FORMAT)

myfield.formatCurrency()

(default decimal format is used if empty)

[entry.myfield.formatCurrency(JAVA_FORMAT)]

(no quotes, JAVA_FORMAT could be empty, default will be used)

If entry value is null or could not be formatted according to rules then value is returned as-is 

See also Accessing field values and properties. You can use complex properties in your filters. For example filtering dropdown fields by values and by labels, filtering page type fields by page metadata fields, filtering user fields by, for example - email property

 

It is important to understand that it is absolutely possible to combine virtual functions WITH field properties

 

(JAVA_FORMAT)

  • No labels