复制表

从数据表复制数据

命令可用性: 本地 IBM RPA SaaS 和 IBM RPA

Description

复制数据表中的所有数据,或仅复制其结构,然后将其返回到新表中。

根据定义,表结构是其行、列和表样式。

脚本语法

IBM RPA 的专有脚本语言的语法与其他编程语言类似。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。

copyTable [--schemaonly(Boolean)] --dataTable(DataTable) (DataTable)=value

依赖关系

必须先获取在 数据表 参数中输入的数据表。 以下命令可返回“数据表”变量:

输入参数

下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 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"