我有动作1,我在查询数据库并得到一个我存储在变量中的字段(比方说x)。在动作2中,我再次查询数据库,我想在where子句中使用存储在x中的值。
行动1的片段:
SQL1 = " SELECT Identitynumber " &_
" FROM VLC_CRM.dbo.Person " &_
" WHERE Identitynumber = '" &IdentityNumber_ui&"'"
Set oRecordSet = oConnection.Execute(SQL1)
Do While NOT oRecordSet.EOF
IdentityNumber_db_tmp = CStr(oRecordSet.Fields("Identitynumber").Value)
IdentityNumber_db = RTrim(IdentityNumber_db_tmp)
oRecordSet.MoveNext
Loop
动作2 SQL(我想在下面的Where子句中使用Action 1中的IdentityNumber_db)
SQL1 = " SELECT TOP 1 CAST(la.LogonDate AS DATE) AS LogonDate," &_
" la.LogonDate AS LastLogonDateTime"&_
" FROM dbo.LogonAudit la" &_
" INNER JOIN dbo.Person p" &_
" ON la.EntityID = p.PersonID" &_
" WHERE p.IdentityNumber = '"&IdentityNumber_db&"'" &_
" ORDER BY LastLogonDateTime DESC"
有人可以建议我如何将此值从Action 1传递给Action 2,以便我可以在我的SQL查询中使用它吗?
答案 0 :(得分:3)
版本:UFT 12.51
使用语法: RunAction strActionName,oneIteration,Param1,Param2
答案 1 :(得分:2)
最简单的方法是使用环境变量,但您也可以将输入参数设置为Action2并在Action1中调用它:
RunAction "Action2", oneIteration, parameter1,parameter2
其他可能的解决方案是 TestArgs(“argumentName”) - 它与参数相同,但 TestArgs 的范围适用于整个TestSet。 参数仅适用于给定的操作
答案 2 :(得分:1)
您在操作中声明的变量的范围仅限于该操作,因此您必须找到具有全局范围的变量,以使其可用于这两个操作。
一些选项......
这些选项中的每一个都使数据可用于脚本中的所有操作。
答案 3 :(得分:1)
您可以将参数从一个操作传递到另一个可重复使用的操作,但请遵循以下步骤;
现在您可以从调用操作传递参数数量;
RunAction strActionName, oneIteration, intIteration
*
您可以通过以下方式访问传递的参数;
var_to_hold_arg =参数(“passed_arg”)
答案 4 :(得分:0)
在第一个操作中,您必须初始化环境值:
Environment.Value(" yourName")= yourVariable
如果您想调用该值,请简单地写
yourVarFromSecondAction =环境(" yourName")
正如@HgCoder所说,你可以使用已实施的excell表,但是当我与ALM合作时遇到了一些问题,所以要小心。