This commit is contained in:
@@ -28,6 +28,7 @@ CREATING NOTIFICATIONS
|
||||
OBJECTS Saving an object triggers notification processing for that object:
|
||||
- in v7 biz object just submits any possible notification and later it's checked to see if anyone subscribes
|
||||
would be better to short circuit that at the biz object to stop if no events of interest
|
||||
- TODO: Every corebiz object needs at least to support created / updated with tag type as a minimum
|
||||
- type and id is submitted to eventofinterest checker (possibly also tags I think)
|
||||
AyaType, ID, eventlist,objectbefore,objectafter
|
||||
eventofinterest db table contains each type and event id
|
||||
@@ -49,6 +50,11 @@ 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
|
||||
empty means any
|
||||
OutTags - notify cancelled if has these tags
|
||||
empty means any
|
||||
out trumps an in, default is safer option
|
||||
|
||||
CONDITION
|
||||
has optional condition fields (in v7 was guidvalue for wo status type, but we need more [investigate?])
|
||||
@@ -82,7 +88,12 @@ v7 - NotifyPopup contains UI deliveries
|
||||
|
||||
V8 TABLES
|
||||
notifysubscription - contains all users 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
|
||||
(aID, aUserID, ayatype, aEventType, advancenoticetimespan, aGuidValue, aDeliveryMethod, deliveryaddress, HASH)
|
||||
note use of subscriberid (0=all of type, or specific ID) and type, this would normally be type user and the user id but covers also the case of setting up a subscription for *ALL* customers (type customer id =0 meaning all)
|
||||
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
|
||||
These are also used for tag type conditions
|
||||
(aID, subscriberId, subscriberAyaType, ayatype, aEventType, advancenoticetimespan, aGuidValue, aDeliveryMethod, deliveryaddress, intags, outtags, HASH)
|
||||
Notifyevent - contains all events, created by updating objects or directly in some cases and used by generator for processing as deliveries
|
||||
ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH?
|
||||
notifydeliverylog - intended for troubleshooting, logs deliveries with a cap on how many records it retains. Keeping this as a separate and distinct OPS ui thing
|
||||
@@ -106,15 +117,15 @@ ALL EVENT TYPES INITIAL RELEASE
|
||||
|
||||
|
||||
## OLD
|
||||
WorkOrderStatusChange [GENERAL] [CONDITION: STATUS]
|
||||
WorkOrderStatusChange [GENERAL] [CONDITION: WOSTATUS integer]
|
||||
ContractExpiring (User notify, add more notify before time frames in cases) [GENERAL]
|
||||
CSRAccepted [CUSTOMER]
|
||||
CSRRejected [CUSTOMER]
|
||||
NewWorkorder [CUSTOMER]
|
||||
WorkorderStatusChange [CUSTOMER]
|
||||
WorkorderStatusChange [CUSTOMER] [CONDITION: WOSTATUS integer]
|
||||
WorkorderClosed [CUSTOMER]
|
||||
WorkorderFollowUp [CUSTOMER]
|
||||
QuoteStatusChanged [CUSTOMER]
|
||||
QuoteStatusChanged [CUSTOMER] [CONDITION: QUOTESTATUS integer]
|
||||
ServiceBank[Currency/Hours/Incidents]Depleted [GENERAL]
|
||||
NewCSR [GENERAL]
|
||||
NewMemo [PERSONAL]
|
||||
@@ -125,7 +136,7 @@ ScheduleMarkerCreated (will rename) [PERSONAL]
|
||||
WorkorderItemScheduledUserCreatedUpdated [PERSONAL]
|
||||
WorkorderItemScheduledUserEventImminent [PERSONAL]
|
||||
WorkorderCloseByDatePassed (user) [general]
|
||||
WorkorderStatusChanged (user) [GENERAL]
|
||||
WorkorderStatusChanged (user) [GENERAL] [CONDITION: WOSTATUS integer]
|
||||
WorkorderItemOutsideServiceOverdue [general]
|
||||
WorkorderItemOutsideServiceReceivedBack [GENERAL]
|
||||
WorkorderItemPartRequestPartsReceived [GENERAL]
|
||||
@@ -139,14 +150,23 @@ BackupStatus case 3786 (biz and ops) [GENERAL]
|
||||
UpcomingServiceEvent case 3725 [CUSTOMER]
|
||||
WorkorderItemPartRequestCreated case 3652 [GENERAL]
|
||||
ContractExpiring - Customer version in addition to User version [CUSTOMER]
|
||||
WorkorderTotalExceedsThreshold - Custom notification case 1745 "the andy" [GENERAL]
|
||||
WorkorderTotalExceedsThreshold - Custom notification case 1745 "the andy" [GENERAL] [CONDITION: DOLLARTOTAL money value]
|
||||
WorkOrderStatusAge "deadman" delivery if not changed before XX time period [GENERAL]
|
||||
|
||||
QuoteStatusAge [PERSONAL (prepared by), GENERAL]
|
||||
UnitWarranyExpiry case 1361 [GENERAL]
|
||||
UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
|
||||
DefaultNotification case 3792 used for all system and old Quick notifications [EVERYONE]
|
||||
TagNotification case 3799
|
||||
TagNotification case 3799 [CONDITION: intag, outtag, 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]
|
||||
ObjectCreated
|
||||
ObjectUpdated
|
||||
ObjectDeleted
|
||||
|
||||
PERSONAL? OR COVERED BY TAG FILTER ALREADY BETTER?
|
||||
WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL]
|
||||
|
||||
Reference in New Issue
Block a user