
PROC dum$find_kjl_index_by_sjn, find_kjl_index_by_sjn (
  system_job_name, sjn: name 19 = $REQUIRED
  kjl_index : VAR OF INTEGER = $required
  status)

  create_variable name=sjn_offset k=integer
  kjl_address = $mem($sa(jmv$kjl_p) 6)
  kjl_size = $mem(($sa(jmv$kjl_p)+6) 4)
  kjl_entry_size = $mem(($sa(jmv$kjl_p)+14) 4)
  number_of_kjl_entries = kjl_size / kjl_entry_size
  target_system_job_name = $strrep($value(system_job_name))

  FOR search_index = 1 TO number_of_kjl_entries DO
    kjl_entry_address = kjl_address + (search_index-1)*kjl_entry_size
    IF $memory_string(kjl_entry_address,19) = target_system_job_name THEN
      $value(kjl_index) = search_index
      EXIT_PROC
    IFEND
  FOREND
  EXIT_PROC WITH $STATUS(FALSE, 'DU', 0, 'Entry not found.')

PROCEND dum$find_kjl_index_by_sjn

