Summary
This article discusses how to pass actual parameters to runProcedure in a Perl module.
Solution
This code executes a procedure that is contained in a Schedule. First it
retrieves the Parameters from the Schedule, adds them to a parameter list,
and then passes the list in the call to runProcedure.
#
# Execute a Procedure based on the Schedule to detect changes
#
# Params:
# projectName
# scheduleName
#
# Returns:
# The name of the procedure that it executed
#
sub ExecuteOneSchedule
{
my ($projectName, $scheduleName) =
@_
;
my
@parameterList
;
# Retrieve the Entire Schedule
my $xPath = InvokeCommander(
"SuppressLog"
,
"getSchedule"
,
$projectName, $scheduleName);
# Add each Actual Parameter to a list of hashes
my $nodeset = $xPath->find(
'//actualParameter'
);
foreach my $node ($nodeset->get_nodelist)
{
my $actualParameterName = $xPath->findvalue(
'actualParameterName'
, $node);
my $actualParameterValue = $xPath->findvalue(
'value'
, $node);
push (
@parameterList
, {
"actualParameterName"
=> $actualParameterName,
"value"
=> $actualParameterValue});
}
# Run the procedure
my $procedureName = $xPath->findvalue(
'//procedureName'
);
$xPath = InvokeCommander(
"SuppressLog"
,
"runProcedure"
,
$projectName, $procedureName,
{
"scheduleName"
=> $scheduleName,
"actualParameter"
=> \
@parameterList
});
return
$procedureName;
}
Applies to
- Product versions: All
- OS vesions: All
Comments