INTEGRATION – Prestige Scheduler
We have created an integration between
Prestige Scheduler and printIQ’s Capacity Planner:
https://pivotalz.com/
The way it works is that Prestige Scheduler
is the ‘master’ software where all jobs are planned.
Via an API connection, job cards are then placed into the capacity planner in
printIQ:
Jobs can be viewed within the Capacity
planner while being scheduled within Prestige.
API supports options to Create or Update the Capacity Planner time block/card
records.
printIQ is to be viewed in a ‘Read Only’ mode.
No job cards can be moved within printIQ.
All changes to the schedule are handled in Prestige Scheduler and passed
through to printIQ.
This ensures there is no disconnect between the two systems.
Internal users view the board as a work to
list and can click on the card to open the modal that allows users to
start/stop operations:
Users can utilize the CP to view the
schedule and use the CP as a work to list, capture time etc.
SETUP - printIQ
USERS - All users must be setup without the ‘Planner’ role. This
is what restricts the Capacity Planner to be viewed in read only mode.
If a user has ‘Planning’ as a role, it will cause conflicts with the
integration with Prestige Scheduler.
CAPACITY PLANNER – Capacity Planner must be
fully configured in printIQ with all departments, presses and machines
configured with their operation hours set.
PRESSES & MACHINES – Any setup where
you have multiples of the same machine and want to ‘switch’ from one machine to
another will need to be configured using the ‘Inherit Production Path From’ feature:
Machines
For example, you have 3 of the same folder:
Folder 1 would be the main folder used for
quoting and folder 2 & 3 would be set to inherit path from folder 1:
Press
Same with presses, if you have multiple of the same press:
Press 1 would be the main press used for
quoting and folder 2 & 3 would be set to inherit path from press 1:
*The API provides the option to move a
card from one machine to another. It will update both the ProductionOperation
and CP TimeBlock tables.
SETUP – Prestige Scheduler
Prestige will be
responsible for all components, matching machines / press / guillotine one to
one, and making connections and record updates to IQ using our APIs.
Prestige
Schedule will need to be setup to ‘mirror’ the setup in printIQ.
Capacity Planner API Integration
Summary:
The V0 Quote Process collection now
contains 6 endpoints that will allow a 3rd party system to integrate with
PrintIQ's Capacity Planning module. A Postman collection is attached or you can
access these endpoint details via {yourPrintIQDomain}.com/Swagger
- PlanOperations
- UpdateOperationPlannedDateTime
- ChangePlannedMachine
- UnplanOperation
- UnplanJob
- UnplanTimeBlock
This assumes the 3rd party manages the
integration by utilizing these API endpoints to affect Capacity Planning
records within PrintIQ. The data share is one-way: 3rd Party ->
PrintIQ
System Requirements:
Must have Capacity Planning module purchased
and enabled
When this integration is actively managed by a
3rd party, it is a essential to have the CP board read only in PIQ to avoid the
two systems becoming out of sync. This is done by making sure no user accounts
have the role of ‘Planner’ configured against them.
Validation:
In order to access these endpoints, the
system will require valid PrintIQ user credentials to generate a LoginToken,
and an application key to generate an ApplicationLoginToken. PrintIQ
Support can set up the application and provide required Key and Name
values.
These tokens are generated using
GetLoginToken and GetApplicationLoginToken, also provided in the postman
collection. These tokens expire every 2 hours; it is recommended you
generate a new token any time you call the collection to update a component in
Capacity Planning.
Context Details:
Once you can generate tokens, you will
utilize GetAcceptanceDetails with a Job Number to extract most required key
values. The response will contain operations context within
AcceptanceDetails{}.Products[].MiddlewareProductDetail.Operations[].POKey (this
is the operation key used by most endpoints). The object will also contain the
operation name. All Capacity Planning is relative to these operations per
job.
For any endpoints that require a Machine
(Machine, Press, Guillotine), you can get details within the PrintIQ UI to
reference their system names.
../FactoryAdmin/Press.aspx
../FactoryAdmin/Guillotine.aspx
../FactoryAdmin/Machine.aspx
PlanOperations
When using this endpoint, you must provide
either a Machine, Press, or Guillotine. If you do not specify
DurationMinutes, it will keep the previous duration of the operation. If the
operation is planned elsewhere, Unplan it first. If the
operation cannot be planned where specified, it will keep previous details and
remain in prior slot or remain unplanned.
Provide a Planned Start as 'YYYY-MM-DD',
and provide your StartMinute as relative minute to local start time. i.e.
"300" = 5AM, "1439" = 11:59PM
You may update multiple operations in this
call.
POST
//api/QuoteProcess/PlanOperations?LoginToken={{appToken}} HTTP/1.1
Host: {{yourDomain}}.printiq.com
Content-Type: application/json
Content-Length: 253
{
"PlanOperations": [
{
"POKey":
290812, //as extracted from GetAcceptanceDetails for the operation you want to
plan
"ScheduleDate": "2025-07-09",
"StartMinute": 600,
"Machine":
null,
"Press":
"WF - HP 11000",
"Guillotine": null,
"DurationMinutes": 60
}
]
UpdateOperationPlannedDateTime
Similar to PlanOperations, but only for a
single operation already planned but just changing the date/time (not machine).
If DurationMinutes isnt specified, it will keep the previous duration of the
operation.
{
"POKey": 290812,
"PlannedStart":
"2025-03-13",
"StartMinute": 300,
"DurationMinutes":
null
}
ChangePlannedMachine
Provide the operation key, and either
Machine, Press, or Guillotine you are changing the planned operation for.
We will provide an error response if the provided machine is invalid, or not
applicable to the operation.
{
"POKey": 290812,
"Machine": null,
"Press": "WF - Onset
X3",
"Guillotine": null
}
UnplanOperation
Removes operation from planned block, you
only provide POKey.
{
"POKey": 290812
}
UnplanJob
Removes all operations of Job from
schedule.
{
"JobNo":
"J002819"
}
UnplanTimeBlock
Unplans an operation. Time Block
(PTBKey) is a back-end identifier for the record of the operation, machine, and
time scheduled as a block.
PlanOperation - response
{
"PTBKeys": [
4957
],
"ErrorMessage":
null,
"IsError": false,
"WarningMessage":
null,
"IsWarning": false
}
{
"PTBKey": 4957
}