Model Templates : Activity Interface Report : act_interface Template

act_interface Template

TEMPLATE act_interface;

PARAMETER
STRING activity_name; -- the activity for which
-- the report is generated.

VARIABLE
INTEGER st; -- return status code
ACTIVITY act; -- the id of subject activity

BEGIN
act := stm_r_ac (activity_name, st);
END;

PROCEDURE write_elements;

PARAMETER

LIST OF ELEMENT element_list;

VARIABLE

ELEMENT elm;

INTEGER element_type, status;

BEGIN

-- write elements
FOR elm IN element_list LOOP
element_type := stm_r_element_type (elm, status);
SELECT
WHEN element_type = stm_event =>
WRITE(’\n EVENT ’,stm_r_ev_name(elm, status));
WHEN element_type = stm_condition =>
WRITE(’\n CONDITION ’,stm_r_co_name(elm, status));
WHEN element_type = stm_data_item =>
WRITE(’\n DATA_ITEM ’,stm_r_di_name(elm, status));
END SELECT;
END LOOP;

END;

 

SEGMENT report;

VARIABLE
LIST OF A_FLOW_LINE af_list;
LIST OF EVENT ev_list;
LIST OF CONDITION co_list;
LIST OF DATA_ITEM di_list;
LIST OF ELEMENT in_list, out_list;
ELEMENT elm;
INTEGER elm_type;

BEGIN
-- write title
WRITE (’\n\n’, ’ ’:20,’INTERFACE REPORT for ’, activity_name);

-- activity’s inputs
-- input title
WRITE (’\n\n Input elements:’);
WRITE (’\n’);-- get inputs

-- get input flow-lines
af_list := stm_r_af_ext_to_target_ac({act},st);

-- get input conditions
co_list := stm_r_co_flowing_through_af(af_list,st);

-- get input events
ev_list := stm_r_ev_flowing_through_af(af_list,st);

-- get input data_items
di_list := stm_r_di_flowing_through_af(af_list,st);

in_list:=co_list + ev_list + di_list; -- all inputs

-- order alphabetically
in_list := stm_list_sort_by_name(in_list, st);

-- write elements
write_elements(in_list);

-- activity’s outputs
-- output title
WRITE (’\n\n Output elements:’);
WRITE (’\n’);-- get outputs

-- get output flow-lines
af_list := stm_r_af_ext_from_source_ac ({act}, st);

-- get output conditions
co_list := stm_r_co_flowing_through_af (af_list, st);

-- get output events
ev_list := stm_r_ev_flowing_through_af (af_list, st);

-- get output data_items
di_list := stm_r_di_flowing_through_af (af_list, st);

-- all outputs
out_list := co_list + ev_list + di_list ;

-- order alphabetically
out_list := stm_list_sort_by_name (out_list, st);

-- write elements
write_elements (out_list);

END;