Export Report
Exports a report created in IBM RPA Studio, according to the defined format.
Command availability: IBM RPA SaaS and IBM RPA on premises
Script syntax
IBM RPA's proprietary script language has a syntax similar to other programming languages. The script syntax defines the command's syntax in the script file. You can work with this syntax in RPA Studio's Script mode.
exportReport --format(ReportFormats) [--title(String)] [--author(String)] --watermark(ReportWatermark) --encoding(Nullable<EncodingType>) [--createrandomfile(Boolean)] --filepath(String) [--password(String)] --asset(String) [--automap(Boolean)] --mappings(String) --text(String) --textcolor(String) [--textfont(String)] --textsize(Numeric) --image(String) --transparency(Numeric) [--pagerange(String)] (String)=filepath (Numeric)=pagecount
Input parameters
The following table displays the list of input parameters available in this command. In the table, you can see the parameter name when working in RPA Studio's Script mode and its Designer mode equivalent label.
Designer mode label | Script mode name | Required | Accepted variable types | Description |
---|---|---|---|---|
Format | format |
Required |
ReportFormats |
Format in which the report will be generated. |
Title | title |
Optional |
Text |
Title of the exported report. |
Author | author |
Optional |
Text |
Name of the report's author. |
Watermark | watermark |
Only when Format is Html, Rtf, or Docx |
ReportWatermark |
Watermark present in the report. The command accepts the following types: Image, Text, or None. See the watermark parameter options for details. |
Encoding | encoding |
Only when Format is Text or Csv |
EncodingType |
Type of character encoding used. |
Create random file | createrandomfile |
Optional |
Boolean |
Enable it to create a report file at random. |
File path | filepath |
Only when Create random file is False |
Text |
Report file path. |
Password | password |
Optional |
Text |
Password to unlock the file for viewing. |
Asset | asset |
Required |
Text |
Asset that contains the report template to be used. |
Automap | automap |
Optional |
Boolean |
Enable it to map variables that have the same type as the report parameters. |
Mappings | mappings |
Only when Automap is False |
Text, Database connection |
Maps which variables will fill the report parameters. The Parameter field receives the report name and the Value field receives the variable with the value. Check the Example to have a context on how to use it. |
Text | text |
Only when Watermark is Text |
Text |
Text used as a watermark. |
Text color | textcolor |
Only when Watermark is Text |
Text |
Color of the text in hexadecimal format. |
Text font | textfont |
Optional |
Text |
Font type applied to the text. |
Text size | textsize |
Only when Watermark is Text |
Number |
Font size. |
Image | image |
Only when Watermark is Image |
Text, Image |
Image used as a watermark. |
Transparency | transparency |
Only when Watermark is Text or Image |
Number |
Degree of transparency of the watermark. |
Page range | pagerange |
Optional when Watermark is Text or Image |
Text |
Range of pages where the watermark appears. |
watermark
parameter options
The following table displays the options available for the watermark
input parameter. The table shows the options available when working in Script mode and the equivalent label in the Designer mode.
Designer mode label | Script mode name | Description |
---|---|---|
Image | image |
The watermark is an Image. |
Text | text |
The watermark is a Text. |
Output parameters
Designer mode label | Script mode name | Accepted variable types | Description |
---|---|---|---|
File path | filepath |
Text |
Return the path of the generated report. |
Page count | pagecount |
Number |
Return the amount of printed pages. |
Example
The following example creates a simple report using an SQL Server database as a data source. The report contains data about the clients of a coffee shop and is exported as a PDF file.
import --name report --type "File" --content 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxYdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXIgU2VyaWFsaXplclZlcnNpb249IjIzLjEuMy4wIiBSZWY9IjEiIENvbnRyb2xUeXBlPSJEZXZFeHByZXNzLlh0cmFSZXBvcnRzLlVJLlh0cmFSZXBvcnQsIERldkV4cHJlc3MuWHRyYVJlcG9ydHMudjIzLjEsIFZlcnNpb249MjMuMS4zLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YSIgTmFtZT0iUmVwb3J0MSIgUGFnZVdpZHRoPSI4NTAiIFBhZ2VIZWlnaHQ9IjExMDAiIFZlcnNpb249IjIzLjEiIERhdGFTb3VyY2U9IiNSZWYtMCIgRm9udD0iQXJpYWwsIDkuNzVwdCI+DQogIDxCYW5kcz4NCiAgICA8SXRlbTEgUmVmPSIyIiBDb250cm9sVHlwZT0iVG9wTWFyZ2luQmFuZCIgTmFtZT0iVG9wTWFyZ2luIiAvPg0KICAgIDxJdGVtMiBSZWY9IjMiIENvbnRyb2xUeXBlPSJCb3R0b21NYXJnaW5CYW5kIiBOYW1lPSJCb3R0b21NYXJnaW4iPg0KICAgICAgPENvbnRyb2xzPg0KICAgICAgICA8SXRlbTEgUmVmPSI0IiBDb250cm9sVHlwZT0iWFJQYWdlSW5mbyIgTmFtZT0icGFnZUluZm8xIiBQYWdlSW5mbz0iRGF0ZVRpbWUiIFNpemVGPSIzMjUsMjMiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJQYWdlSW5mbyIgLz4NCiAgICAgICAgPEl0ZW0yIFJlZj0iNSIgQ29udHJvbFR5cGU9IlhSUGFnZUluZm8iIE5hbWU9InBhZ2VJbmZvMiIgVGV4dEZvcm1hdFN0cmluZz0iUGFnZSB7MH0gb2YgezF9IiBUZXh0QWxpZ25tZW50PSJUb3BSaWdodCIgU2l6ZUY9IjMyNSwyMyIgTG9jYXRpb25GbG9hdD0iMzI1LDAiIFN0eWxlTmFtZT0iUGFnZUluZm8iIC8+DQogICAgICA8L0NvbnRyb2xzPg0KICAgIDwvSXRlbTI+DQogICAgPEl0ZW0zIFJlZj0iNiIgQ29udHJvbFR5cGU9IlJlcG9ydEhlYWRlckJhbmQiIE5hbWU9IlJlcG9ydEhlYWRlciIgSGVpZ2h0Rj0iNjAiPg0KICAgICAgPENvbnRyb2xzPg0KICAgICAgICA8SXRlbTEgUmVmPSI3IiBDb250cm9sVHlwZT0iWFJMYWJlbCIgTmFtZT0ibGFiZWwxIiBUZXh0PSJDbGllbnQgUmVwb3J0cyIgU2l6ZUY9IjY1MCwyNC4xOTQzMzQiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJUaXRsZSIgLz4NCiAgICAgIDwvQ29udHJvbHM+DQogICAgPC9JdGVtMz4NCiAgICA8SXRlbTQgUmVmPSI4IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsIiBIZWlnaHRGPSIwIiAvPg0KICAgIDxJdGVtNSBSZWY9IjkiIENvbnRyb2xUeXBlPSJEZXRhaWxSZXBvcnRCYW5kIiBOYW1lPSJEZXRhaWxSZXBvcnQiIExldmVsPSIwIiBEYXRhTWVtYmVyPSJjbGllbnRzIiBEYXRhU291cmNlPSIjUmVmLTAiPg0KICAgICAgPEJhbmRzPg0KICAgICAgICA8SXRlbTEgUmVmPSIxMCIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIxIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIxIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTEiIEZpZWxkTmFtZT0iZW1haWwiIC8+DQogICAgICAgICAgPC9Hcm91cEZpZWxkcz4NCiAgICAgICAgICA8Q29udHJvbHM+DQogICAgICAgICAgICA8SXRlbTEgUmVmPSIxMiIgQ29udHJvbFR5cGU9IlhSVGFibGUiIE5hbWU9InRhYmxlMSIgU2l6ZUY9IjY1MCwyNSIgTG9jYXRpb25GbG9hdD0iMCwyIj4NCiAgICAgICAgICAgICAgPFJvd3M+DQogICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTMiIENvbnRyb2xUeXBlPSJYUlRhYmxlUm93IiBOYW1lPSJ0YWJsZVJvdzEiIFdlaWdodD0iMSI+DQogICAgICAgICAgICAgICAgICA8Q2VsbHM+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMSBSZWY9IjE0IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDEiIFdlaWdodD0iMC4wNjcxNDY3MTc5NTE4NDc5NTYiIFRleHQ9IkVNQUlMIiBTdHlsZU5hbWU9Ikdyb3VwQ2FwdGlvbjIiIC8+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMiBSZWY9IjE1IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDIiIFdlaWdodD0iMC45MzI4NTMzNDY2MDQ1NjczMSIgU3R5bGVOYW1lPSJHcm91cERhdGEyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8RXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTYiIEV2ZW50TmFtZT0iQmVmb3JlUHJpbnQiIFByb3BlcnR5TmFtZT0iVGV4dCIgRXhwcmVzc2lvbj0iW2VtYWlsXSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8L0V4cHJlc3Npb25CaW5kaW5ncz4NCiAgICAgICAgICAgICAgICAgICAgPC9JdGVtMj4NCiAgICAgICAgICAgICAgICAgIDwvQ2VsbHM+DQogICAgICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICAgICAgPC9Sb3dzPg0KICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICA8L0NvbnRyb2xzPg0KICAgICAgICA8L0l0ZW0xPg0KICAgICAgICA8SXRlbTIgUmVmPSIxNyIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIyIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIyIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTgiIEZpZWxkTmFtZT0ibGFzdF9uYW1lIiAvPg0KICAgICAgICAgIDwvR3JvdXBGaWVsZHM+DQogICAgICAgICAgPENvbnRyb2xzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTkiIENvbnRyb2xUeXBlPSJYUlRhYmxlIiBOYW1lPSJ0YWJsZTIiIFNpemVGPSI2NTAsMjUiIExvY2F0aW9uRmxvYXQ9IjAsMiI+DQogICAgICAgICAgICAgIDxSb3dzPg0KICAgICAgICAgICAgICAgIDxJdGVtMSBSZWY9IjIwIiBDb250cm9sVHlwZT0iWFJUYWJsZVJvdyIgTmFtZT0idGFibGVSb3cyIiBXZWlnaHQ9IjEiPg0KICAgICAgICAgICAgICAgICAgPENlbGxzPg0KICAgICAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyMSIgQ29udHJvbFR5cGU9IlhSVGFibGVDZWxsIiBOYW1lPSJ0YWJsZUNlbGwzIiBXZWlnaHQ9IjEyMjYxMjcuMzc1IiBUZXh0PSJMQVNUIE5BTUUiIFN0eWxlTmFtZT0iR3JvdXBDYXB0aW9uMiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPEl0ZW0yIFJlZj0iMjIiIENvbnRyb2xUeXBlPSJYUlRhYmxlQ2VsbCIgTmFtZT0idGFibGVDZWxsNCIgV2VpZ2h0PSI5NDIzNDcyIiBTdHlsZU5hbWU9Ikdyb3VwRGF0YTIiPg0KICAgICAgICAgICAgICAgICAgICAgIDxFeHByZXNzaW9uQmluZGluZ3M+DQogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyMyIgRXZlbnROYW1lPSJCZWZvcmVQcmludCIgUHJvcGVydHlOYW1lPSJUZXh0IiBFeHByZXNzaW9uPSJbbGFzdF9uYW1lXSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8L0V4cHJlc3Npb25CaW5kaW5ncz4NCiAgICAgICAgICAgICAgICAgICAgPC9JdGVtMj4NCiAgICAgICAgICAgICAgICAgIDwvQ2VsbHM+DQogICAgICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICAgICAgPC9Sb3dzPg0KICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICA8L0NvbnRyb2xzPg0KICAgICAgICA8L0l0ZW0yPg0KICAgICAgICA8SXRlbTMgUmVmPSIyNCIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIzIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIzIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMjUiIEZpZWxkTmFtZT0iZmlyc3RfbmFtZSIgLz4NCiAgICAgICAgICA8L0dyb3VwRmllbGRzPg0KICAgICAgICAgIDxDb250cm9scz4NCiAgICAgICAgICAgIDxJdGVtMSBSZWY9IjI2IiBDb250cm9sVHlwZT0iWFJUYWJsZSIgTmFtZT0idGFibGUzIiBTaXplRj0iNjUwLDI1IiBMb2NhdGlvbkZsb2F0PSIwLDIiPg0KICAgICAgICAgICAgICA8Um93cz4NCiAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyNyIgQ29udHJvbFR5cGU9IlhSVGFibGVSb3ciIE5hbWU9InRhYmxlUm93MyIgV2VpZ2h0PSIxIj4NCiAgICAgICAgICAgICAgICAgIDxDZWxscz4NCiAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMjgiIENvbnRyb2xUeXBlPSJYUlRhYmxlQ2VsbCIgTmFtZT0idGFibGVDZWxsNSIgV2VpZ2h0PSIwLjEyMDAzMTMyNzQ2NzY5ODMyIiBUZXh0PSJGSVJTVCBOQU1FIiBTdHlsZU5hbWU9Ikdyb3VwQ2FwdGlvbjIiIC8+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMiBSZWY9IjI5IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDYiIFdlaWdodD0iMC44Nzk5Njg3MzEyMTk5NTE4OSIgU3R5bGVOYW1lPSJHcm91cERhdGEyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8RXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMzAiIEV2ZW50TmFtZT0iQmVmb3JlUHJpbnQiIFByb3BlcnR5TmFtZT0iVGV4dCIgRXhwcmVzc2lvbj0iW2ZpcnN0X25hbWVdIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDwvRXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0yPg0KICAgICAgICAgICAgICAgICAgPC9DZWxscz4NCiAgICAgICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgICAgICA8L1Jvd3M+DQogICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgIDwvQ29udHJvbHM+DQogICAgICAgIDwvSXRlbTM+DQogICAgICAgIDxJdGVtNCBSZWY9IjMxIiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMSIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgICAgPEl0ZW01IFJlZj0iMzIiIENvbnRyb2xUeXBlPSJHcm91cEZvb3RlckJhbmQiIE5hbWU9Ikdyb3VwRm9vdGVyMSIgR3JvdXBVbmlvbj0iV2l0aExhc3REZXRhaWwiIEhlaWdodEY9IjYiPg0KICAgICAgICAgIDxDb250cm9scz4NCiAgICAgICAgICAgIDxJdGVtMSBSZWY9IjMzIiBDb250cm9sVHlwZT0iWFJMYWJlbCIgTmFtZT0ibGFiZWwyIiBTaXplRj0iNjUwLDIuMDgiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJHcm91cEZvb3RlckJhY2tncm91bmQzIiBCb3JkZXJzPSJOb25lIj4NCiAgICAgICAgICAgICAgPFN0eWxlUHJpb3JpdHkgUmVmPSIzNCIgVXNlQm9yZGVycz0iZmFsc2UiIC8+DQogICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgIDwvQ29udHJvbHM+DQogICAgICAgIDwvSXRlbTU+DQogICAgICA8L0JhbmRzPg0KICAgIDwvSXRlbTU+DQogICAgPEl0ZW02IFJlZj0iMzUiIENvbnRyb2xUeXBlPSJEZXRhaWxSZXBvcnRCYW5kIiBOYW1lPSJEZXRhaWxSZXBvcnQxIiBMZXZlbD0iMSIgRGF0YU1lbWJlcj0ib3JkZXJfaXRlbXMiIERhdGFTb3VyY2U9IiNSZWYtMCI+DQogICAgICA8QmFuZHM+DQogICAgICAgIDxJdGVtMSBSZWY9IjM2IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMiIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgIDwvQmFuZHM+DQogICAgPC9JdGVtNj4NCiAgICA8SXRlbTcgUmVmPSIzNyIgQ29udHJvbFR5cGU9IkRldGFpbFJlcG9ydEJhbmQiIE5hbWU9IkRldGFpbFJlcG9ydDIiIExldmVsPSIyIiBEYXRhTWVtYmVyPSJvcmRlcnMiIERhdGFTb3VyY2U9IiNSZWYtMCI+DQogICAgICA8QmFuZHM+DQogICAgICAgIDxJdGVtMSBSZWY9IjM4IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMyIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgIDwvQmFuZHM+DQogICAgPC9JdGVtNz4NCiAgICA8SXRlbTggUmVmPSIzOSIgQ29udHJvbFR5cGU9IkRldGFpbFJlcG9ydEJhbmQiIE5hbWU9IkRldGFpbFJlcG9ydDMiIExldmVsPSIzIiBEYXRhTWVtYmVyPSJwcm9kdWN0cyIgRGF0YVNvdXJjZT0iI1JlZi0wIj4NCiAgICAgIDxCYW5kcz4NCiAgICAgICAgPEl0ZW0xIFJlZj0iNDAiIENvbnRyb2xUeXBlPSJEZXRhaWxCYW5kIiBOYW1lPSJEZXRhaWw0IiBIZWlnaHRGPSIwIiAvPg0KICAgICAgPC9CYW5kcz4NCiAgICA8L0l0ZW04Pg0KICA8L0JhbmRzPg0KICA8U3R5bGVTaGVldD4NCiAgICA8SXRlbTEgUmVmPSI0MSIgTmFtZT0iVGl0bGUiIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiw2LDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCAxNC4yNXB0IiBGb3JlQ29sb3I9IjI1NSw3NSw3NSw3NSIgQmFja0NvbG9yPSJUcmFuc3BhcmVudCIgQm9yZGVyQ29sb3I9IkJsYWNrIiBTaWRlcz0iTm9uZSIgU3RyaW5nRm9ybWF0PSJOZWFyO05lYXI7MDtOb25lO0NoYXJhY3RlcjtHZW5lcmljRGVmYXVsdCIgQm9yZGVyV2lkdGhTZXJpYWxpemFibGU9IjEiIC8+DQogICAgPEl0ZW0yIFJlZj0iNDIiIE5hbWU9Ikdyb3VwQ2FwdGlvbjIiIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiwyLDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCA4LjI1cHQsIHN0eWxlPUJvbGQiIEZvcmVDb2xvcj0iMjU1LDIyOCwyMjgsMjI4IiBCYWNrQ29sb3I9IjI1NSwxMTEsMTExLDExMSIgQm9yZGVyQ29sb3I9IldoaXRlIiBTaWRlcz0iQm90dG9tIiBTdHJpbmdGb3JtYXQ9Ik5lYXI7Q2VudGVyOzA7Tm9uZTtDaGFyYWN0ZXI7R2VuZXJpY0RlZmF1bHQiIFRleHRBbGlnbm1lbnQ9Ik1pZGRsZUxlZnQiIEJvcmRlcldpZHRoU2VyaWFsaXphYmxlPSIyIiAvPg0KICAgIDxJdGVtMyBSZWY9IjQzIiBOYW1lPSJHcm91cERhdGEyIiBCb3JkZXJTdHlsZT0iSW5zZXQiIFBhZGRpbmc9IjYsMiwwLDAsMTAwIiBGb250PSJBcmlhbCwgOC4yNXB0LCBzdHlsZT1Cb2xkIiBGb3JlQ29sb3I9IldoaXRlIiBCYWNrQ29sb3I9IjI1NSwxMTEsMTExLDExMSIgQm9yZGVyQ29sb3I9IldoaXRlIiBTaWRlcz0iQm90dG9tIiBTdHJpbmdGb3JtYXQ9Ik5lYXI7Q2VudGVyOzA7Tm9uZTtDaGFyYWN0ZXI7R2VuZXJpY0RlZmF1bHQiIFRleHRBbGlnbm1lbnQ9Ik1pZGRsZUxlZnQiIEJvcmRlcldpZHRoU2VyaWFsaXphYmxlPSIyIiAvPg0KICAgIDxJdGVtNCBSZWY9IjQ0IiBOYW1lPSJHcm91cEZvb3RlckJhY2tncm91bmQzIiBCb3JkZXJTdHlsZT0iSW5zZXQiIFBhZGRpbmc9IjYsMiwwLDAsMTAwIiBGb250PSJBcmlhbCwgOC4yNXB0LCBzdHlsZT1Cb2xkIiBGb3JlQ29sb3I9IjI1NSwyMjgsMjI4LDIyOCIgQmFja0NvbG9yPSIyNTUsMTMxLDEzMSwxMzEiIEJvcmRlckNvbG9yPSJXaGl0ZSIgU2lkZXM9IkJvdHRvbSIgU3RyaW5nRm9ybWF0PSJOZWFyO0NlbnRlcjswO05vbmU7Q2hhcmFjdGVyO0dlbmVyaWNEZWZhdWx0IiBUZXh0QWxpZ25tZW50PSJNaWRkbGVMZWZ0IiBCb3JkZXJXaWR0aFNlcmlhbGl6YWJsZT0iMiIgLz4NCiAgICA8SXRlbTUgUmVmPSI0NSIgTmFtZT0iUGFnZUluZm8iIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiw2LDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCA4LjI1cHQsIHN0eWxlPUJvbGQiIEZvcmVDb2xvcj0iMjU1LDc1LDc1LDc1IiBTdHJpbmdGb3JtYXQ9Ik5lYXI7TmVhcjswO05vbmU7Q2hhcmFjdGVyO0dlbmVyaWNEZWZhdWx0IiAvPg0KICA8L1N0eWxlU2hlZXQ+DQogIDxDb21wb25lbnRTdG9yYWdlPg0KICAgIDxJdGVtMSBSZWY9IjAiIE9iamVjdFR5cGU9IkRldkV4cHJlc3MuRGF0YUFjY2Vzcy5TcWwuU3FsRGF0YVNvdXJjZSxEZXZFeHByZXNzLkRhdGFBY2Nlc3MudjIzLjEiIE5hbWU9InNxbERhdGFTb3VyY2UiIEJhc2U2ND0iUEZOeGJFUmhkR0ZUYjNWeVkyVWdUbUZ0WlQwaWMzRnNSR0YwWVZOdmRYSmpaU0krUEVOdmJtNWxZM1JwYjI0Z1RtRnRaVDBpWTJ4cFpXNTBjeUlnVUhKdmRtbGtaWEpMWlhrOUlsTlJUR2wwWlNJK1BGQmhjbUZ0WlhSbGNuTStQRkJoY21GdFpYUmxjaUJPWVcxbFBTSmtZWFJoWW1GelpTSWdWbUZzZFdVOUlrTTZYRlZ6WlhKelhGY3dNREF6T0RZek1WeEVaWE5yZEc5d1hHTnNhV1Z1ZEhNdVpHSWlJQzgrUEZCaGNtRnRaWFJsY2lCT1lXMWxQU0p5WldGa0lHOXViSGtpSUZaaGJIVmxQU0l4SWlBdlBqeFFZWEpoYldWMFpYSWdUbUZ0WlQwaVoyVnVaWEpoZEdWRGIyNXVaV04wYVc5dVNHVnNjR1Z5SWlCV1lXeDFaVDBpWm1Gc2MyVWlJQzgrUEM5UVlYSmhiV1YwWlhKelBqd3ZRMjl1Ym1WamRHbHZiajQ4VVhWbGNua2dWSGx3WlQwaVUyVnNaV04wVVhWbGNua2lJRTVoYldVOUltTnNhV1Z1ZEhNaVBqeFVZV0pzWlhNK1BGUmhZbXhsSUU1aGJXVTlJbU5zYVdWdWRITWlJQzgrUEM5VVlXSnNaWE0rUEVOdmJIVnRibk0rUEVOdmJIVnRiaUJVWVdKc1pUMGlZMnhwWlc1MGN5SWdUbUZ0WlQwaVkyeHBaVzUwWDJsa0lpQXZQanhEYjJ4MWJXNGdWR0ZpYkdVOUltTnNhV1Z1ZEhNaUlFNWhiV1U5SW1acGNuTjBYMjVoYldVaUlDOCtQRU52YkhWdGJpQlVZV0pzWlQwaVkyeHBaVzUwY3lJZ1RtRnRaVDBpYkdGemRGOXVZVzFsSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW1Oc2FXVnVkSE1pSUU1aGJXVTlJbVZ0WVdsc0lpQXZQand2UTI5c2RXMXVjejQ4TDFGMVpYSjVQanhSZFdWeWVTQlVlWEJsUFNKVFpXeGxZM1JSZFdWeWVTSWdUbUZ0WlQwaWIzSmtaWEpmYVhSbGJYTWlQanhVWVdKc1pYTStQRlJoWW14bElFNWhiV1U5SW05eVpHVnlYMmwwWlcxeklpQXZQand2VkdGaWJHVnpQanhEYjJ4MWJXNXpQanhEYjJ4MWJXNGdWR0ZpYkdVOUltOXlaR1Z5WDJsMFpXMXpJaUJPWVcxbFBTSnZjbVJsY2w5cGRHVnRYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW05eVpHVnlYMmwwWlcxeklpQk9ZVzFsUFNKdmNtUmxjbDlwWkNJZ0x6NDhRMjlzZFcxdUlGUmhZbXhsUFNKdmNtUmxjbDlwZEdWdGN5SWdUbUZ0WlQwaWNISnZaSFZqZEY5cFpDSWdMejQ4UTI5c2RXMXVJRlJoWW14bFBTSnZjbVJsY2w5cGRHVnRjeUlnVG1GdFpUMGljWFZoYm5ScGRIa2lJQzgrUEM5RGIyeDFiVzV6UGp3dlVYVmxjbmsrUEZGMVpYSjVJRlI1Y0dVOUlsTmxiR1ZqZEZGMVpYSjVJaUJPWVcxbFBTSnZjbVJsY25NaVBqeFVZV0pzWlhNK1BGUmhZbXhsSUU1aGJXVTlJbTl5WkdWeWN5SWdMejQ4TDFSaFlteGxjejQ4UTI5c2RXMXVjejQ4UTI5c2RXMXVJRlJoWW14bFBTSnZjbVJsY25NaUlFNWhiV1U5SW05eVpHVnlYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW05eVpHVnljeUlnVG1GdFpUMGlZMnhwWlc1MFgybGtJaUF2UGp3dlEyOXNkVzF1Y3o0OEwxRjFaWEo1UGp4UmRXVnllU0JVZVhCbFBTSlRaV3hsWTNSUmRXVnllU0lnVG1GdFpUMGljSEp2WkhWamRITWlQanhVWVdKc1pYTStQRlJoWW14bElFNWhiV1U5SW5CeWIyUjFZM1J6SWlBdlBqd3ZWR0ZpYkdWelBqeERiMngxYlc1elBqeERiMngxYlc0Z1ZHRmliR1U5SW5CeWIyUjFZM1J6SWlCT1lXMWxQU0p3Y205a2RXTjBYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW5CeWIyUjFZM1J6SWlCT1lXMWxQU0p1WVcxbElpQXZQanhEYjJ4MWJXNGdWR0ZpYkdVOUluQnliMlIxWTNSeklpQk9ZVzFsUFNKd2NtbGpaU0lnTHo0OEwwTnZiSFZ0Ym5NK1BDOVJkV1Z5ZVQ0OFVtVnpkV3gwVTJOb1pXMWhQanhFWVhSaFUyVjBJRTVoYldVOUluTnhiRVJoZEdGVGIzVnlZMlVpUGp4V2FXVjNJRTVoYldVOUltTnNhV1Z1ZEhNaVBqeEdhV1ZzWkNCT1lXMWxQU0pqYkdsbGJuUmZhV1FpSUZSNWNHVTlJa2x1ZERZMElpQXZQanhHYVdWc1pDQk9ZVzFsUFNKbWFYSnpkRjl1WVcxbElpQlVlWEJsUFNKVGRISnBibWNpSUM4K1BFWnBaV3hrSUU1aGJXVTlJbXhoYzNSZmJtRnRaU0lnVkhsd1pUMGlVM1J5YVc1bklpQXZQanhHYVdWc1pDQk9ZVzFsUFNKbGJXRnBiQ0lnVkhsd1pUMGlVM1J5YVc1bklpQXZQand2Vm1sbGR6NDhWbWxsZHlCT1lXMWxQU0p2Y21SbGNsOXBkR1Z0Y3lJK1BFWnBaV3hrSUU1aGJXVTlJbTl5WkdWeVgybDBaVzFmYVdRaUlGUjVjR1U5SWtsdWREWTBJaUF2UGp4R2FXVnNaQ0JPWVcxbFBTSnZjbVJsY2w5cFpDSWdWSGx3WlQwaVNXNTBOalFpSUM4K1BFWnBaV3hrSUU1aGJXVTlJbkJ5YjJSMVkzUmZhV1FpSUZSNWNHVTlJa2x1ZERZMElpQXZQanhHYVdWc1pDQk9ZVzFsUFNKeGRXRnVkR2wwZVNJZ1ZIbHdaVDBpU1c1ME5qUWlJQzgrUEM5V2FXVjNQanhXYVdWM0lFNWhiV1U5SW05eVpHVnljeUkrUEVacFpXeGtJRTVoYldVOUltOXlaR1Z5WDJsa0lpQlVlWEJsUFNKSmJuUTJOQ0lnTHo0OFJtbGxiR1FnVG1GdFpUMGlZMnhwWlc1MFgybGtJaUJVZVhCbFBTSkpiblEyTkNJZ0x6NDhMMVpwWlhjK1BGWnBaWGNnVG1GdFpUMGljSEp2WkhWamRITWlQanhHYVdWc1pDQk9ZVzFsUFNKd2NtOWtkV04wWDJsa0lpQlVlWEJsUFNKSmJuUTJOQ0lnTHo0OFJtbGxiR1FnVG1GdFpUMGlibUZ0WlNJZ1ZIbHdaVDBpVTNSeWFXNW5JaUF2UGp4R2FXVnNaQ0JPWVcxbFBTSndjbWxqWlNJZ1ZIbHdaVDBpUkc5MVlteGxJaUF2UGp3dlZtbGxkejQ4TDBSaGRHRlRaWFErUEM5U1pYTjFiSFJUWTJobGJXRStQRU52Ym01bFkzUnBiMjVQY0hScGIyNXpJRU5zYjNObFEyOXVibVZqZEdsdmJqMGlkSEoxWlNJZ0x6NDhMMU54YkVSaGRHRlRiM1Z5WTJVKyIgLz4NCiAgPC9Db21wb25lbnRTdG9yYWdlPg0KPC9YdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXI+ --extension ".repx"
defVar --name databaseConnection --type DbConnection --output
defVar --name hasResult --type Boolean
defVar --name path --type String
defVar --name result --type String
defVar --name connectionString --type String
getSpecialFolder --folder "Desktop" path=value
setVar --name "${connectionString}" --value "Server=(localdb)\\mssqllocaldb;Database=automation;User Id=<user>;Password=<pass>;"
sqlServerConnect --connectionstring "${connectionString}"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS clients (client_id INTEGER PRIMARY KEY AUTOINCREMENT,first_name TEXT NOT NULL,last_name TEXT NOT NULL,email TEXT NOT NULL);"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS products (product_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,price REAL NOT NULL);"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS orders (order_id INTEGER PRIMARY KEY AUTOINCREMENT,client_id INTEGER,FOREIGN KEY(client_id) REFERENCES clients(client_id));"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS order_items (order_item_id INTEGER PRIMARY KEY AUTOINCREMENT,order_id INTEGER,product_id INTEGER NOT NULL,quantity INTEGER NOT NULL,FOREIGN KEY(order_id) REFERENCES orders(order_id),FOREIGN KEY(product_id) REFERENCES products(product_id));"
sqlExecuteScalar --connection ${databaseConnection} --statement "SELECT COUNT(*) FROM orders;" result=value hasResult=hasresult
if --left "${hasResult}" --operator "Is_True" --negate
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO clients (first_name, last_name, email)\r\nVALUES\r\n(\'John\', \'Doe\', \'john.doe@example.com\'),\r\n(\'Jane\', \'Doe\', \'jane.doe@example.com\'),\r\n(\'Peter\', \'Parker\', \'peter.parker@example.com\'),\r\n(\'Bruce\', \'Wayne\', \'bruce.wayne@example.com\'),\r\n(\'Clark\', \'Kent\', \'clark.kent@example.com\');"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO products (name, price)\r\nVALUES\r\n(\'Espresso\', 3.99),\r\n(\'Latte\', 4.99),\r\n(\'Capuccino\', 5.99),\r\n(\'Macchiato\', 4.50),\r\n(\'Americano\', 3.50),\r\n(\'Iced coffee\', 4.50),\r\n(\'Cold brew coffee\', 5.00),\r\n(\'Frappuccino\', 6.00),\r\n(\'Mocha\', 5.50),\r\n(\'White chocolate mocha\', 6.00);"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO orders (client_id)\r\nVALUES\r\n(1),\r\n(2),\r\n(3),\r\n(4),\r\n(5);"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO order_items (order_id, product_id, quantity)\r\nVALUES\r\n(1, 1, 2),\r\n(1, 2, 1),\r\n(2, 3, 3),\r\n(2, 4, 1),\r\n(3, 5, 2),\r\n(3, 6, 1),\r\n(4, 7, 3),\r\n(4, 8, 1),\r\n(5, 9, 2),\r\n(5, 10, 1);"
endIf
exportReport --format "Pdf" --watermark "None" --filepath "${path}\\myReport.pdf" --asset "${asset.report}" --automap
Server=(localdb)\\mssqllocaldb;Database=automation;User Id=<user>;Password=<pass>
with a valid
connection string.If you use a database as a data source and you want to map variables individually, check the name of the database variable under the Properties tab in the Report view in IBM RPA Studio. By default, the database variable is named
sqlDataSource
. The previous script with manually mapped parameters looks as follows:
import --name report --type "File" --content 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxYdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXIgU2VyaWFsaXplclZlcnNpb249IjIzLjEuMy4wIiBSZWY9IjEiIENvbnRyb2xUeXBlPSJEZXZFeHByZXNzLlh0cmFSZXBvcnRzLlVJLlh0cmFSZXBvcnQsIERldkV4cHJlc3MuWHRyYVJlcG9ydHMudjIzLjEsIFZlcnNpb249MjMuMS4zLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YSIgTmFtZT0iUmVwb3J0MSIgUGFnZVdpZHRoPSI4NTAiIFBhZ2VIZWlnaHQ9IjExMDAiIFZlcnNpb249IjIzLjEiIERhdGFTb3VyY2U9IiNSZWYtMCIgRm9udD0iQXJpYWwsIDkuNzVwdCI+DQogIDxCYW5kcz4NCiAgICA8SXRlbTEgUmVmPSIyIiBDb250cm9sVHlwZT0iVG9wTWFyZ2luQmFuZCIgTmFtZT0iVG9wTWFyZ2luIiAvPg0KICAgIDxJdGVtMiBSZWY9IjMiIENvbnRyb2xUeXBlPSJCb3R0b21NYXJnaW5CYW5kIiBOYW1lPSJCb3R0b21NYXJnaW4iPg0KICAgICAgPENvbnRyb2xzPg0KICAgICAgICA8SXRlbTEgUmVmPSI0IiBDb250cm9sVHlwZT0iWFJQYWdlSW5mbyIgTmFtZT0icGFnZUluZm8xIiBQYWdlSW5mbz0iRGF0ZVRpbWUiIFNpemVGPSIzMjUsMjMiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJQYWdlSW5mbyIgLz4NCiAgICAgICAgPEl0ZW0yIFJlZj0iNSIgQ29udHJvbFR5cGU9IlhSUGFnZUluZm8iIE5hbWU9InBhZ2VJbmZvMiIgVGV4dEZvcm1hdFN0cmluZz0iUGFnZSB7MH0gb2YgezF9IiBUZXh0QWxpZ25tZW50PSJUb3BSaWdodCIgU2l6ZUY9IjMyNSwyMyIgTG9jYXRpb25GbG9hdD0iMzI1LDAiIFN0eWxlTmFtZT0iUGFnZUluZm8iIC8+DQogICAgICA8L0NvbnRyb2xzPg0KICAgIDwvSXRlbTI+DQogICAgPEl0ZW0zIFJlZj0iNiIgQ29udHJvbFR5cGU9IlJlcG9ydEhlYWRlckJhbmQiIE5hbWU9IlJlcG9ydEhlYWRlciIgSGVpZ2h0Rj0iNjAiPg0KICAgICAgPENvbnRyb2xzPg0KICAgICAgICA8SXRlbTEgUmVmPSI3IiBDb250cm9sVHlwZT0iWFJMYWJlbCIgTmFtZT0ibGFiZWwxIiBUZXh0PSJDbGllbnQgUmVwb3J0cyIgU2l6ZUY9IjY1MCwyNC4xOTQzMzQiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJUaXRsZSIgLz4NCiAgICAgIDwvQ29udHJvbHM+DQogICAgPC9JdGVtMz4NCiAgICA8SXRlbTQgUmVmPSI4IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsIiBIZWlnaHRGPSIwIiAvPg0KICAgIDxJdGVtNSBSZWY9IjkiIENvbnRyb2xUeXBlPSJEZXRhaWxSZXBvcnRCYW5kIiBOYW1lPSJEZXRhaWxSZXBvcnQiIExldmVsPSIwIiBEYXRhTWVtYmVyPSJjbGllbnRzIiBEYXRhU291cmNlPSIjUmVmLTAiPg0KICAgICAgPEJhbmRzPg0KICAgICAgICA8SXRlbTEgUmVmPSIxMCIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIxIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIxIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTEiIEZpZWxkTmFtZT0iZW1haWwiIC8+DQogICAgICAgICAgPC9Hcm91cEZpZWxkcz4NCiAgICAgICAgICA8Q29udHJvbHM+DQogICAgICAgICAgICA8SXRlbTEgUmVmPSIxMiIgQ29udHJvbFR5cGU9IlhSVGFibGUiIE5hbWU9InRhYmxlMSIgU2l6ZUY9IjY1MCwyNSIgTG9jYXRpb25GbG9hdD0iMCwyIj4NCiAgICAgICAgICAgICAgPFJvd3M+DQogICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTMiIENvbnRyb2xUeXBlPSJYUlRhYmxlUm93IiBOYW1lPSJ0YWJsZVJvdzEiIFdlaWdodD0iMSI+DQogICAgICAgICAgICAgICAgICA8Q2VsbHM+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMSBSZWY9IjE0IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDEiIFdlaWdodD0iMC4wNjcxNDY3MTc5NTE4NDc5NTYiIFRleHQ9IkVNQUlMIiBTdHlsZU5hbWU9Ikdyb3VwQ2FwdGlvbjIiIC8+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMiBSZWY9IjE1IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDIiIFdlaWdodD0iMC45MzI4NTMzNDY2MDQ1NjczMSIgU3R5bGVOYW1lPSJHcm91cERhdGEyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8RXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTYiIEV2ZW50TmFtZT0iQmVmb3JlUHJpbnQiIFByb3BlcnR5TmFtZT0iVGV4dCIgRXhwcmVzc2lvbj0iW2VtYWlsXSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8L0V4cHJlc3Npb25CaW5kaW5ncz4NCiAgICAgICAgICAgICAgICAgICAgPC9JdGVtMj4NCiAgICAgICAgICAgICAgICAgIDwvQ2VsbHM+DQogICAgICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICAgICAgPC9Sb3dzPg0KICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICA8L0NvbnRyb2xzPg0KICAgICAgICA8L0l0ZW0xPg0KICAgICAgICA8SXRlbTIgUmVmPSIxNyIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIyIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIyIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTgiIEZpZWxkTmFtZT0ibGFzdF9uYW1lIiAvPg0KICAgICAgICAgIDwvR3JvdXBGaWVsZHM+DQogICAgICAgICAgPENvbnRyb2xzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMTkiIENvbnRyb2xUeXBlPSJYUlRhYmxlIiBOYW1lPSJ0YWJsZTIiIFNpemVGPSI2NTAsMjUiIExvY2F0aW9uRmxvYXQ9IjAsMiI+DQogICAgICAgICAgICAgIDxSb3dzPg0KICAgICAgICAgICAgICAgIDxJdGVtMSBSZWY9IjIwIiBDb250cm9sVHlwZT0iWFJUYWJsZVJvdyIgTmFtZT0idGFibGVSb3cyIiBXZWlnaHQ9IjEiPg0KICAgICAgICAgICAgICAgICAgPENlbGxzPg0KICAgICAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyMSIgQ29udHJvbFR5cGU9IlhSVGFibGVDZWxsIiBOYW1lPSJ0YWJsZUNlbGwzIiBXZWlnaHQ9IjEyMjYxMjcuMzc1IiBUZXh0PSJMQVNUIE5BTUUiIFN0eWxlTmFtZT0iR3JvdXBDYXB0aW9uMiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPEl0ZW0yIFJlZj0iMjIiIENvbnRyb2xUeXBlPSJYUlRhYmxlQ2VsbCIgTmFtZT0idGFibGVDZWxsNCIgV2VpZ2h0PSI5NDIzNDcyIiBTdHlsZU5hbWU9Ikdyb3VwRGF0YTIiPg0KICAgICAgICAgICAgICAgICAgICAgIDxFeHByZXNzaW9uQmluZGluZ3M+DQogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyMyIgRXZlbnROYW1lPSJCZWZvcmVQcmludCIgUHJvcGVydHlOYW1lPSJUZXh0IiBFeHByZXNzaW9uPSJbbGFzdF9uYW1lXSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8L0V4cHJlc3Npb25CaW5kaW5ncz4NCiAgICAgICAgICAgICAgICAgICAgPC9JdGVtMj4NCiAgICAgICAgICAgICAgICAgIDwvQ2VsbHM+DQogICAgICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICAgICAgPC9Sb3dzPg0KICAgICAgICAgICAgPC9JdGVtMT4NCiAgICAgICAgICA8L0NvbnRyb2xzPg0KICAgICAgICA8L0l0ZW0yPg0KICAgICAgICA8SXRlbTMgUmVmPSIyNCIgQ29udHJvbFR5cGU9Ikdyb3VwSGVhZGVyQmFuZCIgTmFtZT0iR3JvdXBIZWFkZXIzIiBHcm91cFVuaW9uPSJXaXRoRmlyc3REZXRhaWwiIExldmVsPSIzIiBIZWlnaHRGPSIyNyI+DQogICAgICAgICAgPEdyb3VwRmllbGRzPg0KICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMjUiIEZpZWxkTmFtZT0iZmlyc3RfbmFtZSIgLz4NCiAgICAgICAgICA8L0dyb3VwRmllbGRzPg0KICAgICAgICAgIDxDb250cm9scz4NCiAgICAgICAgICAgIDxJdGVtMSBSZWY9IjI2IiBDb250cm9sVHlwZT0iWFJUYWJsZSIgTmFtZT0idGFibGUzIiBTaXplRj0iNjUwLDI1IiBMb2NhdGlvbkZsb2F0PSIwLDIiPg0KICAgICAgICAgICAgICA8Um93cz4NCiAgICAgICAgICAgICAgICA8SXRlbTEgUmVmPSIyNyIgQ29udHJvbFR5cGU9IlhSVGFibGVSb3ciIE5hbWU9InRhYmxlUm93MyIgV2VpZ2h0PSIxIj4NCiAgICAgICAgICAgICAgICAgIDxDZWxscz4NCiAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMjgiIENvbnRyb2xUeXBlPSJYUlRhYmxlQ2VsbCIgTmFtZT0idGFibGVDZWxsNSIgV2VpZ2h0PSIwLjEyMDAzMTMyNzQ2NzY5ODMyIiBUZXh0PSJGSVJTVCBOQU1FIiBTdHlsZU5hbWU9Ikdyb3VwQ2FwdGlvbjIiIC8+DQogICAgICAgICAgICAgICAgICAgIDxJdGVtMiBSZWY9IjI5IiBDb250cm9sVHlwZT0iWFJUYWJsZUNlbGwiIE5hbWU9InRhYmxlQ2VsbDYiIFdlaWdodD0iMC44Nzk5Njg3MzEyMTk5NTE4OSIgU3R5bGVOYW1lPSJHcm91cERhdGEyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8RXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0xIFJlZj0iMzAiIEV2ZW50TmFtZT0iQmVmb3JlUHJpbnQiIFByb3BlcnR5TmFtZT0iVGV4dCIgRXhwcmVzc2lvbj0iW2ZpcnN0X25hbWVdIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDwvRXhwcmVzc2lvbkJpbmRpbmdzPg0KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0yPg0KICAgICAgICAgICAgICAgICAgPC9DZWxscz4NCiAgICAgICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgICAgICA8L1Jvd3M+DQogICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgIDwvQ29udHJvbHM+DQogICAgICAgIDwvSXRlbTM+DQogICAgICAgIDxJdGVtNCBSZWY9IjMxIiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMSIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgICAgPEl0ZW01IFJlZj0iMzIiIENvbnRyb2xUeXBlPSJHcm91cEZvb3RlckJhbmQiIE5hbWU9Ikdyb3VwRm9vdGVyMSIgR3JvdXBVbmlvbj0iV2l0aExhc3REZXRhaWwiIEhlaWdodEY9IjYiPg0KICAgICAgICAgIDxDb250cm9scz4NCiAgICAgICAgICAgIDxJdGVtMSBSZWY9IjMzIiBDb250cm9sVHlwZT0iWFJMYWJlbCIgTmFtZT0ibGFiZWwyIiBTaXplRj0iNjUwLDIuMDgiIExvY2F0aW9uRmxvYXQ9IjAsMCIgU3R5bGVOYW1lPSJHcm91cEZvb3RlckJhY2tncm91bmQzIiBCb3JkZXJzPSJOb25lIj4NCiAgICAgICAgICAgICAgPFN0eWxlUHJpb3JpdHkgUmVmPSIzNCIgVXNlQm9yZGVycz0iZmFsc2UiIC8+DQogICAgICAgICAgICA8L0l0ZW0xPg0KICAgICAgICAgIDwvQ29udHJvbHM+DQogICAgICAgIDwvSXRlbTU+DQogICAgICA8L0JhbmRzPg0KICAgIDwvSXRlbTU+DQogICAgPEl0ZW02IFJlZj0iMzUiIENvbnRyb2xUeXBlPSJEZXRhaWxSZXBvcnRCYW5kIiBOYW1lPSJEZXRhaWxSZXBvcnQxIiBMZXZlbD0iMSIgRGF0YU1lbWJlcj0ib3JkZXJfaXRlbXMiIERhdGFTb3VyY2U9IiNSZWYtMCI+DQogICAgICA8QmFuZHM+DQogICAgICAgIDxJdGVtMSBSZWY9IjM2IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMiIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgIDwvQmFuZHM+DQogICAgPC9JdGVtNj4NCiAgICA8SXRlbTcgUmVmPSIzNyIgQ29udHJvbFR5cGU9IkRldGFpbFJlcG9ydEJhbmQiIE5hbWU9IkRldGFpbFJlcG9ydDIiIExldmVsPSIyIiBEYXRhTWVtYmVyPSJvcmRlcnMiIERhdGFTb3VyY2U9IiNSZWYtMCI+DQogICAgICA8QmFuZHM+DQogICAgICAgIDxJdGVtMSBSZWY9IjM4IiBDb250cm9sVHlwZT0iRGV0YWlsQmFuZCIgTmFtZT0iRGV0YWlsMyIgSGVpZ2h0Rj0iMCIgLz4NCiAgICAgIDwvQmFuZHM+DQogICAgPC9JdGVtNz4NCiAgICA8SXRlbTggUmVmPSIzOSIgQ29udHJvbFR5cGU9IkRldGFpbFJlcG9ydEJhbmQiIE5hbWU9IkRldGFpbFJlcG9ydDMiIExldmVsPSIzIiBEYXRhTWVtYmVyPSJwcm9kdWN0cyIgRGF0YVNvdXJjZT0iI1JlZi0wIj4NCiAgICAgIDxCYW5kcz4NCiAgICAgICAgPEl0ZW0xIFJlZj0iNDAiIENvbnRyb2xUeXBlPSJEZXRhaWxCYW5kIiBOYW1lPSJEZXRhaWw0IiBIZWlnaHRGPSIwIiAvPg0KICAgICAgPC9CYW5kcz4NCiAgICA8L0l0ZW04Pg0KICA8L0JhbmRzPg0KICA8U3R5bGVTaGVldD4NCiAgICA8SXRlbTEgUmVmPSI0MSIgTmFtZT0iVGl0bGUiIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiw2LDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCAxNC4yNXB0IiBGb3JlQ29sb3I9IjI1NSw3NSw3NSw3NSIgQmFja0NvbG9yPSJUcmFuc3BhcmVudCIgQm9yZGVyQ29sb3I9IkJsYWNrIiBTaWRlcz0iTm9uZSIgU3RyaW5nRm9ybWF0PSJOZWFyO05lYXI7MDtOb25lO0NoYXJhY3RlcjtHZW5lcmljRGVmYXVsdCIgQm9yZGVyV2lkdGhTZXJpYWxpemFibGU9IjEiIC8+DQogICAgPEl0ZW0yIFJlZj0iNDIiIE5hbWU9Ikdyb3VwQ2FwdGlvbjIiIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiwyLDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCA4LjI1cHQsIHN0eWxlPUJvbGQiIEZvcmVDb2xvcj0iMjU1LDIyOCwyMjgsMjI4IiBCYWNrQ29sb3I9IjI1NSwxMTEsMTExLDExMSIgQm9yZGVyQ29sb3I9IldoaXRlIiBTaWRlcz0iQm90dG9tIiBTdHJpbmdGb3JtYXQ9Ik5lYXI7Q2VudGVyOzA7Tm9uZTtDaGFyYWN0ZXI7R2VuZXJpY0RlZmF1bHQiIFRleHRBbGlnbm1lbnQ9Ik1pZGRsZUxlZnQiIEJvcmRlcldpZHRoU2VyaWFsaXphYmxlPSIyIiAvPg0KICAgIDxJdGVtMyBSZWY9IjQzIiBOYW1lPSJHcm91cERhdGEyIiBCb3JkZXJTdHlsZT0iSW5zZXQiIFBhZGRpbmc9IjYsMiwwLDAsMTAwIiBGb250PSJBcmlhbCwgOC4yNXB0LCBzdHlsZT1Cb2xkIiBGb3JlQ29sb3I9IldoaXRlIiBCYWNrQ29sb3I9IjI1NSwxMTEsMTExLDExMSIgQm9yZGVyQ29sb3I9IldoaXRlIiBTaWRlcz0iQm90dG9tIiBTdHJpbmdGb3JtYXQ9Ik5lYXI7Q2VudGVyOzA7Tm9uZTtDaGFyYWN0ZXI7R2VuZXJpY0RlZmF1bHQiIFRleHRBbGlnbm1lbnQ9Ik1pZGRsZUxlZnQiIEJvcmRlcldpZHRoU2VyaWFsaXphYmxlPSIyIiAvPg0KICAgIDxJdGVtNCBSZWY9IjQ0IiBOYW1lPSJHcm91cEZvb3RlckJhY2tncm91bmQzIiBCb3JkZXJTdHlsZT0iSW5zZXQiIFBhZGRpbmc9IjYsMiwwLDAsMTAwIiBGb250PSJBcmlhbCwgOC4yNXB0LCBzdHlsZT1Cb2xkIiBGb3JlQ29sb3I9IjI1NSwyMjgsMjI4LDIyOCIgQmFja0NvbG9yPSIyNTUsMTMxLDEzMSwxMzEiIEJvcmRlckNvbG9yPSJXaGl0ZSIgU2lkZXM9IkJvdHRvbSIgU3RyaW5nRm9ybWF0PSJOZWFyO0NlbnRlcjswO05vbmU7Q2hhcmFjdGVyO0dlbmVyaWNEZWZhdWx0IiBUZXh0QWxpZ25tZW50PSJNaWRkbGVMZWZ0IiBCb3JkZXJXaWR0aFNlcmlhbGl6YWJsZT0iMiIgLz4NCiAgICA8SXRlbTUgUmVmPSI0NSIgTmFtZT0iUGFnZUluZm8iIEJvcmRlclN0eWxlPSJJbnNldCIgUGFkZGluZz0iNiw2LDAsMCwxMDAiIEZvbnQ9IkFyaWFsLCA4LjI1cHQsIHN0eWxlPUJvbGQiIEZvcmVDb2xvcj0iMjU1LDc1LDc1LDc1IiBTdHJpbmdGb3JtYXQ9Ik5lYXI7TmVhcjswO05vbmU7Q2hhcmFjdGVyO0dlbmVyaWNEZWZhdWx0IiAvPg0KICA8L1N0eWxlU2hlZXQ+DQogIDxDb21wb25lbnRTdG9yYWdlPg0KICAgIDxJdGVtMSBSZWY9IjAiIE9iamVjdFR5cGU9IkRldkV4cHJlc3MuRGF0YUFjY2Vzcy5TcWwuU3FsRGF0YVNvdXJjZSxEZXZFeHByZXNzLkRhdGFBY2Nlc3MudjIzLjEiIE5hbWU9InNxbERhdGFTb3VyY2UiIEJhc2U2ND0iUEZOeGJFUmhkR0ZUYjNWeVkyVWdUbUZ0WlQwaWMzRnNSR0YwWVZOdmRYSmpaU0krUEVOdmJtNWxZM1JwYjI0Z1RtRnRaVDBpWTJ4cFpXNTBjeUlnVUhKdmRtbGtaWEpMWlhrOUlsTlJUR2wwWlNJK1BGQmhjbUZ0WlhSbGNuTStQRkJoY21GdFpYUmxjaUJPWVcxbFBTSmtZWFJoWW1GelpTSWdWbUZzZFdVOUlrTTZYRlZ6WlhKelhGY3dNREF6T0RZek1WeEVaWE5yZEc5d1hHTnNhV1Z1ZEhNdVpHSWlJQzgrUEZCaGNtRnRaWFJsY2lCT1lXMWxQU0p5WldGa0lHOXViSGtpSUZaaGJIVmxQU0l4SWlBdlBqeFFZWEpoYldWMFpYSWdUbUZ0WlQwaVoyVnVaWEpoZEdWRGIyNXVaV04wYVc5dVNHVnNjR1Z5SWlCV1lXeDFaVDBpWm1Gc2MyVWlJQzgrUEM5UVlYSmhiV1YwWlhKelBqd3ZRMjl1Ym1WamRHbHZiajQ4VVhWbGNua2dWSGx3WlQwaVUyVnNaV04wVVhWbGNua2lJRTVoYldVOUltTnNhV1Z1ZEhNaVBqeFVZV0pzWlhNK1BGUmhZbXhsSUU1aGJXVTlJbU5zYVdWdWRITWlJQzgrUEM5VVlXSnNaWE0rUEVOdmJIVnRibk0rUEVOdmJIVnRiaUJVWVdKc1pUMGlZMnhwWlc1MGN5SWdUbUZ0WlQwaVkyeHBaVzUwWDJsa0lpQXZQanhEYjJ4MWJXNGdWR0ZpYkdVOUltTnNhV1Z1ZEhNaUlFNWhiV1U5SW1acGNuTjBYMjVoYldVaUlDOCtQRU52YkhWdGJpQlVZV0pzWlQwaVkyeHBaVzUwY3lJZ1RtRnRaVDBpYkdGemRGOXVZVzFsSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW1Oc2FXVnVkSE1pSUU1aGJXVTlJbVZ0WVdsc0lpQXZQand2UTI5c2RXMXVjejQ4TDFGMVpYSjVQanhSZFdWeWVTQlVlWEJsUFNKVFpXeGxZM1JSZFdWeWVTSWdUbUZ0WlQwaWIzSmtaWEpmYVhSbGJYTWlQanhVWVdKc1pYTStQRlJoWW14bElFNWhiV1U5SW05eVpHVnlYMmwwWlcxeklpQXZQand2VkdGaWJHVnpQanhEYjJ4MWJXNXpQanhEYjJ4MWJXNGdWR0ZpYkdVOUltOXlaR1Z5WDJsMFpXMXpJaUJPWVcxbFBTSnZjbVJsY2w5cGRHVnRYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW05eVpHVnlYMmwwWlcxeklpQk9ZVzFsUFNKdmNtUmxjbDlwWkNJZ0x6NDhRMjlzZFcxdUlGUmhZbXhsUFNKdmNtUmxjbDlwZEdWdGN5SWdUbUZ0WlQwaWNISnZaSFZqZEY5cFpDSWdMejQ4UTI5c2RXMXVJRlJoWW14bFBTSnZjbVJsY2w5cGRHVnRjeUlnVG1GdFpUMGljWFZoYm5ScGRIa2lJQzgrUEM5RGIyeDFiVzV6UGp3dlVYVmxjbmsrUEZGMVpYSjVJRlI1Y0dVOUlsTmxiR1ZqZEZGMVpYSjVJaUJPWVcxbFBTSnZjbVJsY25NaVBqeFVZV0pzWlhNK1BGUmhZbXhsSUU1aGJXVTlJbTl5WkdWeWN5SWdMejQ4TDFSaFlteGxjejQ4UTI5c2RXMXVjejQ4UTI5c2RXMXVJRlJoWW14bFBTSnZjbVJsY25NaUlFNWhiV1U5SW05eVpHVnlYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW05eVpHVnljeUlnVG1GdFpUMGlZMnhwWlc1MFgybGtJaUF2UGp3dlEyOXNkVzF1Y3o0OEwxRjFaWEo1UGp4UmRXVnllU0JVZVhCbFBTSlRaV3hsWTNSUmRXVnllU0lnVG1GdFpUMGljSEp2WkhWamRITWlQanhVWVdKc1pYTStQRlJoWW14bElFNWhiV1U5SW5CeWIyUjFZM1J6SWlBdlBqd3ZWR0ZpYkdWelBqeERiMngxYlc1elBqeERiMngxYlc0Z1ZHRmliR1U5SW5CeWIyUjFZM1J6SWlCT1lXMWxQU0p3Y205a2RXTjBYMmxrSWlBdlBqeERiMngxYlc0Z1ZHRmliR1U5SW5CeWIyUjFZM1J6SWlCT1lXMWxQU0p1WVcxbElpQXZQanhEYjJ4MWJXNGdWR0ZpYkdVOUluQnliMlIxWTNSeklpQk9ZVzFsUFNKd2NtbGpaU0lnTHo0OEwwTnZiSFZ0Ym5NK1BDOVJkV1Z5ZVQ0OFVtVnpkV3gwVTJOb1pXMWhQanhFWVhSaFUyVjBJRTVoYldVOUluTnhiRVJoZEdGVGIzVnlZMlVpUGp4V2FXVjNJRTVoYldVOUltTnNhV1Z1ZEhNaVBqeEdhV1ZzWkNCT1lXMWxQU0pqYkdsbGJuUmZhV1FpSUZSNWNHVTlJa2x1ZERZMElpQXZQanhHYVdWc1pDQk9ZVzFsUFNKbWFYSnpkRjl1WVcxbElpQlVlWEJsUFNKVGRISnBibWNpSUM4K1BFWnBaV3hrSUU1aGJXVTlJbXhoYzNSZmJtRnRaU0lnVkhsd1pUMGlVM1J5YVc1bklpQXZQanhHYVdWc1pDQk9ZVzFsUFNKbGJXRnBiQ0lnVkhsd1pUMGlVM1J5YVc1bklpQXZQand2Vm1sbGR6NDhWbWxsZHlCT1lXMWxQU0p2Y21SbGNsOXBkR1Z0Y3lJK1BFWnBaV3hrSUU1aGJXVTlJbTl5WkdWeVgybDBaVzFmYVdRaUlGUjVjR1U5SWtsdWREWTBJaUF2UGp4R2FXVnNaQ0JPWVcxbFBTSnZjbVJsY2w5cFpDSWdWSGx3WlQwaVNXNTBOalFpSUM4K1BFWnBaV3hrSUU1aGJXVTlJbkJ5YjJSMVkzUmZhV1FpSUZSNWNHVTlJa2x1ZERZMElpQXZQanhHYVdWc1pDQk9ZVzFsUFNKeGRXRnVkR2wwZVNJZ1ZIbHdaVDBpU1c1ME5qUWlJQzgrUEM5V2FXVjNQanhXYVdWM0lFNWhiV1U5SW05eVpHVnljeUkrUEVacFpXeGtJRTVoYldVOUltOXlaR1Z5WDJsa0lpQlVlWEJsUFNKSmJuUTJOQ0lnTHo0OFJtbGxiR1FnVG1GdFpUMGlZMnhwWlc1MFgybGtJaUJVZVhCbFBTSkpiblEyTkNJZ0x6NDhMMVpwWlhjK1BGWnBaWGNnVG1GdFpUMGljSEp2WkhWamRITWlQanhHYVdWc1pDQk9ZVzFsUFNKd2NtOWtkV04wWDJsa0lpQlVlWEJsUFNKSmJuUTJOQ0lnTHo0OFJtbGxiR1FnVG1GdFpUMGlibUZ0WlNJZ1ZIbHdaVDBpVTNSeWFXNW5JaUF2UGp4R2FXVnNaQ0JPWVcxbFBTSndjbWxqWlNJZ1ZIbHdaVDBpUkc5MVlteGxJaUF2UGp3dlZtbGxkejQ4TDBSaGRHRlRaWFErUEM5U1pYTjFiSFJUWTJobGJXRStQRU52Ym01bFkzUnBiMjVQY0hScGIyNXpJRU5zYjNObFEyOXVibVZqZEdsdmJqMGlkSEoxWlNJZ0x6NDhMMU54YkVSaGRHRlRiM1Z5WTJVKyIgLz4NCiAgPC9Db21wb25lbnRTdG9yYWdlPg0KPC9YdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXI+ --extension ".repx"
defVar --name databaseConnection --type DbConnection --output
defVar --name hasResult --type Boolean
defVar --name path --type String
defVar --name result --type String
defVar --name connectionString --type String
getSpecialFolder --folder "Desktop" path=value
setVar --name "${connectionString}" --value "Server=(localdb)\\mssqllocaldb;Database=automation;User Id=<user>;Password=<pass>"
sqlServerConnect --connectionstring "${connectionString}"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS clients (client_id INTEGER PRIMARY KEY AUTOINCREMENT,first_name TEXT NOT NULL,last_name TEXT NOT NULL,email TEXT NOT NULL);"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS products (product_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,price REAL NOT NULL);"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS orders (order_id INTEGER PRIMARY KEY AUTOINCREMENT,client_id INTEGER,FOREIGN KEY(client_id) REFERENCES clients(client_id));"
sqlExecute --connection ${databaseConnection} --statement "CREATE TABLE IF NOT EXISTS order_items (order_item_id INTEGER PRIMARY KEY AUTOINCREMENT,order_id INTEGER,product_id INTEGER NOT NULL,quantity INTEGER NOT NULL,FOREIGN KEY(order_id) REFERENCES orders(order_id),FOREIGN KEY(product_id) REFERENCES products(product_id));"
sqlExecuteScalar --connection ${databaseConnection} --statement "SELECT COUNT(*) FROM orders;" result=value hasResult=hasresult
if --left "${hasResult}" --operator "Is_True" --negate
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO clients (first_name, last_name, email)\r\nVALUES\r\n(\'John\', \'Doe\', \'john.doe@example.com\'),\r\n(\'Jane\', \'Doe\', \'jane.doe@example.com\'),\r\n(\'Peter\', \'Parker\', \'peter.parker@example.com\'),\r\n(\'Bruce\', \'Wayne\', \'bruce.wayne@example.com\'),\r\n(\'Clark\', \'Kent\', \'clark.kent@example.com\');"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO products (name, price)\r\nVALUES\r\n(\'Espresso\', 3.99),\r\n(\'Latte\', 4.99),\r\n(\'Capuccino\', 5.99),\r\n(\'Macchiato\', 4.50),\r\n(\'Americano\', 3.50),\r\n(\'Iced coffee\', 4.50),\r\n(\'Cold brew coffee\', 5.00),\r\n(\'Frappuccino\', 6.00),\r\n(\'Mocha\', 5.50),\r\n(\'White chocolate mocha\', 6.00);"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO orders (client_id)\r\nVALUES\r\n(1),\r\n(2),\r\n(3),\r\n(4),\r\n(5);"
sqlExecute --connection ${databaseConnection} --statement "INSERT INTO order_items (order_id, product_id, quantity)\r\nVALUES\r\n(1, 1, 2),\r\n(1, 2, 1),\r\n(2, 3, 3),\r\n(2, 4, 1),\r\n(3, 5, 2),\r\n(3, 6, 1),\r\n(4, 7, 3),\r\n(4, 8, 1),\r\n(5, 9, 2),\r\n(5, 10, 1);"
endIf
exportReport --format "Pdf" --watermark "None" --filepath "${path}\\myReport.pdf" --asset "${asset.report}" --mappings "{\"sqlDataSource\":\"${databaseConnection}\"}"