Blueprism 添加行号到 Collection

Blueprism Add Row Number To Collection

我有一个从 Excel 导入的 collection。我想要一列告诉我记录号。这可能吗? A)我不想有一个外部柜台 B) 我不想更新 excel 文件以包含行号列。

如果需要,我可以提供屏幕截图,但似乎无法找到添加我需要的功能。

我在想你是否可以这样做: 1. 将 excel 的内容导入到您的第一个 collection。 2. 创建一个新的 collection 然后创建一个阶段,通过循环

从第一个 collection 复制数据

好吧,我提出的解决方案将在某些 C# 代码块中使用一些 SQL。我的评论的不同之处在于我认为我可以在 SQL 查询中使用 MSSQL 语法,但事实并非如此(例如,ROW_NUMBER() 不起作用.. .),所以我不得不自己进行一些谷歌搜索和测试。但是,是的,它确实有效,而且废话已经够多了,您可以按照以下步骤操作:

  1. 创建一个新对象(建议名称"MS Excel - SQL")并在 Initialise 页面中,将 System.Data.OleDb 添加到 Namespace Imports 并将语言设置为 C#:

  2. 在同一个初始化阶段,在全局代码选项卡中插入以下代码:

    public DataTable GetDataFromExcel (string filename,string sql)
    {
        DataTable dt; 
        OleDbConnection MyConnection;
        DataSet DtSet;
        OleDbDataAdapter MyCommand;
    
        MyConnection = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filename+" Properties=Excel 12.0;");
        MyCommand = new System.Data.OleDb.OleDbDataAdapter(sql, MyConnection);
        DtSet = new System.Data.DataSet();
    
        MyCommand.Fill(DtSet);
        dt = DtSet.Tables[0];
        MyConnection.Close();
        return dt;
    }
    

  3. 单击确定,适当地重命名操作 1,例如"Excel Query with Row Number" 并插入一个新的代码阶段(建议也正确命名):

  4. 您至少需要文件路径、sheet 名称和输入查询,以及输出集合:

  5. 将变量放入 Start 和 End 阶段,并在 Code 选项卡中插入以下内容:

    Results = GetDataFromExcel(@"" + File_Path + ";Extended", Query + " FROM [" + Worksheet_Name + "$]");
    
    Results.Columns.Add("RowNumber", typeof(int));
    
    int Row = 1;
    foreach (DataRow ThisRow in Results.Rows)
    {
        ThisRow["RowNumber"] = Row;
        Row++;
    }
    

  6. 保存对象,您现在可以从进程视图调用此操作。文件路径和工作 sheet 名称和结果应该是直截了当的,对于查询,您可以使用 SELECT * 或 select 之类的特定列(推荐),例如 SELECT [Column 1], [Column 2] .您的结果集合将包含这些列,还有一个名为 RowNumber 的附加列。您可以从此集合生成标识符(添加列,然后循环连接日期),或调整对象中的代码阶段以添加另一列并用连接的行和日期填充它(除了它作为对象不太灵活之后)。