UnsubscribeEvent
The implementation for the UnsubscribeEvent() is comparable to the implementation for SubscribeEvent(), but a bit simpler. The on execute hook for the UnsubscribeEvent of X contains the following code:
#pragma used dll oppmmmbl002sb00 | business object Y
#pragma used dll oppmmmbl003sb00 | business object Z
long retl | return value to be checked
long duml | dummy variable
retl = ppmmm.bl002sb00.SubscribeEvent(i.request, responseY, resultY)
retl = ppmmm.bl003sb00.SubscribeEvent(i.request, responseZ, resultZ)
duml = xmlDelete(responseY)
duml = xmlDelete(responseZ)
if resultY <> 0 or resultZ <> 0 then
o.result = combine.results(resultY, resultZ) | to be defined; unavailable in standard
duml = xmlDelete(resultY)
duml = xmlDelete(resultZ)
dal.set.error.message(…)
return(DALHOOKERROR)
else
o.result = 0
io.default = true | to make sure the subscription is removed for X!
| Limitation: if no subscription was created for X (because
| the subscription didn’t contain any specific events), a result
| will be returned even through the method succeeded
return(0) | OK
endif
Y and Z will get the default implementation for UnubscribeEvent().