Skip to main content
Question

Cancel PTO plugin: detecting "Submitted (Cancelation)" status via WQL

  • May 27, 2026
  • 1 reply
  • 24 views

Building a Cancel PTO plugin in Moveworks against Workday by using built-in Workday Cancel PTO Plugin. Hit a snag detecting the third state of a time-off request.
Setup:
Workday_GET_Approved_PTOs_Of_Employee_ByDate calls timeOffByDateTaken and filters on status = Approved WID
After an employee initiates cancellation via Adjust_Time_Off_Request, the entry shows in Workday UI as "Submitted (Cancelation)" awaiting manager approval
But WQL's status field on these entries still returns "Approved" — so the plugin can't tell they're already mid-cancellation, and users could trigger duplicate cancellation requests

Question: Which WQL field (or which data source) exposes the in-flight BP-level status that surfaces as "Submitted (Cancelation)" in the UI? Has anyone built this kind of filter before?

1 reply

Kevin Mok
Forum|alt.badge.img+2
  • Community Manager
  • May 27, 2026

Hey ​@MichaelWilliams - to start off I am no Workday expert and maybe someone else in the community may have a better answer than me, but I asked my agent your question and it mentioned some things that could be helpful to you.

It mentioned that timeOffByDateTaken.status is the time off entry's committed status. Workday doesn't mutate that to "Submitted (Cancelation)" — it stays "Approved" until the Cancel Time Off Event BP completes. "Submitted (Cancelation)" is the business process transaction's overall status, not a property of the entry. You can't get it from timeOffByDateTaken alone, where the in-flight state actually live,

 

There’s a way to use WQL to help you get the correct information

Query the BP transaction data source directly (most reliable)
Data source: businessProcessTransactions (or allBusinessProcessTransactions depending on tenant)
Filter:

  • businessProcessType = "Cancel Time Off Event" (some tenants surface it as "Cancel Business Process for Time Off Event" — verify)
  • overallStatus IN ("In Progress", "Submitted", "Awaiting Action") — i.e. NOT "Successfully Completed" / "Denied" / "Canceled"
  • subject (or targetWorker / forWorker) = the employee's WID
  • Then correlate back to the time off entry by date or transaction subject.

If overallStatus is something that exists, you could try to query for that before submitting a cancellation as a guard, or use it to filter out PTO requests that are already pending to be cancelled.

 

Hope this helps