Search the FirstSpirit Knowledge Base
Hallo Zusammen,
ich möchte über den FeatureCreator FS-Artifakte exportieren, um sie dann wieder zu importieren.
Der Export von Templates funktioniert ohne Probleme. Es sollen jedoch auch die Datenquellen und deren Inhalte exportiert werden.
Es werden jedoch nicht die Inhalte mit in das zip-File rausgeschrieben.
Die Datei "data.xml" ist bei mir leer.
Die anderen Informationen scheinen korrekt zu sein.
Ich habe beide Varianten bereis ausprobiert:
Vielen Dank.
Günther
featureCreator.addEntities() oder featureCreator.addElement()
Hat jemand bereits Erfahrung damit gesammelt und kann mir weiterhelfen?
Hallo,
das ist keine KEINE Api. Keine Ahnung, wie sie darauf kommen diesen verwenden zu wollen. Von einer Verwendung dieser Klasse ist dringend abzuraten.
Korrekt ist der Weg über die API:
Hallo zusammen,
ich antworte jetzt mal hier statt eine neue Diskussion aufzumachen.
Ich möchte ebenfalls Datenquellen-Inhalte automatisiert mit FeatureTransport transportieren.
Dabei scheitere ich allerdings beim Erstellen des Features bereits daran, dass es am Ende nicht vollständig ist. Es wird eine Zip-Datei erstellt mit der entsprechenden entries.xml, feature.xml und info.txt, ansonsten ist sie leer. Hier mal der gekürzte Code:
Project prj = context.getProject();
UserService uss = prj.getUserService();
SpecialistsBroker broker = uss.getConnection().getBroker().requireSpecialist(BrokerAgent.TYPE)
.getBrokerByProjectName(prj.getName());
FeatureAgent agent = broker.requireSpecialist(FeatureAgent.TYPE);
FeatureDescriptor featureDescriptor = agent.createFeature("TemporaryDataSourceFeature", context.getProject()
.getRevision(new java.util.Date()), false);
FeatureModel featureModel = agent.createFeatureModel(featureDescriptor);
Dataset data = content2.getDataset(entity);
featureModel.add(data);//returns true
agent.saveFeature(featureModel);
ServerActionHandle featureProgress = agent
.createFeatureTransportFile(featureDescriptor);
try {
featureProgress.getResult(false);
} catch (Exception e1) {
...ErrorHandling...
}
FeatureProgress progress = featureProgress.getProgress(false);
while (!progress.isFinished()) {
...Warten...
}
return agent.downloadFeatureFile(progress.getFeatureFile());
Der progress ist am Ende beendet, das sollte also passen. Hat jemand eine Idee, woran es hier scheitern könnte?
Zudem bekomme ich über featureModel.getMissingReferences() nach dem Hinzufügen des DataSets leider auch nur ein Pair mit zwei leeren Listen. Müssten an dieser Stelle bereits die fehlenden Referenzen zurückkommen?
Danke und Gruß
Felix
Hallo Felix,
wäre sinnvoll gewesen eine neue Diskussion zu starten inklusive aller Infos (FS-Version, ....) (siehe auch: Demo Posting)
Kannst du die Infos (mind. FS-Version) mal bitte ergänzen.
Gruß
Hallo Sebastian,
danke für die Info, beim nächsten mal mache ich einen neuen Post auf (oder soll ich das hier lieber auch noch nachträglich machen?).
Infos:
FirstSpirit Client 5.0_BETA.308.56374
Version Server: 5.0_BETA.308.56374
Speicher: 74,63 von 494,94 MByte belegt
Java Version: 1.6.0_43 32bit Sun Microsystems Inc.
Betriebssystem: Windows 7 6.1 x86
Viel mehr Infos habe ich leider gar nicht, dass es zu keinem Fehler kommt.
Ich habe mal das Feature angehängt, dass erstellt wird.
Beste Grüße
Felix
Unabhängig von der vorliegenden Problemstellung ist hier erst mal zu sagen, dass die eingesetzte Version 5.0_BETA.308 , wie der Zusatz BETA schon erkennen lässt, eine NICHT freigegeben Version ist. Die aktuell freigegeben Version der Linie ist die 5.0.318.
Es sollte auf jeden Fall zeitnah auf die freigegebene Version aktualisiert werden.
Hallo Felix,
hier handelt es sich tatsächlich um einen Bug. Dieser wird intern unter der Nummer #136568 geführt. Du kannst dich beim unserem Helpdesk über dessen Verlauf erkundigen.
Es gibt allerdings einen Workaround, den du auch in dem aktuell freigegebenen Versionsstand (5.0.318 ) verwenden kannst.
agent.saveFeature(featureModel);
// workaround for #136568 -> request featureDescriptor after save()
features = agent.getFeatureDescriptors();
for (feature : features) {
// search feature
if (feature ....) {
featureDescriptor = feature;
}
}
// end workaround
serverActionHandle = agent.createFeatureTransportFile(featureDescriptor);
//generelle Anmerkung
serverActionHandle.getResult(false);
// vorheriger Aufruf ist ein blockierender Aufruf, also ist die while-Schleife aus deinem Code unnöti
progress = serverActionHandle.getProgress();
Perfekt, besten Dank! So funktioniert es nun
Und die böse while-Schleife ist auch raus.
Beste Grüße
Felix