1.5.1.2.7.1 * How to export a defect to another DB*
Create a new global hook and call it in your field choice list hook:
REM Start of Global Script Defect_Exporting
REM TODO - put your script code here
Sub Defect_Exporting()
' Case_ID As String
' id As String
' actiontype As Long
' action is Submit
' record type name is Defect
REM Post-commit notifications about actions may be handled here
' MsgBox "Defect_Exporting =" & "100"
' mySession.OutputDebugString VBCrLf & "yossis: Defect_Exporting =" & "100"
'************* SET DEBUG ON/OFF **********
MYDBG = 0
'************* SET DEBUG ON/OFF **********
id = GetFieldValue("id").GetValue
Submitter = GetFieldValue("Submitter").GetValue
Company = GetFieldValue("Company").GetValue
' MsgBox "Defect_Exporting =" & "105"
' MsgBox "Defect_Exporting ID=" & id & " Submitter=" & Submitter& " Company=" & Company
'************************************************
'Logging into ClearQuest DATABASE
'************************************************
Set mySession = GetSession
' Get the user's personal information
myUserLogin = mySession.GetUserLoginName
NewPassword = ""
CqDbName = "YOUR DB NAME"
If myUserLogin = "YOUR USER NAME" Then
'MsgBox "yossi 200"
NewPassword = "YOUR PASSWORD"
If MYDBG <> 0 Then
CqDbName = "YOUR TEST_DB NAME"
End If
End If
'dbset = "2002.05.00"
dbset = "pcc"
' Get a ClearQuest "session"
' Set currentsession = CreateObject("CLEARQUEST.SESSION")
Set NewSession = CreateObject("CLEARQUEST.SESSION")
NewSession.UserLogon myUserLogin, NewPassword, CqDbName, AD_PRIVATE_SESSION, dbset
'Set NewSession = CreateObject("CLEARQUEST.AdminSession")
'NewSession.Logon myUserLogin, NewPassword, CqDbName, AD_PRIVATE_SESSION, dbset
'build new Defect entry
Set NewRec = NewSession.BuildEntity("defect")
' treat attachments
set attachFields = Defect.AttachmentFields
set attachField1 = attachFields.Item(0)
set attachments = attachField1.Attachments
'newrec
set NRattachFields = NewRec.AttachmentFields
set NRattachField1 = NRattachFields.Item(0)
set NRattachments = NRattachField1.Attachments
numAttachments = attachments.Count
For x = 0 to numAttachments - 1
set attachment = attachments.Item
'key = attachment.DisplayName
name = attachment.FileName
size = attachment.FileSize
description = attachment.Description
attachment.load "c:\temp\" & name
'DBGOUT "Name: " & name & VBCrLf & "size: " & size & VBCrLf & "description: " & description
set NRattachment = attachments.Item
NRattachments.add "c:\temp\" & name, description
Next
NewRec.SetFieldValue "Customer_Bug", GetFieldValue("Case_ID").GetValue
NewRec.SetFieldValue "Headline", "*** " & GetFieldValue("Headline").GetValue
NewRec.SetFieldValue "Severity", GetFieldValue("Severity").GetValue
NewRec.SetFieldValue "Description", GetFieldValue("Description").GetValue
' NewRec.SetFieldValue "Owner", GetFieldValue("Submitter").GetValue
NewRec.SetFieldValue "Owner", myUserLogin
NewRec.SetFieldValue "Ref_Corr_Project", "UnKnown"
NewRec.SetFieldValue "Ref_Department", "UnKnown"
NewRec.SetFieldValue "Ref_Functional_Area", "UnKnown"
NewRec.SetFieldValue "Ref_Functional_Area_type", "UnKnown"
NewRec.SetFieldValue "Ref_HW_Rev", "UnKnown"
NewRec.SetFieldValue "Ref_Module", "UnKnown"
NewRec.SetFieldValue "ucm_project", "UnKnown"
NewRec.SetFieldValue "Ref_SW_Ver_1", "UnKnown"
retn = NewRec.Validate
If retn <> "" Then
'DBGOUT "Error " & retn & " adding record, defect id " & id & "." & vbInformation
NewRec.Revert
'gretn = "Error '" & retn & "' occurred while trying to add a new record with defect id '" & DefectId & "'. "
Else
NewRec.Commit 'save the new record in CQ
Set MyItems = Nothing
'kill attachment files from tmp_dir
numAttachments = attachments.Count
For x = 0 to numAttachments - 1
set attachment = attachments.Item
name = attachment.FileName
set fso=CreateObject("Scripting.FileSystemObject")
fso.DeleteFile "c:\temp\" & name
set fso = Nothing
Set attachment = Nothing
Next 'x
End If 'retn <> "" Then
' CLEANUP
set sessionObj = GetSession
set entityObj = sessionObj.GetEntity("defect",GetFieldValue("id").GetValue)
sessionObj.EditEntity entityObj, "modify"
eid = NewRec.GetFieldValue("id").GetValue
entityObj.SetFieldValue "InternalBug",eid
' DBGOUT "eid =" & eid
retn = entityObj.Validate
If retn <> "" Then
'DBGOUT "Error " & retn & " adding record, defect id " & id & "." & vbInformation
NewRec.Revert
Else
entityObj.Commit
End If 'retn <> "" Then
' CLEANUP
Set NewSession = Nothing
Set NewRec = Nothing
Set sessionObj = Nothing
Set entityObj = Nothing
End Sub