复制表
从数据表复制数据
命令可用性: 本地 IBM RPA SaaS 和 IBM RPA
Description
复制数据表中的所有数据,或仅复制其结构,然后将其返回到新表中。
根据定义,表结构是其行、列和表样式。
脚本语法
IBM RPA 的专有脚本语言的语法与其他编程语言类似。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。
copyTable [--schemaonly(Boolean)] --dataTable(DataTable) (DataTable)=value
依赖关系
必须先获取在 数据表 参数中输入的数据表。 以下命令可返回“数据表”变量:
- 打开 Excel 文件 (
excelOpen) - 获取 Excel 表 (
excelGetTable) - 读取 CSV 文件 (
readCSV)
输入参数
下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。
| 设计器方式标签 | 脚本方式名称 | 必需的 | 接受的变量类型 | Description |
|---|---|---|---|---|
| 仅模式 | schemaonly |
Optional |
Boolean |
启用以仅复制数据表结构。 |
| 数据表 | dataTable |
Required |
Data Table |
用于复制数据和结构的源数据表。 |
输出参数
| 设计器方式标签 | 脚本方式名称 | 接受的变量类型 | Description |
|---|---|---|---|
| 数据表 | value |
数据表 | 返回包含源表的数据和/或结构的副本的新数据表。 |
示例
复制表 (copyTable) 命令与启用的 仅模式 参数配合使用,以复制表的结构,并且仅将 45 岁以上的员工添加到此具有过滤器的新表中。
defVar --name tableValues --type DataTable
defVar --name newTable --type DataTable
defVar --name filterTable --type DataTable
defVar --name age --type String
defVar --name row --type Numeric
defVar --name name --type String
defVar --name position --type String
defVar --name office --type String
defVar --name startDate --type String
getTablesFromHtml --html "<table id=\"example\" class=\"display nowrap dataTable dtr-inline collapsed\" style=\"width: 100%;\" aria-describedby=\"example_info\"><thead><tr><th class=\"sorting sorting_asc\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 136px;\" aria-sort=\"ascending\" aria-label=\"Name: activate to sort column descending\">Name</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 185px;\" aria-label=\"Position: activate to sort column ascending\">Position</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 85px;\" aria-label=\"Office: activate to sort column ascending\">Office</th><th class=\"dt-body-right sorting\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 32px;\" aria-label=\"Age: activate to sort column ascending\">Age</th><th class=\"dt-body-right sorting\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 75px;\" aria-label=\"Start date: activate to sort column ascending\">Start date</th><th class=\"dt-body-right sorting dtr-hidden\" tabindex=\"0\" aria-controls=\"example\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px; display: none;\" aria-label=\"Salary: activate to sort column ascending\">Salary</th></tr></thead><tbody><tr class=\"odd\"><td class=\"dtr-control sorting_1\" tabindex=\"0\" style=\"\">Airi Satou</td><td>Accountant</td><td>Tokyo</td><td class=\"dt-body-right\">33</td><td class=\"dt-body-right\">11/27/2008</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$162,700</td></tr><tr class=\"even\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\" style=\"\">Angelica Ramos</td><td>Chief Executive Officer (CEO)</td><td>London</td><td class=\"dt-body-right\">47</td><td class=\"dt-body-right\">10/8/2009</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$1,200,000</td></tr><tr class=\"odd\"><td class=\"dtr-control sorting_1\" tabindex=\"0\" style=\"\">Ashton Cox</td><td>Junior Technical Author</td><td>San Francisco</td><td class=\"dt-body-right\">66</td><td class=\"dt-body-right\">1/11/2009</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$86,000</td></tr><tr class=\"even\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\">Bradley Greer</td><td>Software Engineer</td><td>London</td><td class=\"dt-body-right\">41</td><td class=\"dt-body-right\">10/12/2012</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$132,000</td></tr><tr class=\"odd\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\">Brenden Wagner</td><td>Software Engineer</td><td>San Francisco</td><td class=\"dt-body-right\">28</td><td class=\"dt-body-right\">6/6/2011</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$206,850</td></tr><tr class=\"even\"><td class=\"dtr-control sorting_1\" tabindex=\"0\">Brielle Williamson</td><td>Integration Specialist</td><td>New York</td><td class=\"dt-body-right\">61</td><td class=\"dt-body-right\">12/1/2012</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$372,000</td></tr><tr class=\"odd\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\">Bruno Nash</td><td>Software Engineer</td><td>London</td><td class=\"dt-body-right\">38</td><td class=\"dt-body-right\">5/2/2011</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$163,500</td></tr><tr class=\"even\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\">Caesar Vance</td><td>Pre-Sales Support</td><td>New York</td><td class=\"dt-body-right\">21</td><td class=\"dt-body-right\">12/11/2011</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$106,450</td></tr><tr class=\"odd\"><td class=\"sorting_1 dtr-control\" tabindex=\"0\">Cara Stevens</td><td>Sales Assistant</td><td>New York</td><td class=\"dt-body-right\">46</td><td class=\"dt-body-right\">12/5/2011</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$145,600</td></tr><tr class=\"even\"><td class=\"dtr-control sorting_1\" tabindex=\"0\">Cedric Kelly</td><td>Senior Javascript Developer</td><td>Edinburgh</td><td class=\"dt-body-right\">22</td><td class=\"dt-body-right\">3/28/2012</td><td class=\"dt-body-right dtr-hidden\" style=\"display: none;\">$433,060</td></tr></tbody><tfoot><tr><th rowspan=\"1\" colspan=\"1\">Name</th><th rowspan=\"1\" colspan=\"1\">Position</th><th rowspan=\"1\" colspan=\"1\">Office</th><th class=\"dt-body-right\" rowspan=\"1\" colspan=\"1\">Age</th><th class=\"dt-body-right\" rowspan=\"1\" colspan=\"1\">Start date</th><th class=\"dt-body-right dtr-hidden\" rowspan=\"1\" colspan=\"1\" style=\"display: none;\">Salary</th></tr></tfoot></table>" --removehtml tableValues=first
// Only the previous table schema is copied
copyTable --schemaonly --dataTable ${tableValues} newTable=value
filterTable --where "Age>45" --dataTable ${tableValues} filterTable=value
for --variable ${row} --from 1 --to ${filterTable.Rows} --step 1
mapTableRow --dataTable ${filterTable} --row ${row} --mappings "number=1=${name},number=2=${position},number=3=${office},number=4=${age},number=5=${startDate}"
addRow --valuesmapping "Name=${name},Position=${position},Office=${office},Age=${age},Start date=${startDate}" --dataTable ${newTable}
next
// The values from the first and second table are displayed in the IBM RPA Studio console.
logMessage --message "\r\nFirst table:\r\n${tableValues}\r\n\r\nSecond table:\r\n${newTable}" --type "Info"