PublishEvent
X will get the default implementation for PublishEvent().
The on execute hook for the PublishEvent in Y contains the following code:
#define CHECK_RET(retval, ...)
^ if retval <> 0 then
^ dal.set.error.message(…)
^ return(DALHOOKERROR)
^ endif
long request | PublishEvent request for business object X
long retl | return value to be checked
long duml | dummy variable (PublishEvent does not return an error value)
retl = replaceBdeNameInRequest(i.request, “X”, request)
CHECK_RET(retl, ...)
retl = exec_dll_function(“oppmmmbl001sb00”, “ppmmm.bl001sb00.PublishEvent”,
duml, request, o.response, o.result)
| We must dynamically invoke this method, because Y is generated
| from the Business Studio before generating X, so a direct invocation
| of X from Y will not compile
| Note: PublishEvent never returns an error value (instead it publishes an error message if needed)
| so we only need to check whether the load and exec was successful
CHECK_RET(retl, ...)
duml = xmlDelete(request)
return(0) | OK
The implementation for Z is comparable to Y