aVogt
Returning Creator

Kopieren eines Datensatzes unter FS4.2.4

Hallo,

in einem Arbeitsablauf kopiere ich einen Datenbankeintrag:

ContentWorkflowable WF = (ContentWorkflowable) context.getWorkflowable();
Entity ent = WF.getEntity();
UserService us = context.getUserService();
TemplateStoreRoot ts = (TemplateStoreRoot) us.getStore(de.espirit.firstspirit.access.store.Store.Type.TEMPLATESTORE,false);
Schema schema = ts.getSchemes().getSchemaByName("SFO");
...
Session sess = schema.getSession();
List lastent =  sess.getInvalidEntities(ent.getKeyValue());
log.WFlogInfo("\t\tAnzahl: "+lastent.size());
Iterator it = lastent.iterator();
while(it.hasNext()) {
Entity item = (Entity) it.next();
if(item.isReleased()) {
  Entity newEntAbgelFZ = cpSess.createEntity("VORDRUCKE");
  log.WFlogInfo("\t\tangelegt");
  newEntAbgelFZ.copyFrom(item);
  log.WFlogInfo("\t\tKopie angelegt");
  ...
 
bisher funktionierte die Vorgehensweise. Die Funktion scheint nach den Update auf FS 4.2.454.47473 nicht mehr verwendet worden sein.
Hat sich etwas an der Vorgehensweise geändert?


Grüße
Andreas

0 Kudos
1 Reply
aVogt
Returning Creator

ach ja, als Fehler bekomme ich:

add(): wrong session

Der Fehler tritt bei newEntAbgelFZ.copy(item) auf

Nachricht geändert durch Andreas Vogt 17.04. 11:30

Mittlerweile bekomme ich noch eine andere Meldung:

      value 'null' not valid for attribute 'MEV_BGDList'

das MEV_BGDList ist ein Name, über den eine 1:N Beziehung zu einer anderen Tabelle angesprochen werden kann. Für das Feld muss nie etwas als Pflichangabe angegeben werden.

alle anderen Beziehungen sind n:1 bzw. m:n

Nachricht geändert durch Andreas Vogt 17.04. 12:04

An der 1:n Beziehung hängt es anscheinend nicht. Habe diese gelöscht und es geht auch nicht. Wie ich mitbekommen habe, wird der datensatz angelegt und (manchmal) mit dem kopieren begonnen. Einige Werte werden gesetz. Allerdings scheint dann beim kopieren/setzen eines Wertes der Fehler aufzutreten. Bei welchem Wert das auftritt kann ich nicht sagen, da er die Werte in einer mir unbekannten Reihenfolge kopiert.

Das anlegen eines neues Datensatzes funktioniert. Auch das anschließende manuelle setzen der Werte (ist aber aufwendig (43 Werte) und sicher zeitintensiver)

Nachricht geändert durch Andreas Vogt 18.04. 12:11

Es scheint nun doch an den Beziehungen zu liegen. Ich kopiere die felder manuell. Bei allen Feldern klappt dies. Kopiere ich nun eine 1:n oder m:n Beziehung (hoffe, die kann man so einfach kopieren, sonst wird es ja sehr aufwendig), tritt der Fehler mit der wrong session auf.

Ich werd mich da mal an den Helpdesk wenden ...

(Ergebnisse gibts dann hier)

0 Kudos