Home Forum Nuclos Konfiguration Vorgänge und Objekte Generische Kommentare in Regeln erzeugen

  • Dieses Thema hat 3 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren von Fry123.
Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #9162
    Ronald Sedelies
    Teilnehmer

    Hallo!
    Ich benutze in meinen Layouts die Funktionalität, Kommentare von Nuclos verwalten zu lassen. Das funktioniert, indem man in einer Subform als Businessobjekt „nuclos_generalsearchcomment“ und im Fremdschlüssel „generigObject“ einträgt.
    So weit so gut.
    Jetzt möchte ich innerhalb einer Regel einen Kommentar erzeugen, und ich finde keine Methode, mit der ich das machen kann.

    Bei Benutzung von Anhängen funktioniert es in Subforms analog (also Businessobjekt „nuclos_generalsearchdocument“ und „genericObject“ eintragen). In Regeln kann dann einfach die Methode „public void insertAttachment(org.nuclos.api.common.NuclosFile pNuclosFile, java.lang.String pComment)“ benutzt werden, um einen Anhang hinzuzufügen.

    Gibt es eine Möglichkeit, Kommentare innerhalb einer Regel zu erzeugen?

    Viele Grüße

    Ronald

    #9167
    Fry123
    Teilnehmer

    Es gibt keine Methode in AbstractBusinessObject die das kann. Ich stand vor dem gleichen Problem. Ich habe mir einen Hilfsklasse gebaut welche dann wie ein BusinessObject funktioniert. Das ganze kann als eingebettete Klassen innerhalb einer Regel Klasse verwendet werden. Das einzige was unschön daran ist, dass man eventuell mal die static uids bei einem update prüfen muss.

    // imports den Regel imports beifügen
    import java.util.Date;

    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.server.nbo.AbstractBusinessObject;

    // eingebete Klasse
    public class GenericObjectComment extends AbstractBusinessObject implements Modifiable {
    // statics müssen bei einem update überprüft werden.
    public final static String GENERIC_COMMENT_UID = „sVjr“;
    public final static String GENERIC_COMMENT_COMMENT_FIELD = „sVjra“;
    public final static String GENERIC_COMMENT_DATE_FIELD = „sVjrb“;
    public final static String GENERIC_COMMENT_OBJECT_ID_FIELD = „sVjrc“;

    public GenericObjectComment() {
    super(GENERIC_COMMENT_UID);
    }

    /**
    * Erstellt einen neuen Kommentar den man dann mit dem
    * BusinessObjectProvider eintragen kann.
    *
    * @param comment Kommentar Text
    * @param date Datum des Kommentars
    * @param objectId Bezugsobject des Kommentars
    */
    public GenericObjectComment(String comment, Date date, Long objectId) {
    this();
    setComment(comment);
    setDate(date);
    setObjectId(objectId);
    }

    /**
    * Erstellt einen neuen Kommentar mit dem aktuellen Datum den man dann mit dem
    * BusinessObjectProvider eintragen kann.
    * @param comment Kommentar Text
    * @param objectId Bezugsobject des Kommentars
    */
    public GenericObjectComment(String comment, Long objectId) {
    this();
    setComment(comment);
    setDate(new Date());
    setObjectId(objectId);
    }

    public void setComment(String comment) {
    setField(GENERIC_COMMENT_COMMENT_FIELD, comment);
    }

    public void setDate(Date date) {
    setField(GENERIC_COMMENT_DATE_FIELD, date);
    }

    public void setObjectId(Long id) {
    setFieldId(GENERIC_COMMENT_OBJECT_ID_FIELD, id);
    }

    // beispiel wie man das dann in der Regel benutzt:
    GenericObjectComment commentObject = new GenericObjectComment(„Hallo Welt“, new Date(), artikel.getId());
    BusinessObjectProvider.insert(commentObject);

    #9169
    Ronald Sedelies
    Teilnehmer

    Vielen Dank, das funktioniert super!

    Eine Frage habe ich noch: In welcher DB-Tabelle finde ich die static uids?

    #9170
    Fry123
    Teilnehmer

    Ich habe mir diese auf der org.nuclos.common.E.java geholt.

    https://bitbucket.org/nuclos/nuclos/src/7f1079fac9521836a8f743d15928923767667ac4/nuclos-common/src/main/java/org/nuclos/common/E.java?at=master&fileviewer=file-view-default

    Leider habe ich es nicht geschafft aus der Regel heraus direkt auf diese Klasse zu instanziieren. Das wäre natürlich der Königs weg. Vielleicht schafft es ja jemand anders.

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)