Automated Subscription Invoice Creation with Job Queue (Preview)

Prev Next

Overview

The Job Queue feature automates the creation of subscription invoices on a scheduled basis. Instead of manually running the invoice creation report, Business Central will automatically generate invoices according to your configured schedule.

Benefits

  • Save Time: Invoices are created automatically without manual intervention

  • Consistency: Invoices are created at the same time and with the same settings every run

  • Reliability: Runs even when users are not logged in

  • Visibility: Track execution history and monitor success/failure

How It Works

  1. You configure when and how invoices should be created

  2. Business Central's Job Queue service runs on your schedule

  3. The system automatically creates subscription invoices based on your date formulas

  4. You receive notification of success or errors

  5. Created invoices are ready for review and posting


Prerequisites

Before setting up automated invoice creation:

  • You have subscription orders configured in Business Central

  • You have the necessary permissions to configure Job Queue

  • You understand your company's invoicing schedule (e.g., monthly on the 1st)

  • Your BC environment has the Job Queue service running (cloud environments have this by default)


Setup Guide

Step 1: Open Job Queue Setup

  1. Search for "Subscription Setup" in Business Central

  2. Click on "Job Queue Setup" in the actions menu

Step 2: Configure Date Formulas

Date formulas determine which subscriptions to process and what dates to use on created invoices.

Include Up To Date Formula

What it does: Determines which subscription lines to include based on their "Next Invoicing Date"

Default: <1M+CM> (end of next month)

Common scenarios:

  • <1M+CM> - Create invoices for subscriptions due through the end of next month

  • <CM> - Create invoices for subscriptions due through the end of this month

  • <1M> - Create invoices for subscriptions due in the next 30 days

[Screenshot: Include Up To Date Formula field with example date]

Posting Date Formula

What it does: Sets the "Posting Date" on all created invoices

Default: <CM+1D> (first day of next month)

Common scenarios:

  • <CM+1D> - Post on the first day of next month

  • <1D> - Post tomorrow

  • <1W> - Post one week from today

  • <0D> - Post today

Document Date Formula

What it does: Sets the "Document Date" on all created invoices

Default: <0D> (today)

Common scenarios:

  • <0D> - Use today's date

  • <CM+1D> - Use first day of next month

💡 Tip: Each formula field shows an "Example Date" below it. This shows what date will be calculated when the job runs today, helping you verify your formula is correct.

Step 3: Configure Schedule

Earliest Start Time

The earliest time of day the job can run.

Example: Set to 06:00 to start generating invoices at 6:00 AM

💡 Tip: Leave blank to allow the job to start immediately when enabled.

No. of Minutes between Runs

How often the job should run.

Default: 1440 (once per day)

Common scenarios:

  • 1440 - Once per day (24 hours)

  • 10080 - Once per week (7 days)

  • 43200 - Once per month (30 days)

Run on Days

Select which days of the week the job can run.

Default: Monday through Friday enabled

💡 Tip: For monthly invoicing, you might only enable Monday and set the schedule to run every 43200 minutes (30 days).

Step 4: Configure Invoice Options

Invoice Per

How to group subscription lines on invoices:

  • Customer (recommended): One invoice per customer (combines all subscriptions)

  • Subscription: One invoice per subscription order

  • Line: One invoice per subscription line

Invoice Line Comment

Optional text to add as a comment line at the top of each invoice.

Example: "Monthly Subscription Charges"

Step 5: Create the Job Queue Entry

  1. Check the "Configure Job Queue" checkbox

  2. Click "Create/Update Job Queue Parameters" button

  3. You'll see a confirmation message

⚠️ Important - The job queue entry is created with status "On Hold"

Step 6: Enable the Job Queue

To start automatic execution:

  1. Click "Open Job Queue Entry" button

  2. On the Job Queue Entry Card, change Status from "On Hold" to "Ready"

  3. Close the card

✅ What happens now:    

  • The job will run according to your configured schedule

  • You can monitor execution on the Job Queue Setup page

  • Log entries are preserved when updating parameters


Testing Your Configuration

Before relying on automatic execution, test your configuration:

Option 1: Run Now (Recommended)

Before enabling automatic execution, test your configuration:

  1. Make sure "Configure Job Queue" is checked

  2. Click "Run Now" button

  3. Wait for completion message

  4. Check "Last Run Status" fields to verify success

  5. Review created invoices in the sales invoice list

Note: You can test with "Run Now" without setting the job queue to "Ready" status.

Option 2: Check Example Dates

  1. Review the "Example Date" shown below each date formula field

  2. Verify these dates match your expectations

  3. Adjust formulas if needed


Monitoring Job Queue Execution

Last Run Information

The setup page shows details about the most recent execution:

  • Last Run Date Time: When the job last ran

  • Last Run Status: Success or Error

  • Invoices Created Last Run: Count of invoices created

  • Last Run Error: Error message if failed

Job Queue Status

The "Job Queue Status" field shows the current state:

  • Ready: Job is scheduled and waiting to run

  • In Process: Job is currently running

  • Error: Job encountered an error

  • On Hold: Job is paused

Activity Log

View complete execution history:

  1. Click "View Activity Log" button

  2. Review all past executions with timestamps

  3. See detailed messages for each run


Common Date Formula Examples

Scenario: Monthly Invoicing on First Day of Month

Business Requirement: Create invoices on the 1st of each month for the upcoming month

Configuration:

  • Include Up To Date Formula: <1M+CM>

  • Posting Date Formula: <CM+1D>

  • Document Date Formula: <CM+1D>

  • Schedule: Run daily (1440 minutes), Monday-Friday

How it works:

  • On January 15: Creates invoices for subscriptions through Feb 28, dated Feb 1

  • On February 20: Creates invoices for subscriptions through Mar 31, dated Mar 1

Scenario: Weekly Invoicing

Business Requirement: Create invoices every Monday for the current week

Configuration:

  • Include Up To Date Formula: <1W>

  • Posting Date Formula: <0D>

  • Document Date Formula: <0D>

  • Schedule: Run once per week (10080 minutes), Monday only

How it works:

  • Every Monday: Creates invoices for subscriptions due in next 7 days, dated today

Scenario: End-of-Month Invoicing

Business Requirement: Create invoices on the last day of each month for that month

Configuration:

  • Include Up To Date Formula: <CM>

  • Posting Date Formula: <CM>

  • Document Date Formula: <CM>

  • Schedule: Run daily (1440 minutes), Monday-Friday

How it works:

  • On Jan 31: Creates invoices for subscriptions through Jan 31, dated Jan 31

  • On Feb 28: Creates invoices for subscriptions through Feb 28, dated Feb 28


Troubleshooting

Job Queue Status Shows "On Hold"

Problem: The job queue entry exists but is not running

Cause: This is expected behavior when first created. Job queue entries are created with "On Hold" status to prevent accidental automatic execution.

Solution:

  1. Click "Open Job Queue Entry" button

  2. Change Status from "On Hold" to "Ready"

  3. Close the Job Queue Entry Card

  4. The job will now run according to your schedule

No Invoices Created (Status: Success)

Problem: Job runs successfully but creates zero invoices

Possible causes:

  1. No subscriptions are due: Check your "Include Up To Date Formula"        

    • The example date shows what cutoff date is being used

    • Ensure some subscriptions have "Next Invoicing Date" before this date

  2. Wrong day of week: Check "Run on Days" settings        

    • Job won't run on days not checked

    • Today might not be an enabled day

  3. Subscriptions already processed: Check subscription line "Next Invoicing Date"        

    • Date might have been updated by a previous run

    • Look for recently created invoices

Last Run Status Shows "Error"

Problem: Job failed with an error message

Solution:

  1. Read the "Last Run Error" message carefully

  2. Common errors:        

    • "Posting Date must be applied": Your posting date formula is invalid

    • "Mandatory field missing": Check all date formulas are configured

    • "No subscription orders found": No subscriptions match your criteria

  3. Fix the issue and click "Run Now" to test

Job Never Runs Automatically

Problem: Manual "Run Now" works, but scheduled execution doesn't happen

Solution:

  1. Verify "Configure Job Queue" is checked

  2. Check "Job Queue Status" field:        

    • Must show "Ready" (not "On Hold")

    • If "On Hold", click "Open Job Queue Entry" and set Status to "Ready"

  3. Check "Earliest Start Time":        

    • If set, job won't run until that time

    • Try leaving blank to remove time restriction

  4. Verify "Run on Days" - today must be an enabled day

  5. Contact your BC administrator to verify Job Queue service is running

Date Formula Errors

Problem: Error message about invalid date formula

Solution:

  1. Date formulas must be enclosed in angle brackets: <1M>

  2. Check syntax:        

    • Numbers before letters: <1M> not <M1>

    • Valid units: D (day), W (week), M (month), Q (quarter), Y (year)

    • Valid modifiers: CM (current month), CW (current week), CY (current year)

  3. Use the example date to verify calculation

  4. See the Date Formula Guide for more examples


Understanding Date Formulas

Date formulas in Business Central use a special syntax to calculate dates dynamically. Here's a quick reference:

Basic Syntax

Format: <[+/-][number][unit][modifier]>

Examples:

  • <1M> - One month from today

  • <-1W> - One week ago

  • <0D> - Today

Units

  • D - Days

  • W - Weeks

  • M - Months

  • Q - Quarters

  • Y - Years

Modifiers

  • CM - Current Month end (goes to last day of month)

  • CW - Current Week end (goes to Sunday)

  • CQ - Current Quarter end

  • CY - Current Year end

Combining Formulas

You can add/subtract after a modifier:

  • <CM+1D> - Current month end + 1 day (= first day of next month)

  • <1M+CM> - Go forward 1 month, then to end of that month

  • <CW-1D> - Current week end - 1 day (= Saturday)

Testing Your Formulas

The "Example Date" fields on the setup page show you exactly what date will be calculated for each formula when you run the job today. Use these to verify your formulas are correct before enabling the job queue.


Updating Configuration

To Change Date Formulas or Schedule

  1. Modify the fields you want to change on the Job Queue Setup page

  2. Click "Create/Update Job Queue Parameters" button

  3. The existing job queue entry is updated with new parameters

✅ Important Benefits:    

  • Log entries are preserved when updating

  • Job queue status (Ready/On Hold) is not changed

  • Last run information remains intact

To Temporarily Pause

  1. Click "Open Job Queue Entry" button

  2. Change Status from "Ready" to "On Hold"

  3. Close the card

  4. To resume, set Status back to "Ready"

Alternative:

  • Uncheck "Configure Job Queue" checkbox

  • This automatically sets the job queue entry to "On Hold"

To Permanently Remove

  1. Click "Open Job Queue Entry" button

  2. Delete the job queue entry from the Job Queue Entry Card

  3. Last run information in Job Queue Setup is preserved


Best Practices

✅ Do's

  • Test first: Use "Run Now" to test before setting status to "Ready"

  • Enable properly: Remember to set Job Queue Entry status to "Ready" after configuration

  • Monitor regularly: Check "Last Run Status" daily for the first week

  • Use realistic schedules: Don't run more frequently than needed

  • Document your formulas: Keep notes on why you chose specific date formulas

  • Review created invoices: Spot-check automatically created invoices initially

  • Preserve logs: Use "Create/Update Job Queue Parameters" to update settings without losing log history

❌ Don'ts

  • Don't skip testing: Always test with "Run Now" before setting to "Ready"

  • Don't forget to enable: Job won't run until you set Status to "Ready" in Job Queue Entry Card

  • Don't use complex formulas: Keep formulas simple and understandable

  • Don't run too frequently: Running every few minutes wastes resources

  • Don't delete and recreate: Use "Create/Update" button to preserve log entries

  • Don't ignore errors: Address error messages promptly


Getting Help

Built-in Help

  • Tooltips: Hover over any field to see a description

  • Example Dates: Use these to verify your date formula calculations

  • Activity Log: Review detailed history of past executio

Contact Support

If you encounter issues not covered in this guide:

  1. Note the exact error message from "Last Run Error"

  2. Record your date formula configuration

  3. Include "Last Run Date Time" and "Invoices Created Last Run"

  4. Contact your Business Central administrator or support team