Hallo Felix,
erst mal vielen Dank für das Script. HTML und CSS ist meine Welt. Firstspirit klappt mittlerweile auch ganz gut, aber JAVA - auweia. Deshalb kann ich auch mit der Fehlermeldung nicht so viel anfangen. Vielleicht kannst Du mir da weiter helfen.
Also ich habe jetzt folgendes getan.
- für Testzwecke eine neue Datenquelle angelegt,
- In der Vorlagenverwaltung unter Scripte ein neues Skript erstellt,
- Geltungsbereich: Menu
- und im jsp-Ausgabekanal Dein Scipt angepasst eingefügt.
Es scheint übrigens egal zu sein ob ich "//! Beanshell" in die erste Zeile schreibe oder nicht.
Wie macht man hier eigentlich Code aus den Zeilen?
final String SCHEMA_NAME = "sanacorp";
final String TABLE_NAME = "meatest";
//Auswahl der CSV Datei
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(false);
int selection = fileChooser.showOpenDialog(null);
if (selection == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
// Ermitteln der Session, um darüber Entities zu erzeugen
UserService uss = context.getUserService();
Schema schema = uss.getTemplateStore().getSchemes().getSchemaByName(SCHEMA_NAME);
Session session = schema.getSession();
String tableName = schema.getOrSchema().getEntityType(TABLE_NAME).getName();
// Auslesen der CSV Zeile pro Zeile
BufferedReader reader = null;
String line = "";
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while ((line = reader.readLine()) != null) {
// Datensatz erzeugen
Entity ent = session.createEntity(tableName);
String[] fields = line.split(";"); //Semikolon ggf. durch dein CSV-Trennzeichen ersetzen
// Datensatz befüllen
ent.setValue("name1", fields[0]);
ent.setValue("datum1", fields[1]);
ent.setValue("zahl1", fields[2]);
//usw...
}
session.commit();
} catch (IOException e) {
//Fehler beim auslesen der Datei
} finally {
//Reader schließen
}
context.logInfo("Fertig");
} else {
context.logInfo("Keine Datei gewählt");
}
Fehlermeldung: erscheint nach dem ich die zu importierende Datei ausgewählt habe.
Client Version: 5.1.605.72781
Java Version: 1.8.0_91 Oracle Corporation
FSVersion=5.1.605.72781#4692;JDK=1.8.0_91 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=27.03.2017 10:30:45
de.espirit.firstspirit.access.script.ExecutionException: Typed variable declaration : Class: UserService not found in namespace : at Line: 14 : in file: inline evaluation of: ``__execute() { final String SCHEMA_NAME = "sanacorp"; final String TABLE_NAME = " . . . '' : UserService
at line 14
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:111)
at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:114)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:106)
at de.espirit.firstspirit.common.ScriptUtil.executePrivileged(ScriptUtil.java:161)
at de.espirit.firstspirit.common.ScriptUtil.access$000(ScriptUtil.java:31)
at de.espirit.firstspirit.common.ScriptUtil$2.run(ScriptUtil.java:148)
at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1958)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: bsh.EvalError: Typed variable declaration : Class: UserService not found in namespace : at Line: 14 : in file: inline evaluation of: ``__execute() { final String SCHEMA_NAME = "sanacorp"; final String TABLE_NAME = " . . . '' : UserService
at bsh.BSHAmbiguousName.toClass(BSHAmbiguousName.java:73)
at bsh.BSHType.getType(BSHType.java:154)
at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:75)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BSHBlock.eval(BSHBlock.java:46)
at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BshMethod.invokeImpl(BshMethod.java:371)
at bsh.BshMethod.invoke(BshMethod.java:267)
at bsh.BshMethod.invoke(BshMethod.java:170)
at bsh.PreparsedScript.invoke(PreparsedScript.java:66)
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)
... 9 more
Caused by: java.lang.ClassNotFoundException: Class: UserService not found in namespace
at bsh.Name.toClass(Name.java:664)
at bsh.BSHAmbiguousName.toClass(BSHAmbiguousName.java:71)
... 22 more
VG Holger