You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Introduction

The JOC Cockpit Resources / Calendars view has import and export functions to allow reliable Calendar deployment, for example, from an Integrations System (Int.) to a Production System (Prod.).

In general, such a deployment will involve 3 - 4 steps:

  1. Export of the Calendar from the Int. JOC Cockpit to the Int. file system, where the Calendar will be saved as a JSON file.
  2. Transfer of the JSON calendar file to the Production file system.
  3. Import of the JSON calendar file to the Production JOC Cockpit with automatic integration into the Production JOC Cockpit Daily Plan.
  4. Manual Updating of the Daily Plan will be Required in particular situations

Details of the deployment procedure will depend on two factors:

  1. Whether a Calendar is to be deployed on the Prod. system for the first time or whether an existing Calendar on the Prod system is to be updated.
  2. Whether a Calendar is to be deployed on its own or whether it is to be deployed with information from the Int. system about the Orders or stand-alone Jobs which have been configured to use the Calender.

Note that Calendars are always exported with usage and folder information - i.e.:

  • With information about the Orders or stand-alone Jobs which the Calender has been assigned to and the Run-time information (Period and Restrictions).
  • With the Calendar Path parameter ... ADD SUMMARY

"New" Deployment of a Calendar

Consider the situation where a new Calendar has been tested and is now to be deployed to a production environment. TO COMPLETE

  • There are two cases to consider here:
    • i.e. whether or not a Calendar being deployed on the Int. system was not assigned to one or more Orders on that system.TO REWRITE

Example Configuration

The following configuration will be used to demonstrate deployment of "new" Calendars:

  • On the Int. System:
    • Two Orders have been configured for a Job Chain:
      • inpexp_1, with the Frequencies:
        1. cal_sat, configured with every Saturday, and a Single Start Period at 12:00
        2. cal_sun, configured with every Sunday, and a Single Start Period at 18:00
      • inpexp_2, with the Frequency:
        1. cal_sat, configured with every Saturday, and a Single Start Period at 21:00
      • inpexp_3, with the Frequency:
        • cal_sun, configured with every Sunday, and a Single Start Period at 15:00
    • In addition, a further Calendar has been configured but not assigned to an Order:
      • cal_mo-fr configured with every day, Monday to Friday,
  • On the Prod. System:
    • Two Orders have been configured for a Job Chain:

      • inpexp_1, with no Calendars assigned

      • inpexp_2, with a Single Start Period at 21:00 and the following Calendar assigned:
        • cal_fr, configured with every Friday, and a Single Start Period at 24:00
  • The Calendars to be exported are:
    • cal_sat and
    • cal_mo-fr.
    • The cal_sat Calender is not to be exported.

Export Procedure

Calendar Export is carried out from the Resources / Calendars view of the JOC  Cockpit:

  • The Calendar or Calendars to be exported are selected using the select boxes shown either in the Calendar Cards (as shown in the screenshot below) or at the left of the list of Calenders.


  • Selecting a first Calendar will cause the default Import Calendar button (shown in the screenshot above) to be replaced with the Export Calendar button as shown in the next screenshot.


  • Clicking the the Export Calendar button will open a standard browser file-saving menu that is then followed to save the Calendar(s) selected as a single .json file to the Int. file system. This file can now be transferred to the Prod. file system.
  • In the configuration used for the screenshots the impexp_cal_sat Calender is assigned to two Orders on the Int. system and the impexp_cal_sun Calender is not assigned to any Order. Both Calenders are none-the-less exported in the .json file.

The content of the .json file showing the exported Calendar and usage information is shown in the code listing below:  

Listing of the exported .json file
{
  "calendars": [
    {
      "path": "/demo/calendar/import-export/cal_mo-fr",
      "type": "WORKING_DAYS",
      "category": "e2e",
      "title": "Cal Mon-Fri",
      "from": "2017-12-16",
      "to": "2017-12-31",
      "includes": {
        "weekdays": [
          {
            "days": [
              1,
              2,
              3,
              4,
              5
            ]
          }
        ]
      },
      "usedBy": {
        "jobs": [],
        "orders": [],
        "schedules": []
      }
    },
    {
      "path": "/demo/calendar/import-export/cal_sat",
      "type": "WORKING_DAYS",
      "category": "e2e",
      "title": "Cal Sat",
      "from": "2017-12-16",
      "to": "2017-12-30",
      "includes": {
        "weekdays": [
          {
            "days": [
              6
            ]
          }
        ]
      },
      "usedBy": {
        "jobs": [],
        "orders": [
          "/demo/calendar/import-export/job_chain1,impexp_1",
          "/demo/calendar/import-export/job_chain1,impexp_2"
        ],
        "schedules": []
      }
    },
    {
      "path": "/demo/calendar/import-export/job_chain1,impexp_1",
      "basedOn": "/demo/calendar/import-export/cal_sat",
      "type": "ORDER",
      "periods": [
        {
          "singleStart": "12:00:00",
          "whenHoliday": "suppress"
        }
      ],
      "includes": {}
    },
    {
      "path": "/demo/calendar/import-export/job_chain1,impexp_2",
      "basedOn": "/demo/calendar/import-export/cal_sat",
      "type": "ORDER",
      "periods": [
        {
          "singleStart": "21:00:00",
          "whenHoliday": "suppress"
        }
      ],
      "includes": {}
    }
  ],
  "deliveryDate": "2017-12-16T12:16:36.922Z"
}

 

Import Procedure

The Import procedure is started in the Resources / Calendars view of the target system by simply clicking the Import Calendar button (any folder can be selected in the Folder Tree) as shown in the screenshot below.

This will open a standard browser-based file import procedure allowing file selection either by drag-and-drop or by menu.

Once the file has been selected an Import Calendar modal window will open as shown in the next screenshot:

As can be seen from the screenshot, selection of individual Calendars is allowed during the import.

After the import has been completed the Calendars will be shown the folder specified in the Path parameter alongside the cal_fr calender that had already been configured on the Prod. system.

Behavior of the Import Function

The import function is conservative, preserving existing configurations on the target system where appropriate.

  • Orders on the target Prod. system with the same names as Orders on the source Int. system will be automatically assigned the Frequency or Frequencies for the exported Calendar(s) that the Orders on the Int. System were assigned, where Frequencies are Calendar, Period and Restrictions. In the current example, this means that on the target Prod. system:
    • The Order inpexp_1, will be assigned the Frequency:
      1. cal_sat, configured with every Saturday, and a Single Start Period at 12:00
        Note that a Frequency for the cal_sun Calendar will not be assigned to this Order as the Calendar for such a Frequency was not included in the export.
    • The Order inpexp_2, will be assigned the Frequency:
      1. cal_sat, configured with every Saturday, and a Single Start Period at 21:00
        Note that the already assigned Frequency with the cal_fr Calendar will neither be modified not overwritten.  
  • Frequency information for an Order on the Int system that was included in the export will not be imported into the Prod. system if an Order with the same name is not found on the Prod. system.
    • This means that in the example, the exported information for the inpexp_3 Order will not be imported.

Assessing the Import

Once the import has been carried out the imported Calendar(s) can be seen in the Resources / Calendars view, in the appropriate folder, as can be seen in the next screenshot, which shows the already existing cal_fri Calendar and the imported cal_sat and cal_mo-fr Calendars.

In addition the imported Calendar(s) will be shown in the Assigned Calendars modal window for the relevant Order as can be seen in the next screenshot:

In the Job Chains view, the Set Run-time modal window will show the Calendar(s) that been imported as shown in the next screenshot, where they can be seen in the list of Frequencies along with any Period and Restriction information that has been imported:

Note that the imported Calendars are not yet included in the Daily Plan nor will they be started by the relevant JobScheduler Master. This can be seen:

  • in the JobChains view where the Next Start information (shown in green) in the next screenshot has not been updated;
  • when the Show Daily Plan function is called for the relevant Order.

Update the Daily Plan

The Daily Plan is updated with the Frequency information for the newly imported Calendar(s) by the createDailyPlan Order, which can be found in the ./sos/dailyplan Folder of the JobScheduler Master's live Folder. This Order is configured by default to run every day at 00:01 but can also be started manually using the Order's Start Order Now function.

Once the createDailyPlan Order has been run after an import, the Next Start information (shown in the previous screenshot) will be updated taking account of the newly imported Calender, Period and Restriction information.

In addition the Order's Show Daily Plan function will display the correct Start times.

Deployment of a Calendar Update

Consider the situation where a Calendar is already in use in a production environment and requires to be updated.

A typical scenario would be where the Calender is to be extended for a further year and the holidays for that year added.

In the following example, a Working Week Calendar buswk_hols has been configured for 2017 (Valid From 01.01.2017, Valid To 31.12.2017) with a Monday to Friday working week configured as an Included Frequency and the German national holidays for 2017 as an Excluded Frequency. This Calendar is deployed on the Prod. System and is to be updated with a newer version of this Calendar which includes the national holidays for 2018. In addition, the Valid To date for the Calendar is to be changed from 31.12.2017 to 31.12.2018. This Calendar has been assigned to the impexp_4 Order with a Single Start Period at 18:00 and no Restrictions. 

The updated and tested version of the buswk_hols Calender is installed on the Int.system with the same Path parameter value and is assigned to an Order with the same name as the assigned Order on the Prod. system and the same Period and Restrictions. 

 

 

 

  • No labels