10.1.1 Overview of planning group functions and operations
This subsection provides an overview of planning group functions and operations.
- Organization of this subsection
(1) Functions of planning groups
By using a planning group, you can switch smoothly between different root jobnets during system operation, without having to use a different name for each root jobnet in the GUI or in a command.
First, you define the specific applications (processes) that you want to execute in each of the multiple root jobnets that you will be switching between. For example, you could define applications for calculating order data and creating order forms in one jobnet. In another jobnet, you could define applications for calculating order data, creating order forms, and conducting stocktaking.
You then register the root jobnets for execution, giving each one a specific execution period. For example, you could register the jobnets so that the first jobnet executes until the end of February, and the other jobnet executes from March onwards. With this configuration, the running jobnet changes with the turn of the month, and different applications are executed in February and March, even though they appear as the same jobnet.
The following figure illustrates the operation of a planning group.
|
The following figure shows an example of unit configuration using a planning group.
|
You can only create a planning group directly under a job group (including a scheduler service). You can create multiple planning groups under a job group. You cannot create another planning group under a planning group.
Directly under a planning group, you can create a jobnet or a remote jobnet. The definition content and definition method for a jobnet or remote jobnet defined below a planning group is the same as for a normal jobnet or remote jobnet.
When you register for execution a root jobnet or root remote jobnet that is defined directly under a planning group, the only option available is fixed execution with a specific period. You cannot register these jobnets for planned execution, or for fixed execution with a specific number of future generations.
You can also define calendar information for a planning group, or have the planning group inherit the calendar information from an upper-level job group. You can reference a planning group from a manager job group or a calendar definition.
(a) Unit definition information shared between root jobnets
When you register a root jobnet defined under a planning group for fixed execution, you can link the root jobnet with another root jobnet under the same planning group. When you link root jobnets, the following settings in the unit definition information are shared between the root jobnets in the planning group.
-
Concurrent execution setting and Schedule option
-
Whether to hold the root jobnet when the previous unit ends abnormally or ends with a warning
Below is a description of those settings in the definition information of a unit that is shared between root jobnets. The example uses a planning group that executes a different jobnet in August and September.
■ Concurrent execution and the Schedule option
You can define the concurrent execution setting and Schedule option (Schedule skip, Multi-schedule) for a root jobnet defined under a planning group. For details about concurrent execution and schedule options, see 3.3.3 Concurrent execution and schedule option.
-
Schedule skip
The following is an example of a schedule with the Schedule option set to Schedule skip, for a jobnet that is executed in September.
Figure 10‒3: Schedule option set to Schedule skip In this case, the generation scheduled for 8/31 has not ended by the start time of the next generation. Therefore, the generation scheduled for 9/1 is not executed, and enters the Skipped so not executed status.
-
Multi-schedule (Concurrent exec. disabled)
The following is an example of a schedule with the Schedule option set to Multi-schedule, and with Concurrent exec. set to Disable, for a jobnet that is executed in September.
Figure 10‒4: Schedule option set to Multi-schedule with concurrent execution disabled In this case, the generation scheduled for 8/31 has not ended by the start time of the next generation. Therefore, the generation scheduled for 9/1 is executed after the generation scheduled for 8/31 ends.
-
Multi-schedule (Concurrent exec. enabled)
The following is an example of a schedule with the Schedule option set to Multi-schedule, and with Concurrent exec. set to Enable, for a jobnet that is executed in September.
Figure 10‒5: Schedule option set to Multi-schedule with concurrent execution enabled In this case, the generation scheduled for 8/31 has not ended by the start time of the next generation. Therefore, the generation scheduled for 9/1 is executed before the generation executed on 8/31 ends.
In the following circumstances, the succeeding generation is not executed even when concurrent execution is enabled.
-
The generation to be executed is being held
-
There is no generation to be executed
- Previous generation is being held
-
In the following example, a generation is not executed despite concurrent execution being enabled, because the previous generation for execution is being held.
Figure 10‒6: Previous generation is being held In this case, the generation scheduled for 8/31 is still in Being held status when the start time of the generation scheduled for 9/1 arrives. Because the previous generation has not started, the generation scheduled for 9/1 is not executed.
- No previous generation for execution exists
-
The following schedule shows an example where a generation is not executed, despite concurrent execution being enabled, because no previous generation for execution exists.
Figure 10‒7: No previous generation for execution In this case, the generation scheduled for 8/30 has an unlimited timeout period and is still in Now running status when 9/1 arrives. The generation scheduled for 8/31 cannot run concurrently with the generation scheduled for 8/30, since concurrent execution is disabled for the latter. As a result, the generation scheduled for 9/1 is not executed, as no previous generation ever runs.
■ Hold (if previous 'warning' or 'abend')
With a root jobnet defined under a planning group, you can choose to hold execution of the next generation if the previous generation ends abnormally or with a warning.
The following is an example of the schedule when you set the Hold attribute of a jobnet that is scheduled to execute in September to Hold if prev. = 'abend' or Hold if prev. = 'warning' or 'abend'.
|
The generation scheduled for 8/31 ended abnormally before the scheduled start time of the generation scheduled for 9/1 was reached. The generation scheduled for 9/1 shifts to the Being held status.
(b) Exclusive schedules for planning groups
You can define a planning group in an exclusive schedule for a jobnet.
You can only use an exclusive schedule for a planning group in certain combinations. The following figure shows the exclusive schedules that are valid for a planning group.
|
Number in figure |
Valid? |
Type of jobnet for which the exclusive schedule is defined |
Unit specified in the exclusive schedule |
---|---|---|---|
(1) |
Y |
Jobnet |
Planning group on the same hierarchical level |
(2) |
Y |
Jobnet under a planning group |
Jobnet on the same hierarchical level as the planning group |
(3) |
Y |
Jobnet under a planning group |
Different planning group on the same hierarchical level as the planning group |
(4) |
N |
Jobnet under a planning group |
Jobnet under the same planning group |
(5) |
N |
Jobnet |
Planning group on a different hierarchical level |
- Legend:
-
Y: Can be specified
N: Cannot be specified
The following figure shows an example of an exclusive schedule including a planning group.
|
When you specify a planning group as an exclusive schedule, the exclusive schedule is applied to the execution schedules of jobnets under the planning group. In the above example, jobnet A specifies a planning group as an exclusive schedule. This means that the execution schedules of jobnet B and jobnet C, which are under the planning group, are scheduled exclusively. Also, jobnet D is specified as the exclusive schedule for jobnet B and jobnet C, and the execution schedule of jobnet A is therefore scheduled exclusively from the execution schedule of jobnet D.
In the following example, exclusive schedules are specified between planning groups.
|
Since planning group 2 is defined as the exclusive schedule for jobnets B and C, which are under planning group 1, the exclusive schedule also applies to jobnet D and jobnet E, since they are under planning group 2. The execution schedule for jobnet A, for which planning group 1 is the exclusive schedule, is therefore exclusive of jobnet D and jobnet E.
(2) Flow of planning group definition and execution
Use the following procedure to define and execute a root jobnet using a planning group.
-
Defining a root jobnet in a new planning group and executing the jobnet
To create and execute a new planning group and root jobnet:
-
Create a planning group.
-
Define a jobnet.
-
Register the jobnet for fixed execution with a specific period.
-
-
Changing a root jobnet that is registered for execution (in operation) to a planning group and executing the jobnet
To change a root jobnet that is registered for execution (in operation) to a planning group and then execute the jobnet:
-
Cancel registration of the root jobnet.
-
Change the name of the root jobnet to the name of the planning group.
-
Create a planning group directly under the job group.
Give the planning group the name that belonged to the root jobnet before you changed it in step 2.
-
Copy the root jobnet whose name you changed in step 2 and paste it into the planning group. Then delete the original root jobnet.
-
Register the root jobnet you copied for fixed execution.
-
-
Adding a new root jobnet definition to an existing planning group and executing the jobnet
To add a new root jobnet to an existing planning group and then execute the jobnet:
-
Define the new root jobnet to be added.
-
Register the jobnet for fixed execution with a specific period.
-
-
Canceling the execution schedule of a registered jobnet and adding the execution schedule of a new root jobnet
To cancel a certain period within an execution schedule that is registered for fixed execution in an existing planning group, and add an execution schedule for a new root jobnet in the released period:
-
Cancel registration of the root jobnet under the planning group by specifying the cancel period. Alternatively, prohibit execution of the root jobnet.
For details on canceling registration, see 4.5.1 Canceling registration of a jobnet. For details on prohibiting execution, see 4.5.5 Prohibiting execution of a job or jobnet.
-
Define a root jobnet that executes in the period where you canceled jobnet registration or prohibited jobnet execution.
-
Register the root jobnet you added in step 2 for fixed execution, specifying a period.
-
(3) Displaying a planning group in JP1/AJS3 - View
This subsection describes the operations for displaying schedule information, unit status (schedule) information, and results (execution results) in the JP1/AJS3 - View window. The display in JP1/AJS3 - View is described below, using a planning group with the following unit configuration as an example.
|
(a) Displaying schedule information in the Monthly Schedule window
When you display schedule information for a planning group in the Monthly Schedule window, the schedule area displays merged schedule information for all the units in the planning group.
The schedule information is merged and displayed when you first open the Monthly Schedule window, or when you refresh the window to reflect the latest information. The merged information that is displayed is for the schedule with the latest start time.
Table 10-2 shows the display in the schedule area when you select a planning group and display the Monthly Schedule window. The image is based on the unit configuration from Figure 10-12.
Unit |
4/26 |
4/27 |
4/28 |
4/29 |
4/30 |
5/1 |
5/2 |
5/3 |
5/4 |
---|---|---|---|---|---|---|---|---|---|
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
|
Order Processing# |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
Weekday |
-- |
-- |
EN |
-- |
SE |
SE |
SE |
-- |
-- |
Order calculation |
-- |
-- |
EN |
-- |
SE |
SE |
SE |
-- |
-- |
Order releases |
-- |
-- |
EN |
-- |
SE |
SE |
SE |
-- |
-- |
Daily report |
-- |
-- |
EN |
-- |
SE |
SE |
SE |
-- |
-- |
Holiday |
EN |
EN |
-- |
EN |
-- |
-- |
-- |
SE |
SE |
Order calculation |
EN |
EN |
-- |
EN |
-- |
-- |
-- |
SE |
SE |
Daily report |
EN |
EN |
-- |
EN |
-- |
-- |
-- |
SE |
SE |
Calculation processing |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
Daily closing |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
- Legend:
-
EN : Ended normally
SE : Scheduled for execution
-- : Not scheduled for execution
- #
-
Order processing is a planning group.
Unit |
4/26 |
4/27 |
4/28 |
4/29 |
4/30 |
5/1 |
5/2 |
5/3 |
5/4 |
---|---|---|---|---|---|---|---|---|---|
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
|
Order Processing# |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
Calculation processing |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
Daily closing |
EN |
EN |
EN |
EN |
SE |
SE |
SE |
SE |
SE |
- Legend:
-
EN : Ended normally
SE : Scheduled for execution
- #
-
Order processing is a planning group.
Note that there is an option in the Preferences dialog box under the Schedule tab that lets you choose whether to display planning groups in the Monthly Schedule window. For details about the Preferences dialog box, see 12.3.42 Preferences dialog box in the JP1/Automatic Job Management System 3 Operator's Guide.
(b) Displaying the status or results of a planning group in JP1/AJS3 - View
When you view the status (execution schedule) and results (execution results) of a planning group in the list area of the JP1/AJS3 - View window, the list area automatically displays the status and results of the units closest to the current day.
The following table shows an example of status and execution results for a planning group.
Unit |
4/30 |
5/1 |
5/2 |
5/3 |
5/4 |
5/5 |
5/6 |
5/7 |
---|---|---|---|---|---|---|---|---|
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
|
Order Processing # |
EN |
EN |
EN |
EN |
EN |
EW |
SE |
SE |
Weekday |
EN |
EN |
EN |
-- |
-- |
-- |
SE |
SE |
Order calculation |
EN |
EN |
EN |
-- |
-- |
-- |
SE |
SE |
Order releases |
EN |
EN |
EN |
-- |
-- |
-- |
SE |
SE |
Daily report |
EN |
EN |
EN |
-- |
-- |
-- |
SE |
SE |
Holiday |
-- |
-- |
-- |
EN |
EN |
EW |
-- |
-- |
Order calculation |
-- |
-- |
-- |
EN |
EN |
EW |
-- |
-- |
Daily report |
-- |
-- |
-- |
EN |
EN |
EW |
-- |
-- |
- Legend:
-
EN : Ended normally
EW : Ended with warning
SE: Scheduled for execution (waiting for start time)
-- : Not scheduled
- #
-
Order processing is a planning group.
If you compare the results of the jobnet Holiday and the jobnet Weekday, you can see that the results of the jobnet Holiday are closer to the current date and time. Imagine that you now select an upper-level unit to the planning group to display the results of the planning group at the end of execution on May 5 in the JP1/AJS3 - View window. The result of the jobnet Holiday is displayed in the Result column.
When JP1/AJS3 displays the status of the unit in the JP1/AJS3 - View window, the status of the jobnet Weekday is nearer the current time than the jobnet Holiday. Therefore, the status of the jobnet Weekday is displayed in the Status column.
The following figure shows an example of how the status and execution results for a planning group are displayed in the list area of the JP1/AJS3 - View window.
|
(4) Examples of configuring planning group definitions
The following are examples of ways in which you can configure the definitions in a planning group to achieve certain results. For example:
-
Processing that switches definitions every month
-
Processing that switches between two root jobnets
-
Processing that switches day and night definitions
-
Processing that changes the schedule for an existing planning group and adds a new jobnet
The figures and tables below show an example of root jobnets defined under a planning group, showing the definition of the root jobnets as displayed in the schedule area of the Monthly Schedule window.
(a) Switching definitions each month
The following figure and table show an example in which the planning group contains definitions for a jobnet that executes in February and a jobnet that executes in March.
|
Unit |
2/22 |
2/23 |
2/24 |
2/25 |
2/26 |
2/27 |
2/28 |
3/1 |
3/2 |
3/3 |
3/4 |
3/5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
|
Order Processing# |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
February Processing |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
-- |
-- |
-- |
March Processing |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
- Legend:
-
SE : Scheduled for execution
-- : Not scheduled
- #
-
Order Processing is the planning group.
(b) Switching between two root jobnets
The following figure and table show an example of a planning group containing definitions for a jobnet that executes on weekdays (open days), and a jobnet that executes on holidays (closed days).
|
Unit |
2/22 |
2/23 |
2/24 |
2/25 |
2/26 |
2/27 |
2/28 |
3/1 |
3/2 |
3/3 |
3/4 |
3/5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
|
Order processing# |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
Weekday |
SE |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
SE |
SE |
Holiday |
-- |
SE |
SE |
-- |
-- |
-- |
-- |
-- |
SE |
SE |
-- |
-- |
- Legend:
-
SE : Scheduled for execution
-- : Not scheduled
- #
-
Order Processing is the planning group.
(c) Switching between jobnets in the same day
The following figure and table show an example of a planning group containing definitions for a jobnet that executes during the day, and a jobnet that executes at night.
|
Unit |
2/22 |
2/23 |
2/24 |
2/25 |
2/26 |
2/27 |
2/28 |
3/1 |
3/2 |
3/3 |
3/4 |
3/5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
|
Calculation processing# |
SE |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
SE |
SE |
Day |
SE |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
SE |
SE |
Night |
SE |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
SE |
SE |
- Legend:
-
SE : Scheduled for execution
-- : Not scheduled
- #
-
Calculation Processing is the planning group.
- Supplementary note
-
The Day jobnet and the Night jobnet are executed according to the schedule information registering the jobnets for fixed execution.
The behavior of the system when the execution start time for the Night jobnet is reached while the Day jobnet is still running depends on the Schedule option and whether concurrent execution is enabled. For details on concurrent execution and schedule options for planning groups, see (1)(a) Unit definition information shared between root jobnets.
-
When the Schedule option is set to Schedule skip, succeeding generations will have the status Skipped so not executed.
-
When the Schedule option is set to Multi-schedule, and concurrent execution is disabled, succeeding root jobnets wait for the previous root jobnet to end before executing.
-
When the Schedule option is set to Multi-schedule, and concurrent execution is enabled, succeeding root jobnets execute without waiting for the previous root jobnet to end.
-
(d) Modifying an existing planning group schedule, and adding a jobnet
Assume that there is a planning group that alternates between different jobnets for open days (weekdays) and closed days (holidays). Assume that you cancel registration and prohibit execution of the jobnets in the planning group between April 29 and May 5 of the registered execution period, and then add a jobnet that will execute in this released period. The following figure and table show an example of the resulting jobnet definitions.
|
Unit |
4/26 |
4/27 |
4/28 |
4/29 |
4/30 |
5/1 |
5/2 |
5/3 |
5/4 |
5/5 |
5/6 |
5/7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
|
Order Processing#1 |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
Weekday |
-- |
-- |
SE |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
SE |
SE |
Holiday |
SE |
SE |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
Holiday week#2 |
-- |
-- |
-- |
SE |
SE |
SE |
SE |
SE |
SE |
SE |
-- |
-- |
- Legend:
-
SE : Scheduled for execution
-- : Not scheduled
- #1
-
Order Processing is the planning group.
- #2
-
Holiday week is the added jobnet.
(5) Supplementary notes
This subsection contains additional information about planning groups.
(a) Specifying unit names when using a command to manipulate a planning group
When you specify the name of a unit under a planning group as an option when you execute a command, you can omit the root jobnet name and specify the unit name directly. If you omit the root jobnet name, JP1/AJS3 will automatically select a unit with an existing generation when you execute the command. For details, see 1.1 Command syntax in the manual JP1/Automatic Job Management System 3 Command Reference.
(b) Statistics and execution simulation for planning groups
JP1/AJS3 calculates the execution time of a unit based on the average past execution times of the unit when it ended normally. The total number of successful executions and their total execution time is kept as statistical information on a root jobnet basis. The following figure shows the statistical information kept for a planning group.
|
The system executes an execution simulation based on these statistics. For details on execution simulations, see 4.4.2(2) Execution simulation.
Consider Figure 10-18 as an example. The average execution times for Job1, Job2, and Job 3 under Jobnet1 are 60 seconds, 70 seconds and 30 seconds respectively. Assuming that Job1, Job2, and Job3 are to execute in that specific order, if the scheduled start time for Job1 is set to 12:00:00, the scheduled start times displayed for Job2 and Job3 are 12:01:00 and 12:02:10, respectively. The average execution times for Job1 and Job3 in Jobnet2 are 30 seconds and 25 seconds respectively. Even when you use planning groups, the system performs execution simulations based on individual root jobnets.
(c) Generation order in a planning group
The generation numbers in a planning group are generally assigned in order of the scheduled start times, as with root jobnets in a job group. For details, see 4.2 Managing jobnet generations.
However, when more than one root jobnet in a planning group has the same scheduled start time, JP1/AJS3 assigns generation numbers differently from normal root jobnets, in order of the character codes of the root jobnet names. For alphanumeric characters, generation numbers are assigned in the order of the ASCII character codes. For Japanese characters, generation numbers are assigned in the order of the Japanese Shift JIS, Japanese EUC or UTF-8 character codes. The following figure shows an example of generation numbers assigned in the order of the character codes of the root jobnet names.
|
(d) Order of execution registration in a planning group
When you have jobnets that are executed more than once a day defined under a planning group, register the jobnets for execution in order of their scheduled start times, starting from the earliest.
If you register a jobnet with a later scheduled start time first, the assigned generation numbers will be the opposite of the execution order. This may make monitoring the different jobnets more difficult.
The following figure shows how generation numbers are assigned when you register jobnets for execution in order from the jobnet with the latest start time.
|
With the example shown in Figure 10-20, if you specify generation 1 using the ajsshow command with the -l or -g option, the command will be performed on the execution generation of Jobnet B, not Jobnet A. Because the generation number of the registered jobnet is not 1, you must specify generation 2 as well as generation 1 when you monitor the jobnet status.
When you register jobnets for execution in order from the jobnet with the earliest scheduled start time, you ensure that the generation number of the registered jobnet remains 1 because when the first jobnet ends, the jobnet with the next earliest start time executes. Therefore, you need only specify generation 1 when you monitor the jobnet status.
(e) Number of logs to keep in a planning group
You can set the number of logs to keep for each unit in a root jobnet that is switched in at a specific time by a planning group. For details on the number of logs to keep, see 4.2.3 Jobnet generation management.
For example, if you set the number of logs to keep to 2, JP1/AJS3 only keeps and displays the results for two generations. Execution results for all earlier generations are deleted. The following figure shows examples of root jobnet definitions in which the number of logs to keep has been defined.
|
Based on the definitions shown in the figure above, the following is displayed in the schedule area of the Monthly Schedule window at completion of execution on May 8.
Unit |
4/27 |
4/28 |
4/29 |
4/30 |
5/1 |
5/2 |
5/3 |
5/4 |
5/5 |
5/6 |
5/7 |
5/8 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
Sun |
Mon |
Tue |
Wed |
Thu |
|
Order Processing# |
EN |
-- |
-- |
-- |
-- |
EN |
EN |
EN |
EN |
-- |
EN |
EN |
Weekday |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
EN |
EN |
Holiday |
EN |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
Holiday week |
-- |
-- |
-- |
-- |
-- |
EN |
EN |
EN |
EN |
-- |
-- |
-- |
- Legend:
-
EN : Ended normally
-- : Not scheduled
- #
-
Order Processing is the planning group.
In this example, the jobnet Weekday also executes on May 6. However, since the number of logs to keep for Weekday is set to 2, the execution results for Weekday on May 6 are deleted.