A project reference is a property that you can set for a project so that it can be referenced by another project. When one project references another, the files in the referenced project are available for reuse.
For example, you might want to create a library of reusable ESQL subroutines in a project. Or you might want to create a similar library of message flows to reuse in other message flows. By adding a project reference to the library project, its subroutines or subflows are available for you to use.
Another use of project references is to enable Content Assist in the ESQL or Mapping editor. ("Content Assist" is context-sensitive help that displays valid ways in which a code statement can be completed.) For example, if you set up a project reference from a project containing ESQL code to a project containing a message set, the ESQL editor is able to display a list of valid message references.
If you subsequently close or delete a referenced project, or delete an object within it, it is no longer available to the referencing project and an error is generated. You can correct the error by opening the closed project or adding the missing object, with the correct name, and saving.