system.report.executeAndDistribute
This function is used in Python Scripting.
Description
Executes and distributes a report. Similar to scheduling a report to execute, except a schedule is not required to utilize this function. This is a great way to distribute the report on demand from a client.
The function system.report.executeAndDistribute() does not run on its own thread and can get blocked. For example, if a printer is backed up and it takes a while to finish the request made by this function, the script will block the execution of other things on that thread until it finishes. Be sure to keep this in mind when using it in a script.
Client Permission Restrictions
This scripting function has no Client Permission restrictions.
Syntax
This function accepts keyword arguments.
system.report.executeAndDistribute(path, project, [parameters], action, [actionSettings])
Parameters
Type | Parameter | Description |
---|---|---|
String | path | The path to the existing report. |
String | project | The name of the project where the report is located. Optional in Client scope. |
PyDictionary | parameters | A optional dictionary of parameter overrides, in the form name:value. |
String | action | The name of the distribution action to use. The action parameter supports the following keys as strings: |
PyDictionary | actionSettings | An optional dictionary of settings particular to the action. Missing values will use the default value for that action. |
Returns
None
Throws
IllegalArgumentException - Thrown when any of the following occurs: If the file type is not recognized, path does not exist, project does not exist, or a key is not valid.
Scope
All
Values for actionSettings
The action settings parameter supports an optional dictionary of settings particular to the action. Missing values will use the default value for that action.
- email
- Setting Keys: "smtpServerName", "from", "subject", "body", "attachmentName", "retries", "fileType", "to", "cc", "bcc", "replyTo", "useRoles", "roles", "userSource", "replyToRoles", "replyToUserSource".note
To
,cc
,bcc
, andreplyTo
must be Python lists. If useRoles is True,to
,cc
andbcc
will be ignored and all email addresses for all users matchingroles
inuserSource
(which defaults to the project's current user source) will be in the to field. Similarly, all users matching thereplyToRoles
inreplyToUserSource
will be in thereply
to field of the email. IfuseRoles
is true but noroles
are listed, all user email addresses inuserSource
will be in the to field. If omitted,fileType
defaults to pdf.New in 7.9.8The email action now has the ability to add emails to the reply to field of the email. The replyTo, replyToRoles, and replyToUserSource keys have been added to the possible dictionary options.
- Setting Keys: "smtpServerName", "from", "subject", "body", "attachmentName", "retries", "fileType", "to", "cc", "bcc", "replyTo", "useRoles", "roles", "userSource", "replyToRoles", "replyToUserSource".
- print
- Setting Keys: "primaryPrinterName", "backupPrinterName", "copies", "printBothSides", "collate", "useRaster", "rasterDPI", "useAutoLandscape", "pageOrientation". note
primaryPrinterName
defaults to the default printer.backupPrinterName
defaults to "none", but can also have the special value of "default".printBothSides
,collate
, anduseRaster
are booleans which default to false.rasterDPI
is only used ifuseRaster
is true.useAutoLandscape
defaults to true. IfuseAutoLandscape
is false,pageOrientation
, which can have values of "portrait" or "landscape" (default is "portrait"), is used.
- Setting Keys: "primaryPrinterName", "backupPrinterName", "copies", "printBothSides", "collate", "useRaster", "rasterDPI", "useAutoLandscape", "pageOrientation".
- save
- Setting Keys: "path", "fileName" and "format". note
Since the script is sent to the gateway for execution, path and fileName must be relative to the Gateway.
- Setting Keys: "path", "fileName" and "format".
- ftp
- Setting Keys: "server", "port", "username", "password", "useSSL", "path", "fileName", and "format". note
Server and fileName are required. If omitted, fileType defaults to pdf, port defaults to 21, and useSSL defaults to false.
- Setting Keys: "server", "port", "username", "password", "useSSL", "path", "fileName", and "format".
Values for filetype and format
The following is a list of values for the actionSettings filetype and format keys.
- html
- csv
- rtf
- jpeg
- png
- xml
Code Examples
# Executes and distributes the report to an email address.
system.report.executeAndDistribute(path="My Report Path", project="My Project", action= "email",
actionSettings = {"to":["plantmanager@myplant.com"], "smtpServerName":"myplantMailServer", "from":"reporting@myplant.com", "subject":"Production Report"})
# Executes and distributes the report to all users in the default user source who are Supervisors or Managers.
system.report.executeAndDistribute(path="My Report Path", project="My Project", action= "email",
actionSettings = {"useRoles":True, "roles":["Supervisor", "Manager"], "smtpServerName":"myplantMailServer", "from":"reporting@myplant.com", "subject":"Production Report"})
# Executes and distributes the report to an ftp server with parameter values passed into the report
reportParameters = {"startDate":system.date.addHours(system.date.now(), -12), "endDate":system.date.now()}
settings = {"server":"10.20.1.80", "port":22, "username":"Ignition", "password":"Secret", "useSSL": False, "path":"C:\\FTP", "fileName":"Ignition Report", "format":"pdf"}
system.report.executeAndDistribute(path="My Report Path", project="My Project", parameters=reportParameters, action= "ftp", actionSettings = settings)
# Executes and distributes the report to save a PDF
settings = {"path":"C:\\Ignition Reports", "fileName":"Report.pdf", "format":"pdf"}
system.report.executeAndDistribute(path="My Report Path", project="My Project", action="save", actionSettings=settings)