Update a column in the data file that is already data bound to the test case

I have an excel file that I bound to a test case for iterating through test data. After each row, I want a column in the data file to be updates with a status like Pass or Fail. I added a column Pass/Fail to my excel spreadsheet and also added a variable called Pass_Fail in the test case(maybe not needed). How can I update the excel file with a Pass or Fail in that column?

I want to be able to do something like -
Datafile.setValue(‘Pass/Fail’, ‘Pass’) 'for that current row

Can someone help me for syntax for this scenario?

The following doc may help:

thanks Kazurayam. I already checked this. As per this code, I need to invoke the file and figure out the row and column and then add that value. But since I already have the data file bound to my test case, I want to be able to just call the Pass/Fail column for the current row it is running and update it.

I see that there is a findTestData object and was wondering if I can use that for this scenario.

Did you ever figure this out? I’m writing a file from one test suite that needs to be used by the next test suite in the test collection, and it’s pulling the original values.

I don’t want to add code to consume the test data, at the very least I would expect the test data to refresh between test suites (even it not between test cases in same test suite.).

Thanks!

@just-passin-thru
I was not able to use the Test Data to do it. But I added code in the Test Listener to save to the Excel file. As soon as the TC is done for that iteration, I use the ID created for the account and a Pass/Fail Variable and save it to the Test file. So the Datafile is updated after every iteration. Below is the code on how I do it in Test Listener. I search for the row in the Test File using one of the values in the variables, in my case below it is the email. Hope this helps.

@AfterTestCase
def sampleAfterTestCase(TestCaseContext testCaseContext, TestData testData) {
String accexcel=“C:\xxxx\xx.xlsx”
String ContractNumber = GlobalVariable.ContractNumber
String PassFail
String ErrorMsg = GlobalVariable.ErrorMsg

		switch (testCaseContext.getTestCaseStatus()) {
				case 'FAILED':
					PassFail = "Fail"; 
					break
				case 'ERROR':
					PassFail = "Fail"; 
					break
				case 'PASSED':
					PassFail = "Pass"; 
					break
		}
					
		XSSFWorkbook workbook1 = ExcelKeywords.getWorkbook(accexcel)
		XSSFSheet sheet1 = ExcelKeywords.getExcelSheet(workbook1, "ISA Bulk Certification")
		
		String studentEmail = testCaseContext.getTestCaseVariables().get("StudentEmail")
		int rowIndex = ExcelKeywords.getRowIndexByCellContent(sheet1, studentEmail, 5)
		
		if (ContractNumber == null) { ContractNumber = "Student is not created" }  			
		ExcelKeywords.setValueToCellByIndex(sheet1, rowIndex, 0, ContractNumber)
		ExcelKeywords.setValueToCellByIndex(sheet1, rowIndex, 1, PassFail + " - " + ErrorMsg)
		ExcelKeywords.saveWorkbook(accexcel, workbook1)

}

Awesome, thanks so much for the detailed reply!