CUD Events

This question is not answered

Hi,

 

I hope you can help me.

 

When a record in a table is inserted/updated/deleted, I should realize that. This should be done from any table

In a .NET-project should then be queried in time, whether an CUD-event has occurred. There I need the following information of the events: RecId, event type and which table.

I currently have a X++-delegate, where an C#-method is registered. This method throws me a string with the information in the msmq (Microsoft Message Queuing). But it currently only works for one table.

 

How could this be achieved?


Thank you for your help in advance already

mfg

All Replies
  • If you do it for all tables, all set-based operations (e.g. update_recordset) across the whole AX will degrade to record-per-record processing, hurting performance. And do you really need events for, say, InventSumLogTTS or AifOutboundProcessingQueue tables?

    If I really wanted to do some processing of too many tables, I would consider to use database log in AX. That's managed by AX kernel but it gives you a chance to inject some X++ code to the process. For example, you could change Application.logInsert() to send the event to you and skip writing to SysDataLog table.

    But performance, performance is what you have to consider carefully.

  • Just to add to my last suggestion - events (EventCUD table) may be even better choice.