A Fabric job is a run of an item such as a notebook, data pipeline, or Spark job definition. ‘fabricQueryR’ can start a run, wait for it, inspect recent runs, and manage recurring schedules.
Start with one on-demand run. Add a schedule only after that run succeeds and its parameters and runtime are understood. This guide uses a notebook, but the same pattern applies to other supported item types.
library(fabricQueryR)
notebook <- fabric_notebooks("Analytics workspace")[[1]]Discovery returns a read-only FabricJobItem R6 object.
Read its service fields directly. Its $run(),
$status(), $wait(), and $cancel()
methods correspond to fabric_job_run(),
fabric_job_status(), fabric_job_wait(), and
fabric_job_cancel(); its schedule methods correspond to the
fabric_job_schedule_*() functions.
Run once and inspect history
Start an on-demand job with $run()
(fabric_job_run()) and wait with $wait()
(fabric_job_wait()):
job <- notebook$run(
parameters = list(run_date = Sys.Date(), full_load = FALSE)
)
result <- notebook$wait(job, timeout = 900, cancel_on_timeout = TRUE)
result$statusThe first call returns immediately with a job handle. The wait call
checks Fabric until the job finishes or the 15-minute local deadline is
reached. cancel_on_timeout = TRUE asks Fabric to cancel the
run if that deadline is exceeded.
Notebook submission uses Fabric’s released workload-specific route so
run parameters and compute settings are applied. Polling uses the stable
Core Job Scheduler by default. If a Notebook workflow needs the beta
status fields, such as its exit value, use $status()
(fabric_job_status()) and opt in explicitly:
detailed <- notebook$status(
job,
notebook_details = TRUE,
respect_retry_after = FALSE
)
detailed$exit_valueRunning a job needs Execute permission. Reading history needs Read permission, while changing schedules normally needs Write access. If an on-demand run works but schedule creation does not, ask the item owner to check your Write access.
List runs with $instances()
(fabric_job_instances()) and refresh a result with
$status() (fabric_job_status()):
history <- notebook$instances()
history[[1]]$invoke_type
history[[1]]$status
history[[1]]$start_time
history[[1]]$failure_reasonRefresh a history entry directly without copying its instance ID:
latest <- notebook$status(history[[1]])Build schedule configurations
Build and validate a schedule configuration before creating the schedule in Fabric. Boundaries are UTC instants, while recurring clock times use a Windows time-zone identifier so Fabric can apply daylight-saving rules.
daily <- fabric_job_schedule_config(
"Daily",
start_time = "2026-10-01T00:00:00Z",
end_time = "2027-10-01T00:00:00Z",
time_zone = "W. Europe Standard Time",
times = "08:30"
)Fabric supports minute-interval, daily, weekly, and monthly
schedules. Weekly schedules add weekdays; monthly schedules
select a numbered day or an ordinal weekday. See
?fabric_job_schedule_config for those shapes. Use a Windows
time zone such as "W. Europe Standard Time", not an IANA
name such as "Europe/Amsterdam".
weekly <- fabric_job_schedule_config(
"Weekly",
start_time = "2026-10-01T00:00:00Z",
end_time = "2027-10-01T00:00:00Z",
time_zone = "W. Europe Standard Time",
times = "07:30",
weekdays = c("Monday", "Thursday")
)Create, list, update, and disable
Create one schedule with $schedule_create()
(fabric_job_schedule_create()), then list schedules with
$schedules() (fabric_job_schedules()):
schedule <- notebook$schedule_create(weekly, enabled = TRUE)
schedules <- notebook$schedules()Lakehouse schedules have no safe generic job default. Pass the
documented job_type explicitly; for example, materialized
Lake View refresh schedules use
job_type = "RefreshMaterializedLakeViews" together with an
execution_data list containing
mlvExecutionDefinitionId. Microsoft labels this Lakehouse
scheduling API as Preview, for evaluation and development only, and does
not recommend it for production use.
Disable or restart a schedule with $schedule_update()
(fabric_job_schedule_update()) without rebuilding its
configuration:
disabled <- notebook$schedule_update(
schedule,
enabled = FALSE
)
restarted <- notebook$schedule_update(
schedule,
enabled = TRUE
)Fabric may disable a schedule after repeated failures. Re-enable it only after inspecting recent job history and correcting the cause.
Delete a schedule
Deletion with $schedule_delete()
(fabric_job_schedule_delete()) is permanent and requires
explicit confirmation:
notebook$schedule_delete(schedule, confirm = TRUE)Microsoft documents scheduler throttling, maximum job duration and concurrency, schedule expiry after prolonged user inactivity, and auto-disable behavior in the Fabric job scheduler guide.