create or replace function apm__register_parameter (integer,varchar,varchar,varchar,varchar,varchar,varchar,integer,integer)
returns integer as '
declare
register_parameter__parameter_id alias for $1; -- default null
register_parameter__package_key alias for $2;
register_parameter__parameter_name alias for $3;
register_parameter__description alias for $4; -- default null
register_parameter__datatype alias for $5; -- default ''string''
register_parameter__default_value alias for $6; -- default null
register_parameter__section_name alias for $7; -- default null
register_parameter__min_n_values alias for $8; -- default 1
register_parameter__max_n_values alias for $9; -- default 1
v_parameter_id apm_parameters.parameter_id%TYPE;
v_value_id apm_parameter_values.value_id%TYPE;
v_pkg record;
begin
-- Create the new parameter.
v_parameter_id := acs_object__new(
register_parameter__parameter_id,
''apm_parameter'',
now(),
null,
null,
null
);
insert into apm_parameters
(parameter_id, parameter_name, description, package_key, datatype,
default_value, section_name, min_n_values, max_n_values)
values
(v_parameter_id, register_parameter__parameter_name,
register_parameter__description, register_parameter__package_key,
register_parameter__datatype, register_parameter__default_value,
register_parameter__section_name, register_parameter__min_n_values,
register_parameter__max_n_values);
-- Propagate parameter to new instances.
for v_pkg in
select package_id
from apm_packages
where package_key = register_parameter__package_key
loop
v_value_id := apm_parameter_value__new(
null,
v_pkg.package_id,
v_parameter_id,
register_parameter__default_value
);
end loop;
return v_parameter_id;
end;' language 'plpgsql';