
{ PROCEDURE (osm$submrj) submit_multi_record_job, submrj (
{   file, files, f: list of file = $required
{   job_destination, jd: any of
{       name
{       string 1..31
{     anyend = $required
{   job_destination_usage, jdu: any of
{       key
{         ntf, qtf
{         hidden_key
{           ve, ve_local, ve_qtf
{       keyend
{       name
{     anyend = qtf
{   output_disposition, odi: key
{       (discard_all_output, dao)
{       (discard_standard_output, dso)
{       (local, l)
{       (printer, p)
{       (wait_queue, wt, wq)
{     keyend = printer
{   remote_host_directive, rhd: string 0..256 = ''
{   user_job_name, ujn: name = $optional
{   system_job_name, sjn: (VAR) name = $optional
{   status)

?? PUSH (LISTEXT := ON) ??
?? FMT (FORMAT := OFF) ??

  VAR
    pdt: [STATIC, READ, cls$declaration_section] record
      header: clt$pdt_header,
      names: array [1 .. 16] of clt$pdt_parameter_name,
      parameters: array [1 .. 8] of clt$pdt_parameter,
      type1: record
        header: clt$type_specification_header,
        qualifier: clt$list_type_qualifier,
        element_type_spec: record
          header: clt$type_specification_header,
        recend,
      recend,
      type2: record
        header: clt$type_specification_header,
        qualifier: clt$union_type_qualifier,
        type_size_1: clt$type_specification_size,
        element_type_spec_1: record
          header: clt$type_specification_header,
          qualifier: clt$name_type_qualifier,
        recend,
        type_size_2: clt$type_specification_size,
        element_type_spec_2: record
          header: clt$type_specification_header,
          qualifier: clt$string_type_qualifier,
        recend,
      recend,
      type3: record
        header: clt$type_specification_header,
        qualifier: clt$union_type_qualifier,
        type_size_1: clt$type_specification_size,
        element_type_spec_1: record
          header: clt$type_specification_header,
          qualifier: clt$keyword_type_qualifier,
          keyword_specs: array [1 .. 5] of clt$keyword_specification,
        recend,
        type_size_2: clt$type_specification_size,
        element_type_spec_2: record
          header: clt$type_specification_header,
          qualifier: clt$name_type_qualifier,
        recend,
        default_value: string (3),
      recend,
      type4: record
        header: clt$type_specification_header,
        qualifier: clt$keyword_type_qualifier,
        keyword_specs: array [1 .. 11] of clt$keyword_specification,
        default_value: string (7),
      recend,
      type5: record
        header: clt$type_specification_header,
        qualifier: clt$string_type_qualifier,
        default_value: string (2),
      recend,
      type6: record
        header: clt$type_specification_header,
        qualifier: clt$name_type_qualifier,
      recend,
      type7: record
        header: clt$type_specification_header,
        qualifier: clt$name_type_qualifier,
      recend,
      type8: record
        header: clt$type_specification_header,
      recend,
    recend := [
    [1,
    [89, 1, 17, 14, 13, 51, 949],
    clc$command, 16, 8, 2, 0, 0, 1, 8, 'OSM$SUBMRJ'], [
    ['F                              ',clc$abbreviation_entry, 1],
    ['FILE                           ',clc$nominal_entry, 1],
    ['FILES                          ',clc$alias_entry, 1],
    ['JD                             ',clc$abbreviation_entry, 2],
    ['JDU                            ',clc$abbreviation_entry, 3],
    ['JOB_DESTINATION                ',clc$nominal_entry, 2],
    ['JOB_DESTINATION_USAGE          ',clc$nominal_entry, 3],
    ['ODI                            ',clc$abbreviation_entry, 4],
    ['OUTPUT_DISPOSITION             ',clc$nominal_entry, 4],
    ['REMOTE_HOST_DIRECTIVE          ',clc$nominal_entry, 5],
    ['RHD                            ',clc$abbreviation_entry, 5],
    ['SJN                            ',clc$abbreviation_entry, 7],
    ['STATUS                         ',clc$nominal_entry, 8],
    ['SYSTEM_JOB_NAME                ',clc$nominal_entry, 7],
    ['UJN                            ',clc$abbreviation_entry, 6],
    ['USER_JOB_NAME                  ',clc$nominal_entry, 6]],
    [
{ PARAMETER 1
    [2, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 19, clc$required_parameter, 0, 0],
{ PARAMETER 2
    [6, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 33, clc$required_parameter, 0, 0],
{ PARAMETER 3
    [7, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 217, clc$optional_default_parameter, 0, 3],
{ PARAMETER 4
    [9, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 414, clc$optional_default_parameter, 0, 7],
{ PARAMETER 5
    [10, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 8, clc$optional_default_parameter, 0, 2],
{ PARAMETER 6
    [16, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 5, clc$optional_parameter, 0, 0],
{ PARAMETER 7
    [14, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_reference, clc$immediate_evaluation,
  clc$standard_parameter_checking, 5, clc$optional_parameter, 0, 0],
{ PARAMETER 8
    [13, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name],
    clc$pass_by_reference, clc$immediate_evaluation,
  clc$standard_parameter_checking, 3, clc$optional_parameter, 0, 0]],
{ PARAMETER 1
    [[1, 0, clc$list_type], [3, 1, clc$max_list_size, FALSE],
      [[1, 0, clc$file_type]]
    ],
{ PARAMETER 2
    [[1, 0, clc$union_type], [[clc$name_type, clc$string_type],
    TRUE, 2],
    5, [[1, 0, clc$name_type], [1, osc$max_name_size]],
    8, [[1, 0, clc$string_type], [1, 31, FALSE]]
    ],
{ PARAMETER 3
    [[1, 0, clc$union_type], [[clc$keyword_type,
    clc$name_type],
    FALSE, 2],
    192, [[1, 0, clc$keyword_type], [5], [
      ['NTF                            ', clc$nominal_entry,
  clc$normal_usage_entry, 1],
      ['QTF                            ', clc$nominal_entry,
  clc$normal_usage_entry, 2],
      ['VE                             ', clc$nominal_entry, clc$hidden_entry,
  3],
      ['VE_LOCAL                       ', clc$nominal_entry, clc$hidden_entry,
  4],
      ['VE_QTF                         ', clc$nominal_entry, clc$hidden_entry,
  5]]
      ],
    5, [[1, 0, clc$name_type], [1, osc$max_name_size]]
    ,
    'qtf'],
{ PARAMETER 4
    [[1, 0, clc$keyword_type], [11], [
    ['DAO                            ', clc$abbreviation_entry,
  clc$normal_usage_entry, 1],
    ['DISCARD_ALL_OUTPUT             ', clc$nominal_entry,
  clc$normal_usage_entry, 1],
    ['DISCARD_STANDARD_OUTPUT        ', clc$nominal_entry,
  clc$normal_usage_entry, 2],
    ['DSO                            ', clc$abbreviation_entry,
  clc$normal_usage_entry, 2],
    ['L                              ', clc$abbreviation_entry,
  clc$normal_usage_entry, 3],
    ['LOCAL                          ', clc$nominal_entry,
  clc$normal_usage_entry, 3],
    ['P                              ', clc$abbreviation_entry,
  clc$normal_usage_entry, 4],
    ['PRINTER                        ', clc$nominal_entry,
  clc$normal_usage_entry, 4],
    ['WAIT_QUEUE                     ', clc$nominal_entry,
  clc$normal_usage_entry, 5],
    ['WQ                             ', clc$abbreviation_entry,
  clc$normal_usage_entry, 5],
    ['WT                             ', clc$alias_entry,
  clc$normal_usage_entry, 5]]
    ,
    'printer'],
{ PARAMETER 5
    [[1, 0, clc$string_type], [0, 256, FALSE],
    ''''''],
{ PARAMETER 6
    [[1, 0, clc$name_type], [1, osc$max_name_size]],
{ PARAMETER 7
    [[1, 0, clc$name_type], [1, osc$max_name_size]],
{ PARAMETER 8
    [[1, 0, clc$status_type]]];

?? FMT (FORMAT := ON) ??
?? POP ??

    CONST
      p$file = 1,
      p$job_destination = 2,
      p$job_destination_usage = 3,
      p$output_disposition = 4,
      p$remote_host_directive = 5,
      p$user_job_name = 6,
      p$system_job_name = 7,
      p$status = 8;

    VAR
      pvt: array [1 .. 8] of clt$parameter_value;
