teamscript에서 목록형 레코드 반환 예제
/**
* 문서번호: nabiro_201209241446
* 검색어: nabiro, list, sbm, teamscript, teamtrack, script, 목록, 레코드, 반환
* 참조:
**/
'2012.09.24 nabiro@gmail.com
'Teamscript에서 단일 레코드 검색이 아니라 복수의 레코드를 검색할 때 사용하는 list type 예제입니다.
'
'이 예제가 사용되는 목적보다는 목록형의 레코드를 검색할 때 CreateAppRecordList () 를 사용한다는 것과
'For Each 를 사용하는 것을 주의깊게 봐야 합니다.
'
'즉 코드를 재활용하기 위해 참조하는 소스 입니다.
IssueTableId = 1000 'ts_tables 테이블에서의 ts_id (table id)
IssueId = 2704 '해당 테이블의 ts_id
Set myRecord = Ext.CreateAppRecordList (Ext.TableId ("TS_SUBTASKS"))
whereClause = "TS_MASTERTABLEID="&IssueTableId&" AND TS_MASTERITEMID="&IssueId
If myRecord.ReadWithWhere (whereClause) Then
For Each TaskItem in myRecord
call TaskItem.GetFieldValue ("SUBTABLEID", nTaskTbl)
call TaskItem.GetFieldValue ("SUBITEMID", nTaskId)
If nTaskTbl <> "" AND nTaskId <> "" Then
call GetTaskIdAndState(nTaskTbl,nTaskId)
End If
Next
End If
' additional functions
function GetTaskIdAndState(nTaskTableId, nTaskId)
Dim myTaskRec,whereTClause,nt1,nt2
Set myTaskRec = Ext.CreateAppRecord(nTaskTableId)
whereTClause = "TS_ID="&nTaskId
If myTaskRec.ReadWithWhere (whereTClause) Then
call myTaskRec.GetFieldValue ("ISSUEID", nt1)
call myTaskRec.GetFieldValue ("STATE", nt2)
' if task state not in Closed(71) say Boo
If nt2 <> 71 Then
Shell.RedoMessage = Shell.RedoMessage&" Transition can't be executed task:"&nt1&" not Closed"
End If
End If
end function