Prev | Next |
Exclude Package Query and Script
On the 'Document Options' dialog (Template Editor) or 'Options' tab (Document Generator) you can enter a custom SQL Query or select a custom Script to tailor the report in a specific way. One possibility is to exclude the selected Package or a child Package from the report. You can base your Query or script on the examples provided here.
The two parameters you use in excluding a Package are:
- #PACKAGEID# - the Package_ID of the current record in t_package being processed on the exclusion condition
- #OBJECTID# - the Object_ID of the current Package element record in t_object being processed on the exclusion condition
Custom SQL Query
To exclude the Package from the report using a Custom SQL Query, you can create the Query based on the t_package columns. For example:
SELECT Package_ID AS ExcludePackage
FROM t_package
WHERE Package_ID = #PACKAGEID#
AND Name = 'Test'
Alternatively, you can create the Query based on the Package object columns in the t_object table:
SELECT t_package.Package_ID AS ExcludePackage
FROM t_package,t_object
WHERE t_package.Package_ID = #PACKAGEID#
AND t_object.Object_ID =#OBJECTID#
AND t_object.Stereotype = 'NoDoc'
Custom Script
If you have selected the 'Custom Script' option and want to exclude the Package from the report, you can create a script and enter a call to it, such as:
ExcludePackage(#PACKAGEID#)
This is a sample of the XML returned by the script:
<?xml version="1.0"?>
<EADATA version="1.0" exporter="Enterprise Architect">
<Dataset_0>
<Data>
<Row>
<ExcludePackage>
89
</ExcludePackage>
</Row>
</Data>
</Dataset_0>
</EADATA>
This is an example of JScript for excluding the Package:
!INC Local Scripts.EAConstants-JScript
/*
* Script Name: RTF Exclude Packages Script Sample
*/
function ExcludePackage(packageID)
{
var xmlDOM = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlDOM.validateOnParse = false;
xmlDOM.async = false;
var node = xmlDOM.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'");
xmlDOM.appendChild(node);
var xmlRoot = xmlDOM.createElement("EADATA");
xmlDOM.appendChild(xmlRoot);
var xmlDataSet = xmlDOM.createElement("Dataset_0");
xmlRoot.appendChild(xmlDataSet);
var xmlData = xmlDOM.createElement("Data");
xmlDataSet.appendChild(xmlData);
var xmlRow = xmlDOM.createElement("Row");
xmlData.appendChild(xmlRow);
var package as EA.Package;
package = Repository.GetPackageByID(packageID)
if(package.StereotypeEx == "NoDoc")
{
var xmlName = xmlDOM.createElement("ExcludePackage");
xmlName.text = "" + package.PackageID;
xmlRow.appendChild(xmlName);
}
return xmlDOM.xml;
};