使用 Groovy 将列表中的下一条记录存储到全局变量
Store next record from the list to the global variable using Groovy
我正在尝试检查房间的可用性,如果可用性失败,则 select 列表中的下一个房间,直到有房间可供预订。
例如:记录包含 RoomID 和 Timezone。
Groovy代码:
def isAvailable = false
def SDT = context.expand('${#Project#StartDateTime}')
def EDT = context.expand('${#Project#EndDateTime}')
while( isAvailable==false )
{
//Running while loop and checking slot availability.
def res = con.eachRow("select * from tblbookingitem where active=1 and fkItemID=$roomID and DateTimeFrom='$SDT' and DateTimeTo='$EDT'" )
if(res== null) // if null that means slot is available
{
log.info "Step 2 : Time slot is available."
isAvailable=true;
context.testCase.testSuite.project.setPropertyValue('RoomID', roomID)
log.info roomID
break;
}
else
{
//Store next room in roomID
//Store RoomID to variable
def res2 = con.eachRow("select pkResourceItemsID,locationTimeZone,* from tblResourceItems ri inner join Enterprise.tblRooms r on ri.pkResourceItemsID=r.roomID where ri.active=1 and ri.fkResourceID=1 and r.fkresourceId=1 and r.deliveryPoint=0 order by ri.pkResourceItemsID asc" )
log.info res2.pkResourceItemsID.toString()
context.testCase.testSuite.project.setPropertyValue("RoomID", res2.pkResourceItemsID.toString())
//Store Timezone to variable
log.info res2.locationTimeZone.toString()
context.testCase.testSuite.project.setPropertyValue("Timezone", res2.locationTimeZone.toString())
}
}
在其他部分,我需要第二条记录存储在 RoomID 和 Timezone 中。
当下次可用性再次失败时,它应该选择第三条记录,依此类推...
def res2 = con.rows("select pkResourceItemsID,locationTimeZone from tblResourceItems ri inner join Enterprise.tblRooms r on ri.pkResourceItemsID=r.roomID where ri.active=1 and ri.fkResourceID=1 and r.fkresourceId=1 and r.deliveryPoint=0 order by ri.pkResourceItemsID asc" )
int LIST = res2.size()
log.info "Total Rooms : " + LIST
for(int i = 0; i < LIST; i++)
{
log.info "Step 1 : Run for loop for each Room in Record Set."
//1.Set New RoomID and TimeZone to Global variable
roomID = res2[i].pkResourceItemsID
TZ = res2[i].locationTimeZone
def res = con.firstRow("select * from tblbookingitem where fkItemID=$roomID and DateTimeFrom='$nSDT' and DateTimeTo='$nEDT'" )
if(res== null) // if null that means slot is available
{
log.info "Step 2 : Time slot is available."
break;
}
}
我正在尝试检查房间的可用性,如果可用性失败,则 select 列表中的下一个房间,直到有房间可供预订。
例如:记录包含 RoomID 和 Timezone。
Groovy代码:
def isAvailable = false
def SDT = context.expand('${#Project#StartDateTime}')
def EDT = context.expand('${#Project#EndDateTime}')
while( isAvailable==false )
{
//Running while loop and checking slot availability.
def res = con.eachRow("select * from tblbookingitem where active=1 and fkItemID=$roomID and DateTimeFrom='$SDT' and DateTimeTo='$EDT'" )
if(res== null) // if null that means slot is available
{
log.info "Step 2 : Time slot is available."
isAvailable=true;
context.testCase.testSuite.project.setPropertyValue('RoomID', roomID)
log.info roomID
break;
}
else
{
//Store next room in roomID
//Store RoomID to variable
def res2 = con.eachRow("select pkResourceItemsID,locationTimeZone,* from tblResourceItems ri inner join Enterprise.tblRooms r on ri.pkResourceItemsID=r.roomID where ri.active=1 and ri.fkResourceID=1 and r.fkresourceId=1 and r.deliveryPoint=0 order by ri.pkResourceItemsID asc" )
log.info res2.pkResourceItemsID.toString()
context.testCase.testSuite.project.setPropertyValue("RoomID", res2.pkResourceItemsID.toString())
//Store Timezone to variable
log.info res2.locationTimeZone.toString()
context.testCase.testSuite.project.setPropertyValue("Timezone", res2.locationTimeZone.toString())
}
}
在其他部分,我需要第二条记录存储在 RoomID 和 Timezone 中。 当下次可用性再次失败时,它应该选择第三条记录,依此类推...
def res2 = con.rows("select pkResourceItemsID,locationTimeZone from tblResourceItems ri inner join Enterprise.tblRooms r on ri.pkResourceItemsID=r.roomID where ri.active=1 and ri.fkResourceID=1 and r.fkresourceId=1 and r.deliveryPoint=0 order by ri.pkResourceItemsID asc" )
int LIST = res2.size()
log.info "Total Rooms : " + LIST
for(int i = 0; i < LIST; i++)
{
log.info "Step 1 : Run for loop for each Room in Record Set."
//1.Set New RoomID and TimeZone to Global variable
roomID = res2[i].pkResourceItemsID
TZ = res2[i].locationTimeZone
def res = con.firstRow("select * from tblbookingitem where fkItemID=$roomID and DateTimeFrom='$nSDT' and DateTimeTo='$nEDT'" )
if(res== null) // if null that means slot is available
{
log.info "Step 2 : Time slot is available."
break;
}
}