Ausführen eines Imports

MethodeBeispiel
run


import org.nuclos.api.provider.ImportProvider;
import de.customer.SEPACodeStrukturDefinitionISD;

public void insert(InsertContext context) throws BusinessException {
        try {
  			// Get data from file system
            NuclosFile sourceFile = FileProvider.newFile("/home/ftp/documents/SEPA-Code.csv");
            
			// Execute import
            ImportResult run = ImportProvider.run(sourceFile, false, SEPACodeStrukturDefinitionISD.class);
            
            if(run.hasErrors()) {
                throw new BusinessException(run.getMessages());
            }
			else {
				NuclosMail nuclosMail = new NuclosMail("automaticImport@myCompany.de", "Datenimport fuer " + sourceFile.getName());
           		nuclosMail.addAttachment(sourceFile);
				nuclosMail.addAttachment(run.getLogFile());
	     		nuclosMail.setMessage("Erfolgreicher Datenimport fuer " + sourceFile.getName() + "\n\n" + run.getMessages());
            
            	MailProvider.send(nuclosMail);
			}
            
        } catch (Exception e) {
            throw new BusinessException(e);
        }
        
        
    }

Erläuterung:

Die Ausführung eines Datenimports über den ImportProvider kann aus jeder Regel heraus vorgenommen werden. Im oberen Beispiel sollen SEPA Daten in das Nuclos System geladen werden. Die externen Daten befinden sich in einer CSV-Datei auf dem Server. Diese Informationen werden in eine NuclosFile geladen und dem Provider samt zuständiger StrukturDefinition übergeben. Als Resultat erhalten wir ein ImportResult-Object. Sollte ein Fehler aufgetreten sein (hasErrors()), wird eine BusinessException geworfen und die Regelverarbeitung abgebrochen. Wenn nicht, werden die Textnachrichten, die Log-Datei und die Datendatei selbst als Bestätigung an eine Email-Adresse weitergeleitet.

Im Falle eines Laufzeit-Fehlers wird eine BusinessException geworfen.

FAQ

Wie kann ich herausfinden, wie meine Strukturdefinition heißt bzw. was ist SEPACodeStrukturDefinitionIDS.class?

SEPACodeStrukturDefinitionIDS.class ist eine von Nuclos generierte Java Klasse die beim Anlegen oder Ändern der Strukturdefinition in diesem Fall
"SEPA Code Struktur Definition" erzeugt wird. Der Suffix IDS steht für Import Data Structure und muss dem eigentlichen Namen angehängt werden.

Nuclos exportiert alle Regeln und Businessobjekte in das Nuclos Basisverzeichnis unter data/codegenerator. Hier gibt es auch einen Ordner IDS welcher die Businessobjekte für die Strukturdefinitionen enthält.