PROCEDURE activate_btfs (
  load_map, lm: file = $null
  convert_netdata, cn: boolean = false
  file_notification, fn: boolean = false
  job_class, jc: name = system
  protocol_trace, pt: (BY_NAME, ADVANCED) boolean = false
  status)

*IF $variable(rav$proc_doc,declared)<>'UNKNOWN'

"    This request activates BTFS.
*IFEND

  VAR
    btf_library: file = $system.batch_device_support.osf$batch_device_support
    local_status: status
    options: name
  VAREND

  IF NOT $file(btf_library, permanent) THEN
    EXIT_PROC WITH $status(false 'AM' ame$file_not_known btf_library 'BTFS_ACTIVATION')
  IFEND

  MANAGE_JOBS
    select_job name=$name('btfs'//$mainframe(id)) job_state=(deferred, queued, initiated) ..
          user_information='Batch Transfer Facility Server (BTFS) for NOS/VE' status=local_status
    IF local_status.normal THEN
      IF $size(jmv$selected_jobs) > 0 THEN
        EXIT_PROC WITH $status(false 'RA' 0 'An identical BTFS job was found. BTFS will not be activated')
      IFEND
    ELSE
      EXIT_PROC WITH local_status
    IFEND
  QUIT

  IF $specified(load_map) THEN
    options = all
  ELSE
    options = none
  IFEND

  SYSTEM_OPERATOR_UTILITY c=(system_operation, system_administration)

    JOB ujn=$name('btfs'//$mainframe(id)) job_abort_disposition=terminate job_class=job_class ..
          job_destination_usage=ve_local job_execution_ring=6 job_recovery_disposition=terminate ..
          output_disposition=$fname('$system.batch_device_support.btfs_output_'//$mainframe(id)) ..
          substitution_mark='!' user_information='Batch Transfer Facility Server (BTFS) for NOS/VE' ..
          status=local_status

      SYSTEM_OPERATOR_UTILITY c=(system_operation, system_administration)
        VAR
          btfs_job_status: status
          ignore_status: status
          nfv$ntf_convert_netdata: boolean = !convert_netdata!
          nfv$ntf_file_notification: boolean = !file_notification!
          nfv$ntf_log_debug_messages: boolean = !protocol_trace!
        VAREND

        IF !protocol_trace! THEN
          VAR
            nfv$rhf_protocol_trace: (job) string = 'BTFS'
          VAREND
        IFEND

        change_message_level il=full status=ignore_status

        execute_task library=!btf_library! starting_procedure=nfp$btfs_boot load_map=!load_map! ..
              load_map_options=!options! termination_error_level=error status=btfs_job_status

        display_value btfs_job_status
      END_SYSTEM_OPERATOR_UTILITY
    JOBEND
    EXIT_PROC WITH local_status WHEN NOT local_status.normal
  END_SYSTEM_OPERATOR_UTILITY

PROCEND activate_btfs
