{
{   The purpose of this request is to install a scheduling profile in the
{ scheduler tables.  The tables are completely replaced with the given
{ definitions for job classes, service classes, applications, job scheduler
{ controls, and job categories.  The caller must have scheduling administration
{ privilege and must have set the utility active condition prior to this call.
{
{       JMP$INSTALL_PROFILE (ACCESS_ID, JOB_CLASS_ENTRIES_P,
{         SERVICE_CLASS_ENTRIES_P, APPLICATION_ENTRIES_P, CONTROLS_ENTRY,
{         CATEGORY_DATA, MOVE_JOB_CLASSES, DELETED_JOB_CLASSES,
{         DELETED_SERVICE_CLASSES, DELETED_APPLICATIONS, DELETE_PROFILE_CYCLE2,
{         STATUS)
{
{ ACCESS_ID: (input)  This parameter specifies the access id assigned to the
{       caller when the utility active condition was set.
{
{ JOB_CLASS_ENTRIES_P: (input)  This parameter specifies a pointer to an array
{       of job class entries which are to be installed in the job class table.
{       The order in which the job classes are given defines the rank, highest
{       to lowest, of the classes for automatic class selection.  The job class
{       indices cannot exceed the maximum value for which space was reserved
{       during deadstart.  The job classes must have a unique name,
{       abbreviation, and index.  Job classes currently defined in the job
{       class table must retain the same job class index.
{
{ SERVICE_CLASS_ENTRIES_P: (input)  This parameter specifies a pointer to an
{       array of service class entries which are to be installed in the service
{       class table.  The service class indices cannot exceed the maximum value
{       for which space was reserved during deadstart.  The service classes
{       must have a unique name, abbreviation, and index.  Service classes
{       currently defined in the service class table must retain the same
{       service class index.
{
{ APPLICATION_ENTRIES_P: (input)  This parameter specifies a pointer to an
{       array of application entries which are to be installed in the
{       application table.  If this pointer is NIL, there are no applications
{       to be installed.  The number of applications which can be installed is
{       limited by a system constant.  The applications are given in ascending
{       order by application name.  All applications must have a unique name.
{
{ CONTROLS_ENTRY: (input)  This parameter specifies a record which is to be
{       installed in the job scheduler table.
{
{ CATEGORY_DATA: (input)  This parameter specifies a record which is to be
{       installed in the job category data.
{
{ MOVE_JOB_CLASSES: (input)  This parameter specifies a set of job classes
{       whose queued input jobs are to be moved to the UNASSIGNED job class.  A
{       given job class must be defined in the job class table.  Job classes
{       which are to be deleted must be included in this set.
{
{ DELETED_JOB_CLASSES: (input)  This parameter specifies a set of job classes
{       that are to be deleted from the job class table.  A job class to be
{       deleted must be defined in the job class table and cannot have any
{       queued or executing jobs.  The predefined job classes, SYSTEM,
{       MAINTENANCE, and UNASSIGNED cannot be deleted.
{
{ DELETED_SERVICE_CLASSES: (input)  This parameter specifies a set of service
{       classes that are to be deleted from the service class table.  A service
{       class to be deleted must be defined in the service class table and
{       cannot have any executing jobs.  The predefined service classes,
{       SYSTEM, MAINTENANCE, and UNASSIGNED cannot be deleted.
{
{ DELETED_APPLICATIONS: (input)  This parameter specifies a set of applications
{       that are to be deleted from the application table.  An application to
{       be deleted must be defined in the application table.
{
{ DELETE_PROFILE_CYCLE2: (input)  This parameter specifies a TRUE value if
{       cycle 2 of the system scheduling profile permanent file is to be
{       deleted.  No status condition is returned if cycle 2 of this file does
{       not exist.
{
{ STATUS: (output)  This parameter specifies the request status.
{       All of the conditions listed are detected before the scheduler tables
{       are changed.
{       CONDITIONS:
{             jme$access_id_mismatch
{             jme$applications_not_sorted
{             jme$class_abbrev_not_unique
{             jme$class_index_already_in_use
{             jme$class_or_appl_not_defined
{             jme$class_or_appl_not_unique
{             jme$delete_class_still_active
{             jme$excess_class_in_sched_table
{             jme$must_be_scheduling_admin
{             jme$not_all_jobs_were_moved
{             jme$no_delete_of_default_class
{             jme$no_ranking_of_default_class
{             jme$no_utility_is_active
{             jme$profile_cycle2_lost
{             jme$profile_not_installed
{             jme$profile_too_large
{             pfe$bad_cycle_number
{             pfe$bad_cycle_option
{             pfe$bad_family_name
{             pfe$bad_master_catalog_name
{             pfe$bad_nth_subcatalog_name
{             pfe$bad_password
{             pfe$bad_permanent_file_name
{             pfe$incorrect_password
{             pfe$invalid_ring_access
{             pfe$name_not_permanent_file
{             pfe$nth_name_not_subcatalog
{             pfe$path_too_short
{             pfe$pf_system_error
{             pfe$unknown_family
{             pfe$unknown_master_catalog
{             pfe$unknown_nth_subcatalog
{             pfe$unknown_permanent_file
{             pfe$usage_not_permitted
{       IDENTIFIER: 'JM', 'PF'
{
