PTDiagnostics Class Methods
This section discusses the diagnostic methods for the PTDiagnostics PeopleCode class. The methods are listed in alphabetical order.
Description
Use this required public method to define the code that retrieves diagnostic information and returns it to Diagnostics Framework for presentation to the user. This method is invoked by Diagnostics Framework to initiate information collection, then output the results.
The GetDiagnosticInfo method uses the base class InsertData method to pass the results of the diagnostic to Diagnostics Framework for presentation to the users, for example:
&status = %Super.InsertData("Number", "Number of Records: ", &rs1.RowCount);
InsertData can pass output data using the following data types:
String
Number
Date
Boolean
Rowset
Before you can pass rowset data as output, you must first use the base class SetProperty method to set the base class hasRowset property to True.
Considerations for GetDiagnosticInfo include:
You can pass only one data type in each diagnostic plug-in application class. To return multiple data types, define multiple application classes. Results that are passed to the framework are retained in memory.
If you're also defining the GetDynamicPrompt method to prompt users for additional information, use the base class GetUserInputByKey method to retrieve the user responses, for example:
&status = %Super.GetUserInputByKey("Recs", &sVal);
For more readable output, use the base class SetProperty method to insert a description into the base class Purpose property, for example:
&status = %Super.SetProperty(%This, "Purpose", "String", "This is a diagnostic to determine your license code.");
Note: You can also set the Purpose property in the constructor or in the GetDynamicPrompt method.
Example
Following is an example of GetDiagnosticInfo that passes rowset data as output:
method GetDiagnosticInfo
Local boolean &status;
Local number &rc1;
Local Rowset &rs1;
Local string &sError;
&rs1 = CreateRowset(Record.PSLANGUAGES);
&rc1 = &rs1.Fill();
&status = %Super.SetProperty(%This, "hasRowset", "Boolean", True);
&status = %Super.InsertData("Rowset", "LANGUAGES description, not used in
output", &rs1);
end-method;
Description
If you want a diagnostic application class to prompt users for additional information that you can use as dynamic criteria for the diagnostic, you must define a public method called GetDynamicPrompt within the class.
Before you can use the GetDynamicPrompt method, you must first use the base class SetProperty method within the constructor to set the base class Where property to True , for example:
&status = %Super.SetProperty(%This, "Where", "Boolean", True);
Note: If the Where
property
is False, Diagnostics Framework ignores the GetDynamicPrompt method.
Within the GetDynamicPrompt method, use the base class InsertQuestion method to define the questions used to prompt the users.
Example
method GetDynamicPrompt
Local boolean &status;
&status = %Super.InsertQuestion("Recs", "Enter Records to search for, beginning
with: ", "String", True);
end-method;
Syntax
GetUserInputByKey(sKeyID, &data)
Description
The GetUserInputByKey method retrieves the user response to a question, which can then be used as an input parameter in the diagnostic. You invoke this method within the GetDiagnosticInfo method.
Parameters
Parameter |
Description |
---|---|
sKeyID |
Specify as a string the key that identifies the question for which you're retrieving the user response. |
&data |
Provide a variable to contain the retrieved user response. |
Returns
A Boolean value: True if the user response was retrieved successfully, False otherwise.
Syntax
InsertData(propFormat, propDescr, &data)
Description
The InsertData method passes data to Diagnostics Framework to be presented as the output of the diagnostic. This enables you to pass any information you want without having to hardcode base class methods in the plug-in. You invoke this method within the GetDiagnosticInfo method.
Parameters
Parameter |
Description |
---|---|
propFormat |
Specify as a string the data type of the data to be presented. Select from the following:
|
propDescr |
Specify a string of text to describe or introduce the output data. |
&data |
Provide the output data value, in a variable of the data type specified by the propFormat parameter. |
Returns
A Boolean value: True if the data has been inserted into Diagnostics Framework, False if the data can't be inserted into the framework, or if the data type specified by propFormat doesn't exist in the current framework.
Syntax
InsertQuestion(sKeyID, sQuestion, sType, GblBool)
Description
The InsertQuestion method passes a question to Diagnostics Framework, which then presents it to the user to obtain an input parameter. You invoke this method within the GetDynamicPrompt method.
Parameters
Parameter |
Description |
---|---|
sKeyID |
Specify as a string a key to identify the question. This value must be unique across all plug-ins that are made available to a user. |
sQuestion |
Specify as a string the question you want the user to answer. |
sType |
Specify as a string the data type of the response required from the user. Select from the following:
|
GblBool |
Specify a Boolean value indicating the scope of the question:
Global questions are asked once per plug-in on the Additional Information prompt page. For example, a plug-in could be defined to gather employee information. The plug-in might contain many application classes that gather specific information (for example, one application class for getting employee paycheck information, and one application class for getting employee addresses). Class level questions are asked only for the current application class. For example, for the paycheck information, you might want to prompt for specific pay periods and for the address information, you might want to prompt for an effective date. |
Returns
A Boolean value: True if the method is successful, False otherwise.
Description
This required public method is invoked by Diagnostics Framework when you register the plug-in. It verifies that the class is part of a diagnostic plug-in. If it is not present, the system will not register the plug-in.
IsPlugIn should be:
at the end of the Diagnostic Application Class.
an empty method.
Example
method IsPlugIn
end-method
Syntax
SetProperty(&obj, propName, propFormat, &propValue)
Description
The SetProperty method sets a property of an instantiated PTDiagnostics object to the value that you specify.
Parameters
Parameter |
Description |
---|---|
&obj |
Specify the PTDiagnostics object for which you want to set a property. Typically, you'll specify %This. |
propName |
Specify as a string the name of the property that you want to set. The values are:
|
propFormat |
Specify as a string the data type of the property that you want to set. For hasRowset and Where, specify Boolean. For Purpose, specify string. |
&propValue |
Provide the property value, in a variable that has the data type specified by the propFormat parameter. |
Returns
A Boolean value: True if the property specified by propName exists and can be set in the base class, False if the property can't be set (for example, if the current plug-in is used in a previous release of Diagnostics Framework where that property isn't defined).