Print Report

Prints a report file using the selected printer.

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 IBM RPA Studio's Script mode.

printReport --usedefaultprinter(Boolean) --printername(String) --asset(String) [--automap(Boolean)] --mappings(String) --watermark(ReportWatermark) --text(String) --textcolor(String) [--textfont(String)] --textsize(Numeric) --image(String) --transparency(Numeric) [--pagerange(String)] (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
Use default printer usedefaultprinter Required Boolean Enable it to use the system's default printer.
Printer name printername Only when Use default printer is False Text Name of the printer that prints the report.
Asset asset Required Text Asset that contains the report template.
Automap automap Optional Boolean Enable it to map variables that have the same name 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.
Watermark watermark Required ReportWatermark Watermark present in the report. The command accepts the following types: Image, Text, or None. See the watermark parameter options for details.
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 Only when Watermark is Text Text Text font to use in the watermark.
Text size textsize Only when Watermark is Text Number Font size used.
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
Page count pagecount Number Return the amount of printed pages.

Example

The following example creates a simple client report using an SQLite database as a data source. The report is sent as a file to print using the default printer.

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
printReport --usedefaultprinter  --asset "${asset.report}" --automap  --watermark "None"
Important:Use a valid connection to SQL Server to connect to the database. Replace the 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
printReport --usedefaultprinter  --asset "${asset.report}" --mappings "{\"sqlDataSource\":\"${databaseConnection}\"}" --watermark "None"