This commit is contained in:
@@ -28,6 +28,7 @@ CREATING NOTIFICATIONS
|
|||||||
OBJECTS Saving an object triggers notification processing for that object:
|
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
|
- 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
|
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)
|
- type and id is submitted to eventofinterest checker (possibly also tags I think)
|
||||||
AyaType, ID, eventlist,objectbefore,objectafter
|
AyaType, ID, eventlist,objectbefore,objectafter
|
||||||
eventofinterest db table contains each type and event id
|
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:
|
DUPES - there can be near dupes here because user may have multiple of identical but vary in only:
|
||||||
Delivery method
|
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)
|
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
|
CONDITION
|
||||||
has optional condition fields (in v7 was guidvalue for wo status type, but we need more [investigate?])
|
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
|
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
|
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
|
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?
|
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
|
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
|
## OLD
|
||||||
WorkOrderStatusChange [GENERAL] [CONDITION: STATUS]
|
WorkOrderStatusChange [GENERAL] [CONDITION: WOSTATUS integer]
|
||||||
ContractExpiring (User notify, add more notify before time frames in cases) [GENERAL]
|
ContractExpiring (User notify, add more notify before time frames in cases) [GENERAL]
|
||||||
CSRAccepted [CUSTOMER]
|
CSRAccepted [CUSTOMER]
|
||||||
CSRRejected [CUSTOMER]
|
CSRRejected [CUSTOMER]
|
||||||
NewWorkorder [CUSTOMER]
|
NewWorkorder [CUSTOMER]
|
||||||
WorkorderStatusChange [CUSTOMER]
|
WorkorderStatusChange [CUSTOMER] [CONDITION: WOSTATUS integer]
|
||||||
WorkorderClosed [CUSTOMER]
|
WorkorderClosed [CUSTOMER]
|
||||||
WorkorderFollowUp [CUSTOMER]
|
WorkorderFollowUp [CUSTOMER]
|
||||||
QuoteStatusChanged [CUSTOMER]
|
QuoteStatusChanged [CUSTOMER] [CONDITION: QUOTESTATUS integer]
|
||||||
ServiceBank[Currency/Hours/Incidents]Depleted [GENERAL]
|
ServiceBank[Currency/Hours/Incidents]Depleted [GENERAL]
|
||||||
NewCSR [GENERAL]
|
NewCSR [GENERAL]
|
||||||
NewMemo [PERSONAL]
|
NewMemo [PERSONAL]
|
||||||
@@ -125,7 +136,7 @@ ScheduleMarkerCreated (will rename) [PERSONAL]
|
|||||||
WorkorderItemScheduledUserCreatedUpdated [PERSONAL]
|
WorkorderItemScheduledUserCreatedUpdated [PERSONAL]
|
||||||
WorkorderItemScheduledUserEventImminent [PERSONAL]
|
WorkorderItemScheduledUserEventImminent [PERSONAL]
|
||||||
WorkorderCloseByDatePassed (user) [general]
|
WorkorderCloseByDatePassed (user) [general]
|
||||||
WorkorderStatusChanged (user) [GENERAL]
|
WorkorderStatusChanged (user) [GENERAL] [CONDITION: WOSTATUS integer]
|
||||||
WorkorderItemOutsideServiceOverdue [general]
|
WorkorderItemOutsideServiceOverdue [general]
|
||||||
WorkorderItemOutsideServiceReceivedBack [GENERAL]
|
WorkorderItemOutsideServiceReceivedBack [GENERAL]
|
||||||
WorkorderItemPartRequestPartsReceived [GENERAL]
|
WorkorderItemPartRequestPartsReceived [GENERAL]
|
||||||
@@ -139,14 +150,23 @@ BackupStatus case 3786 (biz and ops) [GENERAL]
|
|||||||
UpcomingServiceEvent case 3725 [CUSTOMER]
|
UpcomingServiceEvent case 3725 [CUSTOMER]
|
||||||
WorkorderItemPartRequestCreated case 3652 [GENERAL]
|
WorkorderItemPartRequestCreated case 3652 [GENERAL]
|
||||||
ContractExpiring - Customer version in addition to User version [CUSTOMER]
|
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]
|
WorkOrderStatusAge "deadman" delivery if not changed before XX time period [GENERAL]
|
||||||
|
|
||||||
QuoteStatusAge [PERSONAL (prepared by), GENERAL]
|
QuoteStatusAge [PERSONAL (prepared by), GENERAL]
|
||||||
UnitWarranyExpiry case 1361 [GENERAL]
|
UnitWarranyExpiry case 1361 [GENERAL]
|
||||||
UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
|
UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
|
||||||
DefaultNotification case 3792 used for all system and old Quick notifications [EVERYONE]
|
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?
|
PERSONAL? OR COVERED BY TAG FILTER ALREADY BETTER?
|
||||||
WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL]
|
WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL]
|
||||||
|
|||||||
Reference in New Issue
Block a user