semi合集-English.pdf - 第2699页
SEMI E97-0200A © SEMI 2000 19 void resumeAllJobs () raises (Global::FrameworkErrorSignal); /* This command aborts all the Jobs u nder the control of the JobSupervis o r immediately, withou t regard to the impact of abrup…

SEMI E97-0200A © SEMI 2000 18
const string JobLifecycleSubject =
“/JobSupervision/JobSupervisor/JobLifecycle”;
/* The use of “name” here (and in all other events) indicates the string value for the name or identifier of the Job to
which the event refers. Since filtering does not support object reference comparisons, the filtering must be on the
“name” of the object. */
struct JobLifecycleFilters {
Global::Property name;
Global::Property lifecycle;
};
JobLifecycleFilters Properties:
Name Value Type Description
“Name” string The name of the Job.
“Lifecycle” Global::LifecycleState New lifecycle state.
struct JobLifecycleEvent {
string eventSubject;
Global::TimeStamp eventTimeStamp;
JobLifecycleFilters eventFilterData;
Global::Properties eventNews;
Job aJob; // on Delete, aJob is nil
};
Provided Services:
/* Request that work be done according to the referred specification. A Job which represents the work is returned for
future reference. The post-condition for this operation is the specified Job successfully created. */
Job requestJob (
in Global::Properties aJobSpecification,
in JobRequestor aJobRequestor)
raises (Global::FrameworkErrorSignal,
JobRejectedSignal);
/* Request that work be done according to the Job specification. This operation blocks until the Job completes.
Results generated by the Job are returned. The post-condition for this operation is a successful execution of the
specified Job. This interface offers a lightweight alternative to requestJob that does not require that requestors
support the JobRequestor interfaces (e.g., informJobStateChange operation). A Job may or may not be created by
runJob, but if created, the Job may be accessed with the Job query operations of JobSupervisor. */
Results runJob (
in Global::Properties aJobSpecification)
raises (Global::FrameworkErrorSignal,
JobRejectedSignal);
/* Ask whether the Job specified by the JobSpecification would be accepted for current or future (queued)
processing if a requestJob or runJob message were issued now. */
boolean canPerform (in Properties aJobSpecification)
raises (Global::FrameworkErrorSignal);
/* Command to begin the pausing of all Jobs of this JobSupervisor which can be paused (e.g. Jobs that have not
reached the Finished state). */
void pauseAllJobs ()
raises (Global::FrameworkErrorSignal);
/* Command to “resume” all Jobs of this JobSupervisor which are currently Paused. */

SEMI E97-0200A © SEMI 200019
void resumeAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This command aborts all the Jobs under the control of the JobSupervisor immediately, without regard to the
impact of abruptly halting the Job. This service should be used with great caution. It may result in irrevocable
change to factory or material state. */
void abortAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This command stops all Jobs under control of the JobSupervisor, as quickly as possible. Stopping Jobs should not
result in damage to the factory or material being processed. */
void stopAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This service removes a Job which is in the terminated state. If required, persistent information about the Job may
be captured in a history entry. Jobs may also be removed based on other archiving rules. */
void removeFinishedJob (in Job aJob)
raises (Global::FrameworkErrorSignal);
/* Find a Job by name. A Job is a NamedEntity */
Job findJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a queued Job by name. */
Job findQueuedJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find an active Job by name. */
Job findActiveJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a canceled Job by name. */
Job findCanceledJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a finished Job by name. */
Job findFinishedJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Return all the specified Jobs. The JobSequence may be empty. */
JobSequence allJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allQueuedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allCanceledJobs ()
raises (Global::FrameworkErrorSignal);

SEMI E97-0200A © SEMI 2000 20
JobSequence allActiveJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allExecutingJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allPausingJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allPausedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allStoppingJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allAbortingJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allFinishedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allStoppedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allAbortedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allCompletedJobs ()
raises (Global::FrameworkErrorSignal);
}; // JobSupervisor
Contracted Services: None.
Dynamic Model: Inherited.
6.6.3 Job Interface
Module: AbstractIF
Interface: Job
Inherited Interface: OwnedEntity
Description: The Job interface represents a unit of work requested of an associated JobSupervisor and
performed (or facilitated) by a factory entity. A Job generally results in some change of
the overall factory state. How the entities that supply the Job and JobSupervisor
interfaces actually perform the work (or delegation of work) is an implementation
decision. A Job is expected (but not required) to take a non-zero time to perform and
have a non-zero chance of refusal or failure. A Job may encapsulate a decomposition into
a sequence of jobs/tasks/activities which are delegated to lower level job supervisors. The
Job exists during the execution timeframe. The more persistent record of the Job should
be maintained in a history entry.
interface Job : OwnedEntity {
Exceptions:
Published Events:
/* Any time the Job’s state changes. */