This commit is contained in:
2020-07-16 17:58:23 +00:00
parent 35bf96e5c0
commit 9f0944d37b
10 changed files with 50 additions and 54 deletions

View File

@@ -66,8 +66,8 @@ TODO: Translation keys needed:
NotifyDeliveryMethod
NotifyEventType
NotifyDeliveryAddress
InTags
OutTags
tags
todo: updating subscriptions must clear out old events and notifications if they are affected
@@ -109,9 +109,9 @@ OBJECTS Saving an object triggers notification processing for that object:
DUPES - there can be near dupes here because user may have multiple of identical but vary in only:
Delivery method
advancenoticetimespan (e.g. contract expiring could be one 90 days in advance to renegotiate and then one 10 days in advance for notify service to cancel etc)
InTags - notify applies if has these tags
tags - notify applies if has these tags
empty means any
OutTags - notify cancelled if has these tags
s - notify cancelled if has these tags
empty means any
out trumps an in, default is safer option
@@ -186,11 +186,11 @@ MailMessageDelivery
/notifysubscription table - contains all user (and customer user) subscriptions to events and delivery method, if user wants two delivery
methods they have two entries here, no other table indicates events to be tracked, has user id
also ayatype GLOBAL means that the subscription applies to events of any corebiz type
so for example a CreatedWithTag notification or UpdatedWithTag notification will work on any object with that tag if global or a specific type i.e. customer with that tag
Then they can control by tag as well, intags are used to filter and include (or any if no intags), outtags filter out and trump intags
also ayatype must be specific not GLOBAL to avoid a "sorcerers apprentice" runaway issue and many role related issues potentially
so for example a CreatedWithTag notification or UpdatedWithTag notification will work on any object with that tag if a specific type i.e. customer with that tag
Then they can control by tag as well, tags are used to filter and include (or any if no tags), s filter out and trump tags
These are also used for tag type conditions
(aID, userId, ayatype, aEventType, advancenoticetimespan, agevalue, idvalue, decvalue, aDeliveryMethod, deliveryaddress, attachreportid, intags, outtags, HASH)
(aID, userId, ayatype, aEventType, advancenoticetimespan, agevalue, idvalue, decvalue, aDeliveryMethod, deliveryaddress, attachreportid, tags, s, HASH)
/Notifyevent table - contains all events, created by updating objects or directly in some cases and used by generator for processing as deliveries
created (timestamp used to clean out old stuck events), ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH?
@@ -261,13 +261,16 @@ UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
DefaultNotification case 3792 used for all system and old Quick notifications [EVERYONE]
Always present for inapp, user can add more for email if they want and filters or whatever but there is always a built in non-visible subscription to inapp for this
deprecated, use objectCUD events for this: TagNotification case 3799 [CONDITION: intag, outtag, ayatype global/specific]
deprecated, use objectCUD events for this: TagNotification case 3799 [CONDITION: tag, , ayatype global/specific]
(Note: this is actually just general notification if an object is created or updated and the tagging is optional)
CRUD Notifications:
(note: tag filterable and also can select type specifically or global for any type)
(note: differs from tag notification above in that only applies on a CHANGE of TAGS, this is an always for this op and tags are just an optional filter)
[CONDITION: intag, outtag, ayatype global/specific]
(note: tag filterable and select type specifically. Global is not a valid type for this to avoid issues)
(note:
### WHAT DOES THIS MEAN?:differs from tag notification above in that only applies on a CHANGE of TAGS, this is an always for this op and tags are just an optional filter)
[CONDITION: tag, , ayatype specific]
ObjectCreated
ObjectUpdated
ObjectDeleted