# How do you use BeforeProcessChange DeltaChangeEventArgs.CanRemove in business processor

**URL:** https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019
**Category:** Data Abstract
**Tags:** net
**Created:** [November 20, 2024, 3:32pm UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019 "2024-11-20T15:32:43Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![fvancrae](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/f/ad7895/32.png) [@fvancrae](https://talk.remobjects.com/u/fvancrae)
#### Post date: [November 20, 2024, 3:32pm UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019/1 "2024-11-20T15:32:43Z")

</div>

How do you prevent an update (delete) via business processors?

I found the CanRemove property in DeltaChangeEventArgs and specified that in my BP  
if (e.DeltaChange.Type == RemObjects.DataAbstract.ChangeType.Delete)  
{  
int oldKey = (int)e.DeltaChange.OldValues[fieldnameKey];  
if (recordIsRefernced(oldKey))  
e.CanRemove=false;

However the record still got deleted

I searched for CanRemove in the .cs files in C:\Users\Public\Documents\RemObjects Samples\Data Abstract for .NET\C# but found nothing

I searched for CanRemove in the docs but I find a lot of irrelevant (non C# info)

 ![image](https://talk.remobjects.com/uploads/default/original/3X/5/8/58be73d916a93632896f6e48c4c3d8dd03fed9a8.png)  
What is the best way to learn what CanRemove does?

And back to my original question: What is the best way to prevent a DB modification using a server side business processor.

---

<div class="post-metadata">

### Author: ![fvancrae](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/f/ad7895/32.png) [@fvancrae](https://talk.remobjects.com/u/fvancrae)
#### Post date: [November 20, 2024, 3:38pm UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019/2 "2024-11-20T15:38:40Z")

</div>

FYI: Meanwhile I found [Business Processors](https://docs.dataabstract.com/Technologies/BusinessProcessors/) which teaches me about blocking the modification but the CanRemove still is not clear to me

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [November 20, 2024, 3:50pm UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019/3 "2024-11-20T15:50:43Z")

</div>

Hi,

you can just raise exception for blocking change in correspondent event.

`CanRemove` - remove or keep successful delta change. by default, we remove successful delta change for reducing network traffic.

read more at [Updates](https://docs.dataabstract.com/Concepts/Updates/#processing-changes) article

---

<div class="post-metadata">

### Author: ![fvancrae](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/f/ad7895/32.png) [@fvancrae](https://talk.remobjects.com/u/fvancrae)
#### Post date: [November 20, 2024, 5:15pm UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019/4 "2024-11-20T17:15:25Z")

</div>

Thanks, the documentation was indeed there,  
It would be good however if I could filter the search results so it only shows .NET API, is that possible?

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [November 21, 2024, 8:02am UTC](https://talk.remobjects.com/t/how-do-you-use-beforeprocesschange-deltachangeeventargs-canremove-in-business-processor/31019/5 "2024-11-21T08:02:40Z")

</div>

Hi,

it can do search on all pages only
