FUNCTION get_document_definition 
          (input : documented_element_select, role : STRING, type_name : STRING) : SET [0:?] OF document_definition;
 LOCAL           dd : SET[0:?] OF  Document_definition := [];  --this gives us access TO  the information base           da : SET[0:?] OF Document_assignment :=[]; END_LOCAL;           da := (QUERY(dr <* USEDIN (input, 'DOCUMENT_ASSIGNMENT_ARM.'+           'DOCUMENT_ASSIGNMENT.IS_ASSIGNED_TO') | (dr.role = role)));
            -- iterate over da           REPEAT i := 1 TO SIZEOF(da) BY 1;                     IF(type_name IN TYPEOF (da[i].assigned_document))THEN                               dd := dd + da[i].assigned_document;                     END_IF;           END_REPEAT;
            RETURN(dd); END_FUNCTION; -- get_document_definition 
 |