Hello Adaptavist,
I have been looking for the class to use so that i can write results obtain from my script to CSV. but the script runner console does not recognize the class mentioned here
https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVPrinter.html
does any one knows the right class ? script runner version(5.8.0-p5)
import org.apache.commons.csv.CSVPrinter
the above is not recognized by script runner ;/
Kind regards,
Moses
@Leo This solution perfectly works in my case, i thought i could share, the java.io.FileWriter library was just hard to find, but i found it.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import java.io.FileWriter // already available for use no need to import
FileWriter attFds = new FileWriter("/sbclocal/apps/jira_home/export/Item.csv")
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
def searchService = ComponentAccessor.getComponent(SearchService)
def issueManager = ComponentAccessor.getIssueManager()
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def query = jqlQueryParser.parseQuery("Project = XYZ")
def search = searchService.search(user, query,PagerFilter.getUnlimitedFilter())
attFds.write("IssueKeys,IT,Summary")
attFds.write("\n")
for (item in search.results)
{
def issue = issueManager.getIssueObject(item.id)
CustomField cf10977 = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("customfield_10977")
String cf10977Value = issue.getCustomFieldValue(cf10977)
CustomField cf10911 = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("customfield_10911")
String cf10911Value = issue.getCustomFieldValue(cf10911)
String summary = issue.getSummary()
if( cf10977Value == cf10911Value) {
attFds.write("$issue,$cf10977Value,$summary")
attFds.write("\n")
}
}
Hi @Moses Thomas,
I never tried but you can refer below articles for more details
http://mindprod.com/application/csv.manual.html#CSVWRITER
// This is the CSV library Atlassian has built into Jira
// See https://wush.net/svn/mindprod/com/mindprod/csv/CSVWriter.java
import com.mindprod.csv.CSVWriter
// Convert a list of maps to a CSV string
def mapsToCSV(mapList) {
// Get keys from all maps and build a header row
def headerSet = new LinkedHashSet()
mapList.each { headerSet.addAll(it.keySet()) }
def headers = headerSet.toArray()
def sw = new StringWriter()
def csv = new CSVWriter(sw)
// Add header row
headers.each {csv.put(it.toString())}
csv.nl()
// Add rows - put in empty string if a header key doesn't exist in a row
mapList.each { row ->
headers.each {
csv.put(row.get(it)?.toString() ?: '')
}
csv.nl()
}
csv.close()
return sw.toString()
}
BR,
Leo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Leo Thanks for the reply, This is not solution in my case , i don't need to map lists / linked hash set. I just need to write to csv file of some out put, but i found another way and i need to test it on the server and i will give feed back once it worked.
Kind regards,
Moses
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.