ProjectWise Deliverables Management Portal Help

Using Variables in the Cover Letter Template

You can include the following types of variables in your transmittal cover letter template:

  • transmittal variables
  • document variables
  • document attribute variables
  • reference document variables
  • reference document attribute variables
  • transmittal recipient variables
  • folder variables
  • work area property variables
  • repeater variables

When the cover letter PDF is generated upon issuing the transmittal, the variables will be replaced with real values.

Transmittal variables

Variable Description
{$Project.Name$} The name of the ProjectWise project the transmittal is sent from
{$Transmittal.Code$} Transmittal package ID
{$Transmittal.Subject$} The subject of the transmittal
{$Transmittal.Comment$} Transmittal comments
{$Transmittal.Purpose$} The name of the purpose assigned to this transmittal
{$Transmittal.DistributionRule$} The name of the distribution rule assigned to this transmittal.

This variable is not included in the default cover letter template, you have to manually add it if you want to use it.

{$Transmittal.Classification$} The name of the classification assigned to this transmittal.

This variable is not included in the default cover letter template, you have to manually add it if you want to use it.

{$Transmittal.AcknowledgeDueDate$} The date that acknowledgement for this transmittal is due
{$Transmittal.ResponseDueDate$} The date that responses for this transmittal are due
{$Transmittal.CreatedDate$} The date the transmittal was created
{$Transmittal.CurrentDate$} The date the cover letter was generated (generally the transmittal issue date)
{$Transmittal.CurrentUserFullname$} The name of the user who issued the transmittal
{$Transmittal.CurrentUserOrganization$} The name of the company that the transmittal issuer belongs to
{$Transmittal.CurrentUserEmail$} The email address of the transmittal issuer
{$Transmittal.CurrentUserTitle$} The title of the transmittal issuer

Adding custom Date and Time format strings to date-based variables

When using a date-based variable, you can add custom format strings to the variable to customize how the date and time will appear in the cover letter. Here are some examples:

If you want the cover letter to include the date that responses for the transmittal are due, use this variable in your cover letter template:

{$Transmittal.ResponseDueDate$}

This and other date-based variables use the (yyyy MMMM dd h:mm tt) date and time format string by default, which automatically renders the date in this format: 2020 June 08 12:55 PM

If you want to customize the way the date and time appears for that variable, you would insert the date and time format string that matches your culture into the variable. For example, use this format if you want to display the date as month-day-year:

{$Transmittal.ResponseDueDate(MMMM dd yyyy h:mm tt)$}

Or, use this format if you want to display the date as day-month-year:

{$Transmittal.ResponseDueDate(dd MMMM yyyy h:mm tt)$}

If you want to add the time zone to the date variable, you need to add the "K" format specifier which generates the UTC (GMT) offset time:

{$Transmittal.ResponseDueDate(yyyy MMMM dd h:mm tt "(UTC"K")")$}

The UTC offset time is the number of hours ahead of or behind UTC/GMT. When configuring the format string you can type either UTC or GMT, whichever you prefer. If the response due date occurs in a time zone that is 5 hours behind UTC, the variable and format string above would render the date in this format: 2020 June 08 12:55 PM UTC-05:00

Adding a custom date and time format string to a date-based document attribute variable is slightly different:

{$DocumentAttribute.GetValue(attribute name, yyyy MMMM dd h:mm tt "(GMT"K")")$}

For details about using custom date and time format strings, see the following Microsoft article: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

Document variables

Variable Description
{$Document.FileName$} File name
{$Document.FileSize$} File size
{$Document.Name$} Document name
{$Document.Path$} Document path in the transmittal package
{$Document.ReferenceOf$} Name of document this document is a reference of

Document attribute variables

Depends on the attributes configured in the portal settings. Below are only examples.

Variable Description
{$DocumentAttribute.GetValue(Description)$} Document description
{$DocumentAttribute.GetValue(State)$} Document state
{$DocumentAttribute.GetValue(Version)$} Document version

Reference document variables

Variable Description
{$Reference.FileName$} Reference file name
{$Reference.FileSize$} Reference file size
{$Reference.Name$} Reference document name
{$Reference.Path$} Reference path in the package
{$Reference.ReferenceOf$} Name of document this reference is a reference of

Reference document attribute variables

Depends on the attributes configured in the portal settings. Below are only examples.

Variable Description
{$ReferenceAttribute.GetValue(State)$} Document state
{$ReferenceAttribute.GetValue(Version)$} Document version

Transmittal recipient variables

Variable Description
{$Recipient.Comments$} Comments entered about the recipient
{$Recipient.Company$} The name of the organization the recipient belongs to
{$Recipient.e-mail$} The recipient's email address
{$Recipient.Name$} The recipient's name
{$Recipient.ResponseRequired$} Indicates if the recipient is required to respond - Substituted with "Y" or "N"
{$Recipient.Title$} The recipient's title

Folder variables

Variable Description
{$Folder.Name$} Folder name in the transmittal package
{$Folder.Path$} Folder path in the transmittal package

Work area property variables

You can use custom work area properties in transmittal cover letters.

When inserting variables into the cover letter template, use this format:

{$ProjectAttribute.GetValue(customworkareapropertyname)$}

For example:

{$ProjectAttribute.GetValue(Project Name)$}

Note: In order to use custom work area properties in your cover letter, the work area (whose custom properties you want to use) must be associated to your ProjectWise project, and the ProjectWise Web portal of that ProjectWise project must also contain a connection back to that same work area. If you need help configuring this, see: Adding Work Area Connections to ProjectWise Web.

Repeater variables

Variable Description
{$DocumentRepeater.Line$} Indicates that this template line needs to be repeated for every document in the transmittal
{$FolderRepeater.Line$} Indicates that this template line needs to be repeated for every folder in the transmittal
{$RecipientRepeater.Line$} Indicates that this template line needs to be repeated for every recipient in the transmittal
{$ReferenceRepeater.Line$} Indicates that this template line needs to be repeated for every reference in the transmittal
{$Formula$}{$DocumentRepeater.Index$} + 1 Document line number
{$Formula$}{$FolderRepeater.Index$} + 1 Folder line number
{$Formula$}{$RecipientRepeater.Index$} + 1 Recipient line number
{$Formula$}{$ReferenceRepeater.Index$} + 1 Reference line number
{$DocumentRepeater.SortAscCaseIns(Document.FileName)$} Indicates that all transmittal documents will be sorted in ascending order by their file name
{$FolderRepeater.SortAscCaseIns(Folder.Name)$} Indicates that all transmittal folders will be sorted in ascending order by their name
{$RecipientRepeater.SortAscCaseIns(Recipient.Name)$} Indicates that all transmittal recipients will be sorted in ascending order by their name
{$ReferenceRepeater.SortAscCaseIns(Reference.FileName)$} Indicates that all transmittal references will be sorted in ascending order by their file name
{$DocumentRepeater.SortDescCaseIns(Document.FileName)$} Indicates that all transmittal documents will be sorted in descending order by their file name
{$FolderRepeater.SortDescCaseIns(Folder.Name)$} Indicates that all transmittal folders will be sorted in descending order by their name
{$RecipientRepeater.SortDescCaseIns(Recipient.Name)$} Indicates that all transmittal recipients will be sorted in descending order by their name
{$ReferenceRepeater.SortDescCaseIns(Reference.FileName)$} Indicates that all transmittal references will be sorted in descending order by their file name