I am following the documentation here on exporting a structure to excel using ScriptRunner. My aim is have to this saved as a Job to run periodically.
This is the script exactly:
<span>import</span> com<span>.</span>atlassian<span>.</span>jira<span>.</span>component<span>.</span>ComponentAccessor
String fileName <span>=</span> <span>'filename.xls'</span>
String userName <span>=</span> <span>'admin'</span>
Long structureId <span>=</span> <span>1L</span>
Long viewId <span>=</span> <span>2L</span>
String viewSpec <span>=</span> null
String expandState <span>=</span> null
String clientFilter <span>=</span> null
<span>def</span> plugin <span>=</span> ComponentAccessor<span>.</span>pluginAccessor<span>.</span><span>getPlugin</span><span>(</span><span>'com.almworks.jira.structure'</span><span>)</span>
<span>def</span> helper <span>=</span> plugin<span>.</span><span>getModuleDescriptor</span><span>(</span><span>'helper'</span><span>)</span><span>.</span>module
<span>def</span> ExcelExporter <span>=</span> plugin<span>.</span>classLoader<span>.</span><span>loadClass</span><span>(</span><span>'com.almworks.jira.structure.export.excel.ExcelExporter'</span><span>)</span>
<span>def</span> exporter <span>=</span> helper<span>.</span><span>instantiate</span><span>(</span>ExcelExporter<span>)</span>
<span>def</span> ForestSpec <span>=</span> plugin<span>.</span>classLoader<span>.</span><span>loadClass</span><span>(</span><span>'com.almworks.jira.structure.api.forest.ForestSpec'</span><span>)</span>
<span>def</span> spec <span>=</span> ForestSpec<span>.</span><span>structure</span><span>(</span>structureId<span>,</span> helper<span>.</span>userManager<span>.</span><span>getUser</span><span>(</span>userName<span>)</span><span>)</span>
exporter<span>.</span><span>configure</span><span>(</span>viewId<span>,</span> viewSpec<span>,</span> spec<span>,</span> expandState<span>,</span> clientFilter<span>)</span>
exporter<span>.</span><span>prepareExport</span><span>(</span><span>)</span>
exporter<span>.</span><span>createWorkbook</span><span>(</span><span>{</span>null<span>}</span><span>)</span>
<span>def</span> stream <span>=</span> <span>new</span> <span>FileOutputStream</span><span>(</span>fileName<span>)</span>
<span>try</span> <span>{</span>
exporter<span>.</span><span>writeWorkbookTo</span><span>(</span>stream<span>)</span>
<span>}</span> <span>finally</span> <span>{</span>
stream<span>.</span><span>close</span><span>(</span><span>)</span>
<span>return</span> <span>new</span> <span>File</span><span>(</span>fileName<span>)</span><span>.</span><span>toPath</span><span>(</span><span>)</span><span>.</span><span>toAbsolutePath</span><span>(</span><span>)</span>
<span>}</span>However, the code gives error under
helper<span>.</span><span>instantiate</span><span>(</span>ExcelExporter<span>)</span>
that scriptrunner cannot not find a matching method for "instantiate" . What is the correct method?
In addition, on structure, how do I locate my viewID? I found my structureID, but not my saved View. Or, can I append this script so that it can search via a shared structure link?