One of the great features of the Axys and APX is that it is easy to customize the system to your specific needs via custom labels. If you want show information or fields (for APX users) on a report, you simply assign a label, set the definition of the label and then you have multiple ways to work with the data key.
To most users, there are three types of labels: string, numeric and date. The type of label is identified by the beginning character. $ for string labels, # for numeric labels and % for date labels. The string label allows alpha and numerical characters, the numeric label allows only numbers and the date allows only date formatted information. A label can be as few as two characters (identifier and one character) or as long as eight characters (including the identifier). The eight character limit is general knowledge, but there are other custom label no-no’s of which most end users are not aware.
#1 – Global, Configuration and Portfolio Setting Labels - there are certain labels identified to fields that cannot be changed and that you cannot use elsewhere in the system.
Example - $name
The Name 1 field (Axys) or Report Heading 1 (APX) is linked to the $name. Most users are aware of this label and some of the other main ones related to address information, but there are several others.
Axys users can view a list of the associated labels by going into a Portfolio Settings and clicking print. I personally keep a print out of these labels for easy reference. The net and gross performance files also have their own set of labels. APX users can see the reporting labels associated to a field on the Fields page.
#2 – there are labels that are custom (not a part of #1), but are used by some of the standard and catalog reports.
The Portfolio Group/Sort (Axys) or Sort Portfolios within Group (APX) is a standard report that creates groups based on criteria entered. This report also uses the label $grp in the coding. If you use this as a custom label in your portfolios, you will have issues running the standard report. A colleague and I spent an hour the other day trying to figure out why the report was telling us it couldn’t find the portfolio abcdINDIA. We didn’t have a portfolio with that name. We didn’t have a group or composite with that name either. We finally figured out that the portfolio ‘abcd’ had $grp defined as INDIA and the report was erroring out because of it.
Another well-known label is the $bfund label – this label is used to identify portfolios together as a family for billing on some of the catalog reports. There are also several labels that are used for tolerance settings in the standard reconciliation reports (sipos30.rep and sipos31.rep). For a list of these labels, see KB Article A18060 on the Advent Community Board.
#3 – Do not use numbers immediately after the label identifier. Just don’t.
In the Replang coding language, a number following the identifier has different functions for printing. If it is a string label, it is telling the report how many characters of the definition to print before cutting it off. With the $4mylb example, if this was defined as “Super Duper Awesome”, when you try to use the label in reports, the only thing you are ever going to see is “Supe”. For Numeric labels, it tells the report how many decimals to print and for Date labels, the number tells the report how to format the date for display. Using numbers at the end of the label is not an issue (i.e. $mlb4)
#4 – Numeric and Date labels are interchangeable in coding
In reports when the coder is using and referring to a date label, majority of the time they are actually using a # label. In order for the coder to be able to do calculations based on time (i.e. number of days between two dates, determine the beginning or ending day of a period, etc.) they need to use numbers and the system bases the numbers on the Julian calendar. The only time that the % labels are used is either when asking for information and the coder wants to force the user to enter a date into the field, or when printing to indicate that a result displayed should be in a date format.
For the coder %begdate = 12/31/2016 is the same as #begdate = 43,523. If you define %begdate = 12/31/2016 and #begdate = 550, the reports are only going to be able to pick up one of the two values. When trying to use the # label, you could end up with 43,523 when you want 550. On the other side, when you try using the % label, you could end up with 12/31/2016 or you could end up with 2/24/1901.