I need to fetch the value in the field "Source test" in the manual runner and post it in a user defined field in the Defect module.

As I understand, it is not possible to access global variables in the manual runner? You have to store the value in a variable.

I have found this example in the Workflow section of Quality Center regarding storing the last value entered:

Sub SW_KeepLastValue(action)
Dim tdc, vals, flds
Dim uset, pairs, pair
Dim bld
On Error Resume Next
bld = ""
Set tdc = TDConnection
Set uset = tdc.UserSettings

If action = "SET" Then
flds = Array("BG_DETECTION_VERSION", _
"BG_USER_01", "BG_USER_03")
vals = ""
For i = 0 To UBound(flds)
If vals <> "" Then vals = vals & ";"
vals = vals & flds(i) & "=" & Bug_Fields(flds(i)).Value
'Open category KeepLValueSetting
uset.Open ("KeepLValueSetting")
'Setting KeepValueFields in category KeepLValueSetting
uset.Value("KeepValueFields") = vals
End If 'SET

If action = "GET" Then
uset.Open ("KeepLValueSetting")
vals = uset.Value("KeepValueFields")
If vals <> "" Then
pairs = Split(vals, ";")
For i = 0 To UBound(pairs)
pair = Split(pairs(i), "=")
If UBound(pair) = 1 Then
Select Case pair(0)
Case "BG_USER_03"
bld = pair(1)
Case Else
If Bug_Fields(pair(0)).Value = "" Then
Bug_Fields(pair(0)).Value = pair(1)
End If
End Select
If Bug_Fields("BG_DETECTION_VERSION").Value <> "" _
And bld <> "" Then
SW_SetLists_VersionsBuilds _
Bug_Fields("BG_USER_03").Value = bld
If Err.Number <> 0 Then Err.Clear

End If 'Bug_Fields

End If 'UBound(pair)
End If 'vals <> ""
End If 'GET

PrintError ("Keep Last Value (" & action & ")")
On Error GoTo 0
End Sub

Can it be done more simple or should I modify the above mentioned script, so it fits my purpose?