Job deployment and package

Job deployment and package

Sep 24, 2026 · @User

A job package is a set of jobs that sapio365 deploys and removes as one unit: every job XML file carrying the same JobPackage value in its header belongs to that package.

Use a package to deliver several related jobs together, for example one job per module for the same process. You ship them as a single zip file, the Job Center imports them in one go, and removing any one of them removes them all.


Single job

Job package

Delivered as

One XML file

A zip file of XML files

Imported by

Dropping the XML on the Job Center grid, or Import

Dropping the zip on the Job Center grid, or Import

Removing a job

Removes that job

Removes every job of the package

Canceling during import

Stops the remaining jobs

Nothing of the package is imported

Define a package

Add the JobPackage attribute to the ytriaAutomation tag of every job file in the package, with the same value in each file.

HTML
<?xml version="1.0" encoding="UTF-8"?>
<ytriaAutomation application="sapio365" JobPackage="Onboarding" WizardTitle="Onboarding - Users" WizardDescription="Create the new user accounts.">
    ...
</ytriaAutomation>
  • Attribute name: exactly JobPackage (letter case does not matter). Any other name, such as WizardPackage, is not recognized, and the job is not part of the package.

  • Value: matched without regard to letter case; leading and trailing spaces are ignored. The value also names the folder where the package files are kept.

  • Modules: jobs of one package can target different modules with TargetModule. A job without TargetModule goes to the Job Center it is imported into.

  • One package per job: a job is identified by its module and file name. Importing a file with the same name into the same module replaces that job, even when it comes from another package.

Deploy a package

Zip the job files of the package together, then import the zip into a Job Center in the sapio365 backstage. An active session is required.

  1. Put all XML files of the package in one zip file. Folders inside the zip are allowed, but every file name must be unique across the whole zip.

  2. Open the Job Center, in the main window or in a module, and do one of the following:

    • Drop the zip file on the Job Center grid. You can drop several zip and XML files at once.

    • Click Import and pick the zip file (advanced view only; the file picker accepts XML and ZIP files).

  3. Answer the checks and dialogs described below.

sapio365 checks each zip file before importing anything:

The zip holds

What happens

XML files that all have the same JobPackage

Imported without asking

Files without JobPackage, several packages, or files other than XML

A confirmation lists each package with its job count, the jobs without a package and the ignored files. Continue imports the XML files; Cancel imports nothing.

Two files with the same name (in different folders)

Refused: "Several files have the same name."

No XML file

Refused: "No XML job file found."

Files other than XML are never imported. When some files are refused and others are valid, sapio365 offers to continue with the valid ones.

During the import

A package is imported whole or not at all: nothing is saved until every dialog is confirmed.

  • Replacing existing jobs: jobs that already exist are listed in Replace existing jobs. Choose Import new job or Keep current job for each one. When a job would move to another package, its row shows "Job package: new (currently: old)".

  • Job details: each new job opens Edit metadata for job, as for a single XML file. Title, description, tooltip and icon changed there are also written into the job's XML.

  • Canceling: Cancel in a job's dialog stops the import. Packages with a job not yet confirmed are skipped entirely: none of their jobs are added or replaced, and a message lists them. Confirmed jobs outside a package are imported as usual.

  • Modules: jobs with a TargetModule are imported into that module, whichever Job Center received the zip.

  • Kept files: the imported XML files are copied to JobPackages\<package name> in the sapio365 data folder (by default %LOCALAPPDATA%\Ytria\sapio365). Jobs without a package from a zip go to a folder named after the zip. Update from file uses these copies.

After the import

The Job Center grid shows a Job Package column as soon as one of its jobs belongs to a package, in simple and advanced view.

  • Editing a job: in Edit metadata for job, the title, description, tooltip and icon are read-only when the job's XML file defines them. To change them, edit the XML file, then use Update from file. Fields the XML does not define stay editable.

  • Update from file (advanced view) reloads the selected jobs from their kept XML files, shown in the Source File Path column. A changed JobPackage value moves the job to the new package; a removed one takes it out of its package.

Remove a package

Removing any job of a package removes every job of that package, in all modules.

  • Where: the Delete button of a Job Center, or the delete link of a job on the main screen.

  • Confirmation: the dialog says "All jobs of a package are removed together" and lists the other jobs it removes, with their module and file name.

  • What goes with them: the presets of these jobs and their scheduled tasks in Windows Task Scheduler. This cannot be undone.

  • What stays: system jobs are never removed, and the kept XML files remain in the JobPackages folder.

Open windows of the other modules concerned refresh their job lists.

Troubleshooting

Message or symptom

Cause

Fix

Jobs listed as "Without job package"

The attribute is misspelled, for example wizardpackage

Rename it JobPackage in each file

"Several files have the same name."

Two files in different folders of the zip share a name

Rename one of them

"No XML job file found."

The zip is empty or holds no .xml file

Add the job files

"A system job already exists with the key ..."

The file name matches a system job of that module

Rename the XML file

"... already exists and is read-only"

A read-only job has the same module and file name

Rename the XML file

"'...' is not a valid module name."

The TargetModule value is wrong

Fix TargetModule in the file

"Importing jobs requires an active session."

No session is loaded

Log in, then import again