Purpose

  • The Daily Plan Service is used to create and to submit Orders for a Daily Plan to Controllers. The service is operated in the background and acts on a daily basis to plan a number of days ahead.
  • The Daily Plan Service runs existing JS7 - Schedules and generates Orders for the given start times. This applies to both Schedules which specify a single start time for an order and Schedules which specify cyclic starts. An individual Order is created for each start time in a cycle. In a subsequent step these Orders are submitted to the appropriate Controllers.
  • A similar functionality is available in the JS7 - Daily Plan View for operation by users. However, the service performs this task automatically for a configurable number of days ahead.

Feature Video

This video explains the settings for the Daily Plan Service:


Daily Plan

Schedules

Orders are created from Schedules which indicate the Workflow and variables to be used as well as the run-time specification - i.e. the rules defining the days and start times which Orders should be created for.


Explanation:

  • The "Plan Order automatically" checkbox specifies whether a Schedule will be applied when running the Daily Plan. Orders created by this step are added with a PLANNED state.
  • The "Submit Order to Controller when planned" checkbox specifies whether any PLANNED Orders - from the current Daily Plan run or from previous runs - will be submitted to a Controller and will result in a PENDING Order state. Submission of an Order to a Controller involves the Order being submitted to any Controllers which the respective Workflow has been deployed to.

Planned Orders

The planning step includes the creation of Orders from Schedules and making them available with the PLANNED state. Such Orders are visible with the Daily Plan View for the given date.

Submitted Orders

The submission step includes forwarding Orders to any Controllers which the underlying Workflow has been deployed to.

User Intervention

The Daily Plan Service is designed to respect user interventions which include, for example, manually creating Orders for a given date, modifying Order start times or to cancelling and removing Orders from the Daily Plan. If such an intervention occurs then the Daily Plan Service will not consider to generate Orders for the given date.

  • This is intended to prevent conflicts with user interventions: a user can e.g. remove any Orders for a given date and the Daily Plan Service will not try to populate this date with Orders.
  • The Daily Plan Service takes account of the fact that a Submission has been created for a given date - either by the Daily Plan Service when previously generating Orders or by user intervention. If a Submission is found then no Orders will be created for this date by the service.
  • However, users are free to delete Submissions with the Daily Plan View. Deleting a Submission does not remove Orders, it just hides the fact that for the given date a previous planning has been performed. If no Submission is available for a given date then the Daily Plan Service will take account of existing Orders for this date and will create additional Orders if required by the underlying Schedules. Practically speaking: if a user drops e.g. 3 Orders out of 10 for a given date and deletes the Submission then the Daily Plan Service will re-create the supplemental 3 Orders.

At the same time, the Daily Plan Service will submit Orders with a PLANNED state to a Controller for a number of days ahead. This occurs independently of the fact that an Order was added by the user or by the Daily Plan Service. The functionality is intended to prevent a situation when users generate Orders with a PLANNED state but miss to submit them to a Controller in good time. The Daily Plan Service will pick up such Orders and will submit them for the number of days ahead as specified with the service configuration.

Operation

The Daily Plan Service runs as a background service on a daily basis.

  • Restarting JOC Cockpit will not cause additional runs of the Daily Plan Service.
  • However, a user can intentionally force a re-run of the Daily Plan Service by using the Dashboard View -> JOC Cockpit widget and selecting the action menu item Restart Service -> Daily Plan Service.

The Daily Plan Service processes Orders for future dates, not for the current date.

  • Configuration items for planning or submitting Orders for 3 days ahead exclude the current day.
  • The resulting operation of the Daily Plan Service to plan and to submit orders ahead are therefore independent of the time in the current day at which the service is running.

Configuration

Location

Configuration Items

SectionSettingDefault ValueRequiredPurpose
daily_plantime_zoneUTCnoSpecifies the time zone that is applied to the start time of the Daily Plan Service and period of the Daily Plan.

period_begin00:00noSpecifies the begin of the 24 hours Daily Plan period with the indicated time zone.

start_time30 minutes before period_beginnoSpecifies the start time for running the Daily Plan on a daily basis with the indicated time zone. Without this setting the Daily Plan will run 30 minutes before the point in time specified by the period_begin setting. This setting accepts a time value, e.g. 23:00:00.

days_ahead_plan7noSpecifies the number of days ahead which orders are generated for and are made available with the PLANNED state. A 0 value indicates that no orders should be generated and disables the functionality.

days_ahead_submit3noSpecifies the number of days ahead for which PLANNED orders are submitted to Controllers and are made available with the PENDING state. A 0 value indicates that no orders should be submitted and disables the functionality.

projections_month_ahead6noSpecifies the number of months ahead for which JS7 - Daily Plan Projections are calculated that indicate future order execution.

Logging

  • The Daily Plan Service logs general messages, warnings and errors in the joc.log file.
  • In addition, more detailed information is logged in the Main Log service-dailyplan.log file.
  • In addition to the Main Log, detailed debug information is logged in the Debug Log service-dailyplan-debug.log file.
  • For details see the JS7 - Log Files and Locations article.