PROCEDURE rap$nqs_define_validation_flds (
  family, f: name = $required
  default_unix_user_name, duun: (BY_NAME) key
      $translate, none
    keyend = none
  default_queue_name, dqn: (BY_NAME) string 0..128 = ''
  status)

  VAR
    ls: status
  VAREND

  ADMINISTER_VALIDATIONS status=ls

  use_validation_file: ..
    BLOCK
      use_validation_file $fname(':'//family//'.$system.$validations') status=ls
      WHILE NOT ls.normal DO
        IF ls.condition <> ave$must_specify_password THEN
          EXIT use_validation_file
        IFEND
        put_line ' A password is required to access the validation file.'
        ?use_validation_file $fname(':'//family//'.$system.$validations') status=ls
      WHILEND

      MANAGE_USER_FIELDS

        IF $validation_field(unix_user_name declared) = active THEN
          put_line ' The field UNIX_USER_NAME already exists.'
        ELSE
          user_name_default = ''
          IF default_unix_user_name = '$translate' THEN
            user_name_default = '$TRANSLATE'
          IFEND

          create_string_field field_name=unix_user_name default_value=user_name_default size=0..15 ..
                description='Users unix user name.' display_authority=user ..
                change_authority=user_administration manage_authority=system_administration
          put_line ' Created field UNIX_USER_NAME.'
        IFEND

        IF $validation_field(unix_uid declared) = active THEN
          put_line ' The field UNIX_UID already exists.'
        ELSE
          create_integer_field field_name=unix_uid default_value=0 value_range=0..65531 ..
                description='Users unix UID.' display_authority=user change_authority=user_administration ..
                manage_authority=system_administration
          put_line ' Created field UNIX_UID.'
        IFEND

        IF $validation_field(nqs_queue_name declared) = active THEN
          put_line ' The field NQS_QUEUE_NAME already exists.'
        ELSE
          create_string_field field_name=nqs_queue_name default_value=default_queue_name size=0..128 ..
                description='Users default queue name for NQS.' display_authority=user ..
                change_authority=user_administration manage_authority=system_administration
          put_line ' Created field NQS_QUEUE_NAME.'
        IFEND

      QUIT
    BLOCKEND use_validation_file
  QUIT

  EXIT procedure WITH ls

PROCEND rap$nqs_define_validation_flds
