DocumentGenerator

DocumentGenerator[template,timespec]

represents a document generator with template template to be evaluated on the schedule defined by timespec.

DocumentGenerator[template,driver,timespec]

takes parameters for filling the template from driver.

Details and Options

  • CloudDeploy[DocumentGenerator[]] sets up a document generator in the cloud. The generator periodically applies template, logs the results of the generation process, archives the generated document, and delivers it to any specified recipients.
  • Document generators can be controlled using functions applicable to scheduled tasks, like TaskSuspend and TaskResume. timespec follows the ScheduledTask specification and may be None.
  • The argument template can be a TemplateObject, notebook or template notebook, or a specification of the form File[] or CloudObject[] that contains any of these constructs.
  • The argument driver can be an Association, a pure function or a Wolfram Language script evaluating to an Association, a notebook setting the value of $CurrentBinding, or a CloudObject or File that contains any of these constructs.
  • If template contains template elements, the elements are filled from driver, or from template defaults if driver is not present.
  • Cloud objects and files are copied and bundled with the generator when the generator is deployed, unless the specified resources are qualified as Delayed. Delayed resources are used in place.
  • The following options can be given:
  • AutoRemoveFalseremove generator after last scheduled run
    DeliveryFunctionNonehow to deliver the generated document
    EpilogFunctionNonefunction evaluated after document generation
    GeneratorDescriptionNonetextual description of the generator
    GeneratorHistoryLengthInfinitynumber of generated documents to archive
    GeneratorOutputType"StaticPage"type of document to generate
    NotificationFunctionAutomatichow to provide status notifications
    PermissionsAutomaticpermissions settings for generated documents
    TimeZoneAutomatictime zone for scheduling
  • EpilogFunction may be a pure function, notebook, CloudObject, or File.
  • Common settings for GeneratorOutputType include:
  • "StaticPage"deployed web page
    "CDF"notebook served for download
    "PDF"PDF document
    "CloudCDF"cloud notebook
  • Note that the choice of output type places no restriction on delivery formats specified in DeliveryFunction.
  • In the cloud, the precise times at which documents are generated are typically determined by load-balancing requirements.
  • The minimum time between generator executions in the cloud is determined by cloud configuration and policies, and will typically be a certain fraction of an hour.

Examples

open allclose all

Basic Examples  (2)

Create a basic document generator:

Trigger the generator to run asynchronously using TaskExecute:

Delete the generator:

Create a parameterized document generator:

Trigger the generator to run asynchronously:

Delete the generator:

Generalizations & Extensions  (1)

Use scheduled task functions to control document generator scheduling and execution:

Halt scheduled executions:

Resume scheduled executions:

Delete the generator:

Options  (2)

DeliveryFunction  (1)

Deploy a generator that emails its creator a PDF of the generated document:

Trigger the generator to run asynchronously:

Delete the generator:

NotificationFunction  (1)

Notifications allow indicated parties to receive status messages on task evaluation. Deploy a generator that notifies multiple parties, but has no recipients:

Trigger the generator to run asynchronously:

Delete the generator:

Applications  (1)

Create a daily report of quiz scores. Simulate scores by sampling them from a NormalDistribution:

Deploy a generator that evaluates three times a week at 17:00 and compiles a report on the day's scores:

Trigger the generator to run synchronously:

Delete the generator:

Possible Issues  (1)

Qualifying a local File resource as Delayed results in a deployment error, since the resource will not be available in the cloud at evaluation time:

Neat Examples  (1)

Create a document generator that produces a daily report on the performance over the past days of the trucking industry stocks with the highest trading volumes on the previous day:

The generation time for this report will typically exceed the time limit for synchronous evaluations. Trigger the generator to run asynchronously:

Once the report is completed, output may be viewed at this cloud object:

Delete the generator:

Introduced in 2014
 (10.0)
 |
Updated in 2017
 (11.2)