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);