Inherited description: XMLIGNORENULL allows the programmer to override the default XML handling
of empty strings for properties of type %String. By default (XMLIGNORENULL = 0),
empty strings in the XML input are stored as $c(0) and $c(0) is written to XML
as an empty tag. A missing tag in the XML input is always stored as "" and
"" is always output to XML as no tag.
If XMLIGNORENULL is set = 1, then both missing tags in the XML and empty
strings are input as "", and both "" and $c(0) are output as empty tags
If XMLIGNORENULL is set = "inputonly", then both missing tags in the XML and empty
strings are input as "". Output of "" and $c(0) are for XMLIGNORENULL = 0:
$c(0) is output as an empty tag (i.e. <tag></tag>) and "" is output as no tag.
If XMLIGNORENULL = "runtime" (runtime is not case sensitive), then the behavior
of XMLIGNORENULL is determined by the format parameter of XMLExport, XMLImport
and %XML.Reader.OpenFile. The default behavior for XMLIGNORENULL="runtime is
the same as XMLIGNORENULL=0. Adding "ignorenull" to the format argument changes
the behavior to that of XMLIGNORENULL=1. "ignorenull" shoud be separated by a comma
from literal/encoded part of the format. Example values for format are "", ",ignorenull",
"literal,ignorenull" and "encoded,ignorenull".
Note that "inputonly" is equivalent to using ,ignorenull for XMLExport and not for %XML.Reader.
parameter XMLNAME = Production;
Inherited description: This parameter provides the default XMLNAME for the class. If it is
empty then the class name will be used to construct a default XML name.
The default XMLNAME is used as the top level tag
when exporting objects and the export context
did not provide an XML container name.
property ModifiedSettings as list of Ens.Config.Setting (XMLPROJECTION = "NONE") [ Transient ];
Same format as Settings, You must call PopulateModifiedSettings() to populate this collection
The collection contains the list of settings that are either defined in the production, or have default setting overrides.
property VirtualSettings as list of %String (XMLPROJECTION = "NONE") [ Transient ];
Contains the list of settings, value, value_type, default, default_type and other meta information
Must call PopulateVirtualSettings() to populate this collection
The format of value of each element is the following
Inherited description: This callback method is invoked by the %New() method to
provide notification that a new instance of an object is being created.
If this method returns an error then the object will not be created.
It is passed the arguments provided in the %New call.
When customizing this method, override the arguments with whatever variables and types you expect to receive from %New().
For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:
Method %OnNew(dob as %Date = "", name as %Name = "") as %Status
If instead of returning a %Status code this returns an oref and this oref is a subclass of the current
class then this oref will be the one returned to the caller of %New method.
Create a HTML document containing the production configuration details.
The HTML document appears in InterSystems online documentation style and provide links into
the online documentation set in DOCBOOK.
How to use: Invoke this method passing the production name ProductionClass and
a flag IncludeIntro to include a terminology introduction chapter (default is true).
The method returns a status code.
It also returns as output parameters the URL to display the documentation in a browser
and the LogFileName to be checked in case an error occurs (if an error status code is returned).
Set status = ##class(Ens.Config.Production).CreateDocumentHTML("Demo.Loan.FindRateProduction",1,.URL,.ErrLog)
Once the documentation is created, it will be available to be viewed from the Productions page
of the Ensemble Management Portal, or by pointing a browser to the returned URL.
The document is built by applying a XSL transformation to create a document expressed as DocBook XML,
then using the InterSystems' DocBook utilities to load the book.
The documentation may be removed by invoking RemoveDocumentHTML().
Create a PDF file containing the production configuration details.
The generated PDF file allows customization of the cover page (logo image, company name and address)
and of the colors used for the titles and links.
How to use: Invoke this method passing the production name ProductionClass,
a flag IncludeIntro to include a terminology introduction chapter (default is true),
the file name PDFFileName on the Ensemble server where the PDF output should be written to,
and an optional array Params of customization parameters in case you wish to override the defaults.
You may also pass a PDFRenderer as an optional string containing the full pathname of the script that
runs the FOP or RenderX (XEP) rendering engine.
If a PDF renderer is already configured for Zen, it will be used by default,
so if you wish to use it there's no need to provide it as a parameter.
If no PDF renderer is configured for Zen, the built-in FOP renderer will be used.
Set status = ##class(Ens.Config.Production).CreateDocumentPDF("Demo.Loan.FindRateProduction",1,"C:\Temp\DemoFindRate.pdf",.ErrLog)
The example below shows how to provide a PDF renderer and custom parameters:
Set Config("title-color") = "green"
Set Config("href-color") = "red"
Set Config("logo-image") = "C:\MyLogo.jpg"
Set Config("logo-name") = "ACME Inc."
Set Config("logo-address1") = "1 Main St"
Set Config("logo-address2") = "1st floor"
Set Config("logo-citystatezip") = "Anytown, USA"
Set Config("logo-website") = "www.mywebsite.com"
Set Production = "ACME.Test.Production"
Set status = ##class(Ens.Config.Production).CreateDocumentPDF(Production,0,"C:\Temp\ACME.pdf",.ErrLog,"C:\fop\fop-0.95\fop.bat",.Config)
For given business class, return an array of business classes it talks to (left to right)
classmethod GetRuntimePortsArray(ByRef pArray) as %Status
Get an array of all ports in use by the running Production.
Value = config id|code|agentInterface
Code "o" = TCP Outbound (in listen mode), "i" = TCP Inbound, "L" = Agent Listener Relay port, "C" = Agent Connect Relay port
classmethod ProductionStateToText(pState As %Integer = $$$eProductionStateUnknown, pLocalize As %Boolean = 1) as %String
API to convert the numeric production status value in pState into the corresponding
text string. By default, the string is localized, but if pLocalize is passed in as 0,
the English string is returned irrespective of the user's current language settings.
classmethod ProductionStatusClose(ByRef qHandle As %Binary) as %Status
classmethod ProductionStatusExecute(ByRef qHandle As %Binary) as %Status
API to convert the text of a production status in pText into the corresponding
state value, which serves as a partial inverse to ProductionStateToText()().
It only serves as a partial inverse as the status text can depend on the language settings at the
time of the original conversion from a state integer to a status text. If the language is known,
it can be supplied in pLanguage, otherwise it will default to the current language for the process.
This method updates the Settings collection with the data from pArray
Settings collection is cleared first, then the entries in pArray is used to update it.
The format of pArray is of the following:
pArray = total number of entries
pArray(i) = $lb(Target, Name, Value)
classmethod addClass(class, pNewClasses, pExistingList) as %Status
Enumerate all configuration item names whose underlying class is a subclass of the class specified by ClassName,
for the given Production. This is used, for example, to list all business metrics within a given production, to
support the DeepSee widget finder. It is more lightweight and faster than EnumerateConfigItems, but returns less data.
If the Production string is an empty string ("") list all config item names of a particular class for all productions.
Enumerate all config items in the given Production.
Passing ItemType restricts the results to only items of the given type, for example $$$eHostTypeService.
Prefixing the type with a minus sign restricts the results to all except those of the given type, for example -$$$eHostTypeService.
Passing PrimaryOnly=0 will return multiple items with the same name if any exist. Otherwise only the primary (i.e. enabled) item will be returned.