-- added select define_function_args('apm__register_parameter','parameter_id;null,package_key,parameter_name,description;null,scope,datatype;string,default_value;null,section_name;null,min_n_values;1,max_n_values;1'); -- -- procedure apm__register_parameter/10 -- CREATE OR REPLACE FUNCTION apm__register_parameter( register_parameter__parameter_id integer, -- default null register_parameter__package_key varchar, register_parameter__parameter_name varchar, register_parameter__description varchar, -- default null register_parameter__scope varchar, register_parameter__datatype varchar, -- default 'string' register_parameter__default_value varchar, -- default null register_parameter__section_name varchar, -- default null register_parameter__min_n_values integer, -- default 1 register_parameter__max_n_values integer -- default 1 ) RETURNS integer AS $$ DECLARE 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, 't', register_parameter__package_key || ' - ' || register_parameter__parameter_name, null ); insert into apm_parameters (parameter_id, parameter_name, scope, description, package_key, datatype, default_value, section_name, min_n_values, max_n_values) values (v_parameter_id, register_parameter__parameter_name, register_parameter__scope, 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. if register_parameter__scope = 'instance' then 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; else v_value_id := apm_parameter_value__new( null, null, v_parameter_id, register_parameter__default_value); end if; return v_parameter_id; END; $$ LANGUAGE plpgsql;