Я пытаюсь экспортировать файл фида, используя следующий код:
String appname = "abc";
String path = "//home/exportfile//";
String filename = path + "Uncorrelated_ApplicationExport-" + appname + ".txt";
String ret = "false";
QueryOptions ops = new QueryOptions();
Filter[] filters = new Filter[1];
filters[0] = Filter.eq("application.name", appname);
ops.add(filters);
List props = new ArrayList();
props.add("identity.name");
// Do search
Iterator it = context.search(Link.class, ops, props);
// Build file and export header row
BufferedWriter out = new BufferedWriter(new FileWriter(filename));
out.write("Userid~First_Name~Last_Name~Facility/CBO~Title~Menu");
out.newLine();
// Iterate Search Results
if (it != null)
{
while (it.hasNext())
{
// Get link and create object
Object[] record = it.next();
String identityName = (String) record[0];
Identity user = (Identity) context.getObject(Identity.class, identityName);
// Get Identity attributes for export
String workforceid = (String) user.getAttribute("workforceID");
// Get application attributes for export
List links = user.getLinks();
if (links != null)
{
Iterator lit = links.iterator();
while (lit.hasNext())
{
Link l = lit.next();
String lname = l.getApplicationName();
if (lname.equalsIgnoreCase(appname))
{
if (workforceid == null)
{
userid = (String) l.getAttribute("Userid");
fn = (String) l.getAttribute("First Name");
ln = (String) l.getAttribute("Last Name");
menu = (String) l.getAttribute("Menu");
List fac = l.getAttribute("Facility/CBO");
List title = l.getAttribute("Title");
for (Object fac1 : fac)
{
for (Object title1 : title)
{
// Output file
out
.write(userid + "~" + fn + "~" + ln + "~" + fac1 + "~" + title1 + "~"
+ menu);
out.newLine();
out.flush();
}
}
}
}
}
}
}
ret = "true";
}
// Close file and return
out.close();
return ret;
Когда я выполняю приведенный выше код, я получаю следующую ошибку:
Произошла непредвиденная ошибка: java.lang.Exception: Sailpoint.tools.GeneralException: ошибка сценария BeanShell: Исходный файл: встроенная оценка: import java.io.FileWriter; импортировать java.io.File; импортировать java.io.B . . . '' : Часть коллекции, массива, карты, итератора или перечисления оператора for не может быть нулевой. : в строке: 80 : в файле: встроенная оценка: ``import java.io.FileWriter; импортировать java.io.File; импортировать java.io.B . . . '' : for ( Object title1 : title ) { Информация BSF:
Я знаю, что в моем файле канала есть несколько пустых записей в столбце заголовка, поэтому в идеале код должен записывать в файл все, кроме столбца заголовка, если он пуст. может ли кто-нибудь помочь мне, где я могу внести изменения в код?