IDEMPIERE-6136 ModelEventDelegate doesn't works with DocAction, PostCreate, PostUpdate and PostDelete annotation (#2346)

This commit is contained in:
hengsin 2024-05-06 21:58:34 +08:00 committed by Carlos Ruiz
parent 39fff47de6
commit 47f1336df4
2 changed files with 12 additions and 2 deletions

View File

@ -31,6 +31,7 @@ import java.util.stream.Collectors;
import org.adempiere.base.BaseActivator;
import org.adempiere.base.event.annotations.BaseEventHandler;
import org.compiere.model.PO;
import org.compiere.util.CLogger;
import org.compiere.util.Env;
import org.compiere.util.Ini;
@ -332,8 +333,11 @@ public class EventManager implements IEventManager {
} else {
Map<String, Object> map = new HashMap<String, Object>(3);
map.put(EventConstants.EVENT_TOPIC, topic);
if (data != null)
if (data != null) {
map.put(EVENT_DATA, data);
if (data instanceof PO po)
map.put(TABLE_NAME_PROPERTY, po.get_TableName());
}
map.put(EVENT_ERROR_MESSAGES, new ArrayList<String>());
if (copySessionContext)
map.put(EVENT_CONTEXT, getCurrentSessionContext());

View File

@ -28,12 +28,13 @@ import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import org.adempiere.base.event.IEventTopics;
import org.adempiere.base.event.POEventData;
import org.compiere.model.PO;
/**
* Event data for {@link IEventTopics#DOCACTION}.
*/
public class DocActionEventData {
public class DocActionEventData implements POEventData {
public String docStatus;
public Object processing;
@ -70,4 +71,9 @@ public class DocActionEventData {
this.po = po;
}
@Override
public PO getPo() {
return po;
}
}