GReisner
I'm new here

Export von Datenquellen per Skript

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.

Export_1.PNG

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?

7 Replies
gockel
Crownpeak employee

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

0 Kudos

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ß

0 Kudos

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

0 Kudos

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.


0 Kudos
gockel
Crownpeak employee

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 Smiley Wink) 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 Smiley Happy

Und die böse while-Schleife ist auch raus.

Beste Grüße

Felix

0 Kudos