Example: Handling Dynamic Prompting Failure
The following example demonstrates error handling when retrieving user prompts.
import PT_DIAGNOSTICS:*;
class TestFailedGetUserInputByKey extends PTDiagnostics
/* Constructor */
method TestFailedGetUserInputByKey();
/* Public Method */
method GetDiagnosticInfo();
method IsPlugIn();
private
end-class;
method TestFailedGetUserInputByKey;
Local boolean &status = False;
%Super = create PTDiagnostics();
&status = %Super.SetProperty(%This, "Purpose", "String",
"This is a diagnostic to test getting a 'False' from GetUserInputByKey.");
end-method;
method GetDiagnosticInfo
Local boolean &status = False;
Local string &sVal, &sError;
Local number &iCount = 0;
Local Record &REC;
Local SQL &SQL1;
&REC = CreateRecord(Record.PSRECDEFN);
&SQL1 = CreateSQL("%SelectAll(:1) where RECNAME LIKE :2");
/*
sKeyID "Recs" has already be defined elsewhere in the package
see if we can get RecJY. should get a False
*/
&status = %Super.GetUserInputByKey("RecsJY", &sVal);
If &status Then
&SQL1.Execute(&REC, Upper(&sVal | "%"));
While &SQL1.Fetch(&REC)
&iCount = &iCount + 1;
&status = %Super.InsertData("String", "Record #" | &iCount,
&REC.RECNAME.Value | " (" | &REC.RECDESCR.Value | ")");
End-While;
Else
&status = %Super.InsertData("String", "Status Failed!",
"Failed status encountered in retrieving RecsJY key.
This is expected behaviour.");
End-If
end-method;
method IsPlugIn
end-method;