Skip to end of metadata
Go to start of metadata

Managing Custom Field Mappings


SIL™ custom field mappings are used to translate the custom field value into a valid SIL™ value.
Most of them are already mapped to a certain mapping, but there are certain of them that are not, because we cannot guess in advance the types of custom fields you are using in your installation.

For those custom fields that are not mapped to a descriptor, the default mapping is used. This does not guarantee that the mapping is the proper one for the field, but it will attempt to determine the correct type by looking at the basic values it manipulates. Keep in mind that this may not be enough. For instance, a custom field may be represented internally by a number, but its real meaning is minutes. We cannot offer that interpretation, unless a descriptor is developed for that custom field (remember Shannon's Theory of Information? data != information).

Our team is available to add more mappings. If you believe a mapping is really needed, let us know.

To access the custom field mappings page go to cPrime Plugins Configuration -> Custom Field Mappings:


For known fields, descriptors are not configurable because we want to prevent accidental modification. However, for unknown custom fields, you may click the Edit button and set a real descriptor:


Factories (Custom Field Mappings) 

The following factories (custom fields mappings) are bundled in by default. They act like translators, hence the notation Jira native type -> SIL™ Type.

  1. Default
    This descriptor determines the SIL representation of the custom field based on the type of its value.
  2. Boolean -> boolean
    Translates a boolean to its SIL internal representation.
  3. Interval -> interval
    Translates an interval to its SIL internal representation. The custom field value can either be the user friendly string representation (1d 2h) or the number of seconds.
  4. User[] -> string []
    Translates a collection of Users to a string array. The collection can also be represented as a single string with values separated by a pipe (|). The values represent the usernames.
  5. Group -> string 
    Translates a group to a string value representing the group name.
  6. Number[]-> number [] 
    Translates a collection of numbers to a number array. The collection can also be represented as a single string with values separated by a pipe (|).
  7. Option-> string 
    Translates an option to a string value.
  8. Number -> number 
    Translates a number to its SIL internal representation.
  9. Boolean[]-> boolean[] 
    Translates to an array of boolean values. Custom field value can be a collection of boolean values or their string representation separated by a pipe (|).
  10. Date[] -> date [] 
    Translates a collection of dates to a date array. The collection can also be represented as a single string with values separated by a pipe (|).
  11. Date -> date 
    Translates a date value to its SIL internal representation.
  12. User -> string 
    Translates a user to a string value representing the username.
  13. Label[] -> string [] 
    Translates labels custom field to a string array containing the labels as strings.
  14. String -> String 
    Translates to a string value.
  15. Interval[] -> interval [] 
    Translates a collection of intervals to an interval array. The collection can also be represented as a single string with values separated by a pipe (|).
    The interval values can be represented either in a user-friendly string form (1d 2h) or in seconds.
  16. Group[] -> string [] 
    Translates a collection of Groups to a string array.
    The collection can also be represented as a single string with values separated by a pipe (|).The values represent the group names.
  17. Cascade -> string [] 
    Translates to an array of string values. First is key, second is value.
  18. Collection(String) -> string []
    Translates a collection of string values to a string array.
    The collection can also be represented as a single string with values separated by a pipe (|).


Each app may add its own factories. The system is pluggable, so anyone can write new custom field descriptors apps and add support to the SIL™ language for them. Don't be surprised if you see more descriptors.

See also



  • No labels