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.
-
AutorBeiträge
-
1 Dezember 2016 um 22:24 Uhr #9162
Ronald Sedelies
TeilnehmerHallo!
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
2 Dezember 2016 um 10:31 Uhr #9167Fry123
TeilnehmerEs 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);2 Dezember 2016 um 11:44 Uhr #9169Ronald Sedelies
TeilnehmerVielen Dank, das funktioniert super!
Eine Frage habe ich noch: In welcher DB-Tabelle finde ich die static uids?
2 Dezember 2016 um 12:18 Uhr #9170Fry123
TeilnehmerIch habe mir diese auf der org.nuclos.common.E.java geholt.
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.
-
AutorBeiträge