WSS 3.0工作流 - 如何从联接列表中获取数据

时间:2009-09-01 14:23:16

标签: sharepoint wss

我使用联合列表遇到WSS 3.0 Workflow问题。这是描述:

我正在创建一个简单的工作假期请求/预订应用程序。这仅供内部部门使用,以便员工可以预订年假,并由其各自的经理授权。

为此,我有两个列表:第一个列表称为“员工”,包含人员姓名,电子邮件地址和经理姓名。管理员名称由同一列表中的下拉列表填充。

第二个列表名为HolidayRequest,其中包含名称字段(基于人员列表的下拉列表),开始日期和结束日期。

如果对HolidayRequest列表进行了新的输入,我想触发一个工作流程,该工作流程将向该人的经理发送电子邮件以通知他们批准。我遇到的问题是将经理的姓名和电子邮件地址输入工作流程。我看到的问题是这些信息是通过联合列表获得的:

       HolidayRequest                          Staff
StartDate, EndDate, Name  ----------------->   Name, EmailAddress, Manager
                                                 /\                   |
                                                  |                   |
                                                  +-------------------+  

所以我需要的是工作流程使用HolidayRequest中的Name字段,在Staff列表中找到同名的记录,然后从该记录中获取经理的姓名,获取经理人员记录,从而获得经理的电子邮件地址。它不完全是火箭科学,但我无法在工作流程中弄明白(使用Sharepoint Designer)。

我想第一个问题是工作流程是否是正确的工具,其次,如果是,那么我是否有办法实现我的需求?

感谢阅读。

1 个答案:

答案 0 :(得分:0)

嗯,事实证明我是在正确的轨道上(正如我所想的那样),但我还没有完全了解Workflow的查找方式。这是答案:

假设您有两个列表“HolidayRequest”和“Staff”。 HolidayRequest具有“Name”(在Staff列表中查找),StartDate和EndDate的字段。人员列表具有“名称”,“电子邮件”和“管理员”(这是对员工列表的查找 - 返回相同列表但不同记录的参考)。

因为它涉及双重查找,所以必须创建一个工作流变量来存储中间结果。因此,我创建了Variable:ManagerName来存储第一次查找中的管理器名称,然后将其用作第二次查找的密钥,以便为管理器提取电子邮件地址。

我最终确定工作流查找的关键是要了解它是如何进行连接的 - 而且说实话我并不认为SPD中的“定义工作流查找”非常清楚。 DWL有两个部分 - 一个标题为“查找详细信息”,在这里您可以告诉它您希望数据来自何处(源列表和该列表中的字段),第二部分标题为“查找列表项” (这是我出错的地方) - 你用它来创建两个列表之间的链接。条目“字段”是您在数据源列表中告诉它的字段(因此员工:姓名,对于我的示例),“值”条目是您从其他列表中给出相应字段的位置(因此,“变量:ManagerName“在我的例子中。”

现在,当收到新的Holiday Request时,工作流使用HolidayRequest中的名称作为查找Staff列表,从staff列表中提取管理器名称,然后使用它在人员列表上进行第二次查找 - 这次是经理 - 并提取电子邮件地址。

完美。

现在,我可以使用该电子邮件地址请求经理授权或拒绝该请求。