We know that we use vbscript as scripting language in QTP. (To read about vbscript, Click Here>> )
VBScript has two kinds of procedures: Sub procedure and Function procedure
So, in brief, its goes like this..
Now we know that Action and Procedures are the two things. Procedure is further devided in two types – Function & Sub.
Feeling batter? Great!!
So, Lets start with actions..
1. QTP Actions:-
Action is specific to QTP and not the part of vbscript. Every QTP test has at least one Action(default name is Action1).
Action can have an object repository associated with it. Action can return multiple values in form of ‘output parameters’.
2. Procedures:
2.1. VBScript Sub Procedures:-
A Sub procedure:
- is a series of statements, enclosed by the Sub and End Sub statements
- can perform actions, but does not return a value
- can take arguments
- without arguments, it must include an empty set of parentheses ()
Sub mysub()
Print “my Sub Procedude”
End Sub
or
Sub mysub(argument1,argument2)
Print “my Sub Procedure”
End Sub
How to call Sub Procedures:
To call a Sub, you will use Call statement by enclosing arguments (if any) in parentheses.
The Call statement is not necessary to call a Sub, but if you want to use Call statement (Recommended), you must enclose arguments (if any) in parentheses.
Call mysub(argument1,argument2)
You can call a Sub without using Call statement as well, but not recommended.
mysub argument1,argument2
2.2. VBScript Function Procedures:-
A Function procedure:
- is a series of statements, enclosed by the Function and End Function statements
- can perform operations and can return a value
- can take arguments that are passed to it by a calling procedure
- without arguments, must include an empty set of parentheses ()
- returns a value by assigning a value to function name itself
Function myfunction1()
Print “my fuction1”
End Function
or
Function myfunction2(a,b)
myfunction2=a+b ‘assign value to function name
End Function
How to call Function Procedures:
Call myfunction1() ‘calling 1st function, without any return value
abc=myfunction2(argument1,argument2) ‘calling 2nd function, with a return value
Here you call a function called “myfunction2”, the function returns a value that will be stored in the variable “abc”.
Hope all your confusions are gone! But if you still have any doubts, please post your comments!
it's relly very helpful. thanx a lot!!
Hi Abhikansh,
I went through your post. Does it mean that to return multiple vales from the lines of code, we should use action cos function can return only one value and subprocedures cant return a value.
@maverick
You can either use actions or function to return multiple value.. but in case of function, you need to store all the output values to an array and return that array, bcoz function can return only one value. Refer the below code..
Function myfunction2(a,b)
val_sum = a+b
val_sub = a-b
val_div = a/b
arr=Array(val_sum,val_sub,val_div)
myfunction2=arr 'assign value to function name
End Function
x= myfunction2(15,3)
msgbox x(0)
msgbox x(1)
msgbox x(2)
very nice. Thank u
Great piece of info! Thanks!
Great work.. to clear confusion
thank u for info ..its very usefull.
hi..clarified.. Thank you
thanx
Can u plz explain where to use sub procedure and where to function procedure in real time automation testing ??
its depend on the what you are trying to achieve from function.. There is no standard rule..
Nice Explanation . Good Job. Keep it Up.
Not clear
I need to know when to use actions and when to use functions real time. Please explain.
could you explain me
we can call a Sub without using Call statement. and what about function call?
Thanks
gr8 info………..:-)
You can also return multiple values in function just by declaring in function definition..
for Example,
Function samplefunciton(input1, input2, output1, output2)
output1 = input1 + input2
output2 = input1 * input2
End Function
num1 = 2
num2 = 4
Call Function samplefunciton(num1, num2, addnum, multnum)
In above example, addnum will store/return 6 and multnum with store/return 8
Good information
Web Designer in Bangalore