How do I setup a Dynamic Package Schedule for Crystal Reports in CRD?

Dynamic Package Schedules allow you to create packages of at least two reports which share a common key parameter. This allows you to create a package of reports to be delivered to a unique destination.

Dynamic Package for Crystal Reports

Dynamic Package Schedules allow you to create packages of at least two reports which share a common key parameter. This allows you to create a package of reports to be delivered to a unique destination.

Example: We will create a Dynamic Package to deliver the Marketing and Sales reports for clients and deliver this set to a unique destination.

How to Create a Dynamic Package Report for Crystal Reports?

  • Go to Dynamic Package.
Dynamic Package - CRD Home Screen
crd dynamic package general

General Wizard

  • Parent Location: The CRD folder where the package is stored.
  • Schedule Name: The name of the package.
  • Description: Add a Description to the schedule to better identify it.
  • Keyword (optional): Enter some keywords which can be used later by Smart Folders to identify this schedule.

Click Next to go to the next wizard section.

Schedule Wizard

crd dynamic package schedule

In this section, you will decide when the report will execute. There are a variety of options:

  • Daily: Run a report every day or at a frequency of days.
    • Sub options: Repeat every X Days.

Example: Run the schedule every 3 days.

crd single schedule daily
  • Weekly: Run a report on a weekly time frame.
    • Sub options: Repeat every X weeks.

Example: Run the schedule every 2 Weeks.

  • On: Select the specific days of the week the schedule will run. If only once a week,select only the day of the week it will run.

Example: Run every Monday, Wednesday, and Friday.

crd single schedule weekly
  • Week Days: Run the schedule Monday through Friday.
crd single schedule week days
  • Working Day: Run the schedule starting on a specific day of the month. Indicate which day of the month the schedule will run. E.G. run the schedule on the 4th working day of the month.
crd single schedule working day
  • Monthly: Run the schedule on a monthly time frame.
    • Use the following options: Checking this box will enable you to select frequency options such as the “last Thursday of the month.” Also you can include or exclude specific months from the schedule.
crd single schedule monthly
  • Annual: Run the schedule every year at a specified time.
crd single schedule annual
  • Custom Calendar: Select the custom Calendar you wish to use. You can create a new custom calendar from the menu as well. Please see Custom Calendars for more information.
crd single schedule custom calendar
  • Other: Other scheduling options.
    • Run Schedule every X Minutes, hours, days, weeks, months, years.
crd single schedule other-1
  • None: No scheduling is required for this item.
crd single schedule none
  • Destination: Select how you would like your report to be delivered. This will also determine some of the options that will show up later in the process. For example, if you select email, you will be asked for email address later.
  • Start Date: Enter the desired starting date for the schedule. This section can be the current date (providing schedule time has not already passed) or a date in the future.
  • End Date: If the schedule is due to end after a certain date enter that here. If the schedule is to run indefinitely, then leave it blank.
  • Schedule time: On the Next Run date, the package will run at this time.
  • Exception Calendar: Choose a calendar that will instruct the schedule to NOT run on those specified days. Please see Custom Calendars for more information.
  • Next to run on: The package will next run on this date.
  • Repeat Every: Rerun the package every x minutes from the scheduled time until your specified time.

For example, you can set up a daily package to run every day at 8 am, and to run every hour until 5 pm.

  • Until: After this date, there will be no automated scheduling of this package.
  • Enable this Schedule: Uncheck this option to Disable the package. Disabled packages are not deleted, but they do not execute automatically. You can re-start the automatic scheduling at a later date by checking this option again. Or right-clicking this schedule from the main screen and selecting Enable.

Click Next to continue to the next wizard section.

Reports Wizard

crd dynamic package reports

A package may be created with no constituent reports and then the reports can be added later. However, you may also add reports at this stage in the wizard - and amend, delete or add some more later.

  • Merge all PDF Files: Merge PDF outputs into a single PDF file. The reports will appear in the merged PDF in the order they are displayed in the package schedule. Checking this box will bring up additional PDF Options.
crd dd package output options
  • Merge all Excel Files: CRD will then merge all excel outputs in the package into a single excel file.
crd dynamic package output options excel
  • Run Package using Multiple threads: This allows up to 8 reports to be exported simultaneously.
  • Each report in the package can run concurrently.
  • See Multi-threading for more info.
  • Enable snapshots and keep them for (days): Keep a copy of the report for how many days.

System resources will be shared so this will not always mean that reports will take 1/4 the normal time.

Example: You have 4 reports. Each one takes 15 minutes to export. Using a single thread, it would take 1 hour to complete the export. Using multiple threads, you would expect it to take 15 minutes for all 4. However, the sharing of your system resources by 4 reports may result in each report taking longer than 15 minutes and the total time for 4 reports may be more than 15 minutes, but it will be less than an hour.

  • Click Add
  • Package Report Properties will appear.

Package Report Properties

Report Wizard

crd dynamic package report properties report
  • Report Location: Select the Crystal report that needs to be scheduled. A crystal report can only be added if the CRD server can reach the report path.
  • Report Name: Write in the name of the package.
  • Format: Select the output format for the report.

Parameters

crd dynamic package report properties parameters
  • In this section, you will determine the parameters for your report (if any) and select options for your subreport. If your report has no parameters, you may skip this section by clicking next.
  • There are 3 requirements in order for CRD to detect your Crystal Report parameters and their parameter values:
  1. The parameter must be in use in the report.
  2. The parameter must be visible.
  3. The parameter must be set to be prompted at runtime.
  • If these three requirements are achieved, you should see the parameters in your report listed on this screen.
  • For each parameter, select from the drop down list the value the report must use. In a single schedule, only one parameter value can be run at a time per parameter. You can type a value into the field as well.
  • Set as Null: Set no value for this parameter.
  • Ignore: Do not run this parameter, ignore it at runtime.
  • Insert Menu: You can insert constants, formulas and database field values instead of a static "typed in" value. Right-click in the parameters field to expose the Insert menu.

To enable a report parameter to run for a date constant (Current Date, Yesterday etc.), select CRD Constants from the insert window, then drag and drop your desired constant to the parameter field.

  • Selecting Date Parameters via Calendar: If your report contains a date parameter, you can either manually enter dates as described earlier in this topic, or select the desired date from the built in calendar. Simply click in the date parameter field to open the calendar. Select the desired date. Click OK.
  • If the parameter is also a time parameter, this can selected as well. The buttons below enable you to preview the report, adjust formulae, and review sub reports. You can re-query the report for parameters as well.
  • Formulae: View, edit and Parse the Record Selection Formulae.
  • Subreports: Set parameters, authenticate, and re-query sub report parameters.
  • Preview: Shows you a preview of the report.

The preview function only works if Crystal Reports is installed on the PC.

Naming

crd dynamic package report properties naming
  • Default Naming Convention: CRD will name the output file in the following format: reportname.format extension, e.g. Catalog Report.pdf.
  • Customize the output file name: Choose your own filename or right-click and use the Insert Function to insert a value.
  • Customize output extension: Choose your own extension. This is useful for system integration. For example, the default extension for a character separated file is "CSV," but you can give your export an extension of "txt" so that the file can be read by another already existing system you may have. You may also right-click and use the Insert Function to insert a value.
  • Append date/time: This is useful for the following reasons:
    • If the filename is the same each time, and it is being exported to the same folder each time, then it will be overwritten by the latest one each time. By appending date and time to the filename, each file remains unique, and no files are overwritten.
    • You can track which reports ran and when they ran by looking at what the report is named.

Report Options

crd dynamic package report properties report options
  • Database Login: If the database requires logon credentials, check this option and enter the required username and password. If credentials are not required, uncheck the option and continue as normal (default). All values are optional. You only need to enter a value if your database, security, networking or infrastructure require it.
  • DB Type: Select the type of Database.
  • Server Name: Enter the server name of the database.
  • DB Name: Enter the name of the database.
  • Credentials: Enter the User ID and Password for the Database. Clicking on the Advanced tab, you can set logins for each table.
  • Advanced: Enables you to specify credentials at the table level. Double click the table to set its login information.
  • Use data saved with the report: By default, CRD will always attempt to run the report using the very latest data in your database. If your report is saved "with data" and you want CRD to simply export the data in the report, then check this option.
  • Refresh the schedule: This refreshes the schedule before every execution.

Exception Handling

crd dynamic package report properties exception handling
  • Check if the Report is Blank: If a report is blank because it genuinely returned no data, recipients can misconstrue this as an error with the scheduler. This option allows you to identify genuine empty reports and instruct CRD on what to do with them.
  • Ignore the report and subsequent tasks: if the report is blank, do not send the report. The report will not be delivered to the destination. No custom tasks will be run.

Method

Crystal Reports: Package Report Properties in Dynamic Package Schedule Reports in CRD.
  • Select the Method that will determine whether a report is blank.
  • Native: CRD will check to see if the report returns any data. If not, the report is considered blank.
Crystal Reports: Package Report Properties in Dynamic Package Schedule Reports in CRD.
  • SQL Query: Select this option to use a user made query that will determine if the report is blank. If the query returns no results, the report is blank.
  • Click Build.
  • Get values from a database window will appear. For more information about Get values from database, click here.
crd get values from database

Actions

Crystal Reports: Package Report Properties in Dynamic Package Schedule Reports in CRD.
  • Select an action from the task list. This task will be executed in the event that a schedule is blank.
  • For more information about tasks, click here.

Tip: You can send a notification if a report is considered blank instead of sending the report. Simply select “check if a report is blank” then select “Ignore the report.” In the actions tab, select “Send Email” from the list. Compose your email and save.

  • Click OK.

Linking Wizard

crd dynamic package linking

  • In this section, you will determine the parameters for your report.
  • On the Linking tab, you will begin by selecting the report parameter that will hold the unique value being “looked up” by your database.
  • Populate with static data: This option would be chosen if you DO NOT want CRD to feed multiple parameters in to the report via database. Rather than dynamically populating the key parameter, all reports in the package will run for a specific parameter.
Crystal Reports: Parameters Values in CRD.
  • Populate key parameter with data from a database: This is the most common option for users creating dynamic schedules. CRD will use a query to automatically feed key parameter values into your report based on a table. Get values from database will appear.
crd get values from database

Notice that the field in the report and the column in the database can be different. Either way, the parameter values must match the values in your report.

In this Section we will establish a link between the key parameter values we have selected earlier, and the location of the corresponding destination information.

  • Use static destination for this dynamic schedule: This will export all your reports to a single destination e.g. a folder.
  • DSN Name: Drop down and select a DSN.

We strongly recommend System DSNs so that the DSN is visible to CRD even when the user associated with the DSN is logged off.

All communication to databases (including Access databases) is done through ODBC, so you must setup a system DSN to the database before you can use this facility.

When setting up DSNs we recommend (if possible) that you use Windows Authentication (Trusted Connection). This ensures that your username and password are not required to be stored in CRD (more secure) and overcomes a large number of security restrictions which Windows places on DSNs. When using Windows Authentication, make sure that the CRD NT service user (or background application service user) has full rights to the database otherwise, though you will connect when you are logged in, automated scheduling will fail if the Service user has not got rights to the database.

When setting up a DSN to a SQL server, you must ensure that the "Default Database" setting is set to the database you are connecting to (Windows defaults this to "Master").

  • UserID: Enter the User ID CRD should use to log on to the database.
  • Password: Enter the password associated with the above user.
  • Connect: Connect to the Database
  • Select the table name and the column in that table which matches the parameter value which you determined in the previous step.
  • Select the column in the table that holds the email address (or folder path or printer name) that corresponds to the above parameter value.

Advanced Functionality

  • To achieve the above advanced functions, select Advanced from the dropdown list shown below.
Crystal Reports: Linking Wizard in Dynamic Package Schedule Reports in CRD.

 

Crystal Reports: Advanced Query pop-up in CRD.
  • This functionality is for advanced users only.

The screen is structured in a standard format which will be familiar to database programmers and people who are familiar with SQL or boolean statements.

For more information on how to write SQL statements, please see your database administrator.

You can build your database query visually using the form provided, as shown above.

If you are fluent in SQL, you may wish to enter your SQL statement manually.

Click to see the advanced interface. Here we can add the extra limiting criteria. You can type directly in the "Edit Query" box and enter the SQL statement.

Click Next to continue to the next wizard section.

Destination Wizard

Under the Destinations tab, the destination that you chose previously under the Schedule section will now automatically pop-up. Secondly there is no ‘To’ address because this information is being retrieved from a database. The reason for this is because the destination type was defined in the previous step.

  • Use the Inserts Function to customize the email subject and body as desired. Simply drag and drop Dynamic Table Fields from your Inserts list.
  • Select the format for your report.
crd dynamic package destinations

Click Next to continue to the next wizard section.

Exception Handling Wizard

Crystal Reports: Exception Handling Wizard in Dynamic Package Schedule Reports in CRD.
  • Treat as “error” if not completed in X minutes: If a report takes longer than the specified amount of time to run, this option will treat the schedule as an error and follow the appropriate action. The “Auto-calculate” option instructs CRD automatically determine how long a schedule should take to run the report. If it takes longer than the calculated amount of time, then it is an error.

If manually determining the error timing, please double-check the run time of the report in order to get the correct time estimate.

  • On error, retry executing schedule every: If set to 0, CRD will deem the schedule as "Failed" the first time it encounters an error. The schedule will not run again until its next scheduled time. Change the value to tell CRD how many times you want it to retry running the report before declaring it as "Failed."
  • Override error email: Check this option if you want to specify an email address that receives the error alert when it fails. This overrides the default email specified in Options.
  • Check if the Report is Blank: If a report is blank because it genuinely returned no data, recipients can misconstrue this as an error with the scheduler. This option allows you to identify genuine empty reports and instruct CRD on what to do with them.
  • Ignore the report and subsequent tasks: If the report is blank, do not send the report. The report will not be delivered to the destination. No custom tasks will be run.

Method

Crystal Reports: Exception Handling Wizard in Dynamic Package Schedule Reports in CRD.
  • Select the Method that will determine whether a report is blank.
  • Native: CRD will check to see if the report returns any data. If not, the report is considered blank.
Crystal Reports: Exception Handling Wizard in Dynamic Package Schedule Reports in CRD.
  • SQL Query: Select this option to use a user made query that will determine if the report is blank. If the query returns no results, the report is blank.
  • Click Build.
  • Get values from a database window will appear. For more information about Get values from database, click here.
crd get values from database

Actions

Crystal Reports: Exception Handling Wizard in Dynamic Package Schedule Reports in CRD.
  • Select an action from the task list. This task will be executed in the event that a schedule is blank.
  • For more information about tasks, click here.

Tip: You can send a notification if a report is considered blank instead of sending the report. Simply select “check if a report is blank” then select “Ignore the report.” In the actions tab, select “Send Email” from the list. Compose your email and save.

Click Next to continue to the next wizard section.

Custom Tasks Wizard

crd dynamic package custom tasks
  • In the section you have the option of setting up custom tasks. Custom tasks are business process automation tools that can be auto triggered before or after a report runs.
  • For more information on Custom Tasks, click here.
  • Once for each generated report: Each task will be ran for each successfully generated report within the schedule.
  • Once for the entire schedule: Each task will be ran once when the schedule has completed successfully.
  • If you have no desire to add a Custom Task, you can click finish to complete the schedule.

Dynamic Package Schedule Context Menu

Crystal Reports: Dynamic Package Schedule Reports Context Menu in CRD.

Right-Click on a schedule to see the following actions:

  • Properties: Edit the schedule from here. Or you can just double click on the schedule.
  • Open: This will open the package and show its constituent reports.
Crystal Reports: Dynamic Package Schedule Reports Context Menu in CRD.
  • You can right-click on each of the constituent reports to see the context-sensitive menu shown in the picture above.
    • Enabled: Use this to enable or disable the constituent report.
    • Refresh: Pulls through changes to just that report which were made outside CRD.
    • Rename: Renames the selected report.
    • Preview: Generates a preview of the selected report.
    • Delete: Deletes the selected report from package.
    • Properties: Displays the configuration properties of just that report.
  • Add Report: Use this to add one or more reports to an existing package.
  • Copy: Use this to copy the schedule. Right-click in the "white space" of the folder you wish to copy it to and select Paste button.
  • Rename: Rename the package.
  • Enabled: Schedules are enabled when there is a check icon beside this option. To stop a schedule from running, or to "pause" it for a while, select this option to remove the check icon. Disabled schedules will not run until they are enabled again.
  • Refresh: When a schedule is first created, CRD caches (saves) a copy of the report. All executions of the schedule are performed using this copy. If you make changes to your master report, you must select this option in order to pull the changes into CRD.
  • Execute: This button will execute the schedule immediately. Note that the next run date and time is not moved on as a result of a manual execution. They only move on if the schedule is run automatically by one of the schedulers .
  • Delete: Selecting this option will delete the schedule.
  • Test Package: Use this option to test the schedule and export it to selected "test" destinations.
  • Split into Single Schedules: This will split all the constituent reports in the package into Single Report Schedules.

This process will automatically delete the package once the splitting process is completed.

  • Ad-Hoc Email to Recipients: Select this option to send an ad-hoc email to all recipients of this package. You can use this to alert recipients to a planned system outage, or any other useful information.
  • Create Shortcut: Use this option to create a shortcut you can save in any location on your PC. Execute the shortcut to execute the schedule in CRD.

Dynamic Package Report Schedule Properties

Crystal Reports: Dynamic Package Schedule Reports Context Menu in CRD.
  • To access your schedule properties, right click on a schedule and select properties.
  • Similar to the schedule wizard, you adjust settings to your schedule such as timing, error handling, or custom tasks.
  • General
Crystal Reports: Dynamic Package Schedule Reports Properties in CRD.
  • Schedule
crd dynamic package schedule
  • Reports
crd dynamic package reports
  • Destinations
crd dynamic package destinations
  • Exception Handling
Crystal Reports: Dynamic Package Schedule Reports Properties in CRD.
  • Tasks
crd dynamic package custom tasks
  • Linking
crd dynamic package linking
  • History: Review the schedule's history. Successes, failures, and other data is located here.
crd dynamic package history
  • Snapshots: A snapshot is a copy of each report a schedule or a package generates. Keeping snapshots enables you to resend past reports without generating them afresh - especially if the data has changed in the meantime.
    • Simply select the number of days to keep the snapshots.
crd dynamic package snapshots