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().