"ValueDecimal1": "0",  "ValueDecimal2": "0",  "ValueDecimal3": "0",  "ValueDecimal4": "0",  "ValueInteger": "0",  "VATAmount": "0.0000000",
"VATCode": "0.2000000" }
Email Queue
Overview
Holds the queued records in this table with status as empty and all error records also would be storied in this table
Table Definition4bd2-
8dfb-
d7fc72
43dae
d88961
7844rance_
215:07:53
.33816:07:53
.352
Class Name VFUK-FW-AOMFW-Data-EmailSendQueue
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) QueueId Text Unique Record for the
Line ItemPK - NOT
NULL Auto Generated ID
using a function
run_id varchar(255) RunId Text Run Id NOT NULLAuto Generated ID
using a function
interaction_id number InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_varivarchar(255) TreatmentVariantText Name of the Treatment NOT NULLSRTable Name email_send_queue


3214
Sample Dataant Variant
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
priority number Priority Double  Priority of the treatment NOT NULLSR
create_dateti
metimestamp CreateDateTimeDateTime Date Time Entered to
QueueNOT NULLCalculated Value
update_dateti
metimestamp UpdateDateTimeDateTime Date Time Entered to
QueueNOT NULLCalculated Value
payload text Payload Text JSON Payload of
Required SR DataNOT NULLJSON of SR
partition_key number PartitionKey Integer Partition Key for multi
node selectionNOT NULLSR
expiry_dateti
metimestamp ExpiryDateTime DateTime Expiry date of interaction NOT NULLSR

status varchar(255) Status Text Status of Queue Item:
LOV:
NULL
ErrorNOT NULLCalculated Value
account_poolvarchar(255) AccountPool Text Account List Reference
(R3.02)NOT NULLTreatment Config
sender_alias varchar(255) SenderAlias Text Sender Identifier for
Message Send (R3.02)NOT NULLTreatment Config
destination_a
ddressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the session (R3.02)NOT NULLTreatment Config
22c53548-
5a7f-4bd2-
8dfb-
d7fc7243d
aed47093534
26889617
844Upgrad
eInsura
nce_E
mailUpgrad
eInsura
nce_E
mail_1Upgr
adeIn
suran
ceUpgra
deIns
uranc
e_2Payl
oad2 5 202
2-
03-
23
15:0
7:53
.338202
2-
04-
12
16:0


7:53
.338202
2-
04-
12
16:0
7:53
.352202
2-
04-
14
17:3
6:19
.940123
45Acti
ve8.0 Vod
afon
e441
810
203
110
e107b5a2-
9f16-463d-
aaca-14401993
28912955
390Upgrad
eInsuraUpgrad
eInsuraUpgr
adeP
hone1GB Payl
oad1 2 202
2-
04-202
2-
04-202
2-
04-123
46Erro
r4.0 Vod
afon
e441
751queue_id interacti
on_idtreatm
ent_na
metreatm
ent_var
iantoffer
_na
meoffer
_vari
antpayl
oadprio
ritypart
itio
n_k
eycrea
te_d
ateti
meexpi
ry_
date
timeupd
ate_
date
timerun
_idstat
usacc
oun
t_p
oolsen
der
_ali
asdest
inati
on_
add
ress


3215
Email Sent
Overview
This table is the adult of all the email comms sent.
Table Definition
Sample Data5717ae7e0
ee4nce_E
mailnce_E
mail_104
10:1
7:04
.91104
10:1
7:04
.91204
10:1
7:04
.961051
467
22c53548-
5a7f-4bd2-
8dfb-
d7fc7243d
aed47093534
26889617
844Upgrad
eInsura
nce_E
mailUpgrad
eInsura
nce_E
mail_1Upgr
adeIn
suran
ceUpgra
deIns
uranc
e_2Payl
oad5 4 202
2-
04-
04
10:1
7:04
.849202
2-
04-
04
10:1
7:04
.849202
2-
04-
04
10:1
7:04
.896123
457Acti
ve5.0 Vod
afon
e447
733
935
015
Class Name VFUK-FW-AOMFW-Data-EmailSent
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) QueueId Text Unique Record for the
Line ItemPK - NOT
NULLAuto Generated ID
using a function
interaction_id numeric InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_vari
antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR


antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
sent_datetimetimestamp SentDateTime DateTime Date Time sent NOT NULLOn Send
message_id varchar(255)
 N/A N/A This column is not being
used N/A
destination_ad
dressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the sessionNOT NULLEmail Queue
account_poolvarchar(255) AccountPool Text Account List Reference
(R3.07)NOT NULLEmail QueueTable Name email_sent


3216
Email Cancelled
Overview
This table is the adult of all the email comms cancelled.

Table Definition22c53548-5a7f-4bd2-
8dfb-d7fc7243daed4709353426
889617844UpgradeInsura
nce_EmailUpgradeInsur
ance_Email_3UpgradeI
nsuranceUpgradeInsu
rance_22022-04-
14
17:45:55.
65996 44773393
5015
25c53548-5a7e-4bd2-
8dfc-d7fc7243daed4709353426
889617845DataExtra_Em
ailDefault DataExtra2GB 2022-04-
05
00:00:00.
00041.0 44779950
8451
22c53548-5a7f-4jh5-
8dfb-d7fc7243daez4709353426
889617846UpgradePhone
_EmailVariant UpgradeP
hone1GB 2022-04-
03
00:00:00.
00085.0 44776882
1876queue_id interaction_i
dtreatment_na
metreatment_va
riantoffer_na
meoffer_varian
tsent_dat
etimemessage
_iddestinati
on_addre
ss
Class Name VFUK-FW-AOMFW-Data-EmailCancelled
Column Name Column Type Property Name Prope
rty
TypeDescription Constraints Source
queue_id varchar(255) QueueId Text Unique Record for the
Line ItemPK - NOT NULLSMS Queue
interaction_id number InteractionId Decim
alRecord of Interaction NOT NULL
treatment_name varchar(255) TreatmentName Text Name of the TreatmentNOT NULL


treatment_name varchar(255) TreatmentName Text Name of the TreatmentNOT NULL
treatment_variant varchar(255) TreatmentVariant Text Name of the Treatment
VariantNOT NULL
offer_name varchar(255) OfferName Text Name of the Offer NOT NULL
offer_variant varchar(255) OfferVariant Text Name of the Offer
VariantNOT NULL
operator varchar(255) Operator Text Name of the Operator NOT NULL
cancel_date_time timestamp CancelDateTime DateTi
meTime of the Cancel
OperationNOT NULL
cancel_complete_time timestamp CancelCompleteDateT
imeDateTi
meSystem time of the
Cancel OperationNOT NULL  Table Name email_cancelled


3217
Sample Data
AOMConfig Values
WatchdogConfig Valuesbe42866f-317c-
422f-92e8-
90ac613625bb4640145965
483644900SMS DataExt
ra1GB DataExtra_
SMSDefault Housek
eeping2022-04-07
14:31:17.84
62022-04-07
14:31:17.84
6Expire
d
d2570bee-7434-
408a-8cb0-
cdcc0da657762045589231
213254140SMS Upgrade
Phone2GB UpgradePh
one_SMSVariant Housek
eeping2022-04-07
14:31:43.19
82022-04-07
14:31:43.19
8Expire
d
f8ff1c86-f4c5-
494f-8425-
7997a04b5df63271130096
019792900SMS DataExt
ra2GB DataExtra_
SMSDefault Housek
eeping2022-04-07
14:32:22.44
72022-04-07
14:32:22.44
7Expire
dqueue_id interaction_
idchanne
l_nameoffer_n
ameoffer_v
arianttreatment_
nametreatment
_variantoperat
orcancel_dat
e_timecancel_co
mplete_tim
ereaso
n
ThrottleRateDuration Email 5
ThrottleRateLimit Email 100000
ThrottlePartitionSize Email 5
RetryCount Email 2
RetryInterval Email 3
OutboundCommsEnabled Email FALSE
EmailSendQueue RetryCount 2
HousekeepingSQL EmailStaging VFUK-FW-AOMFW-Data-


HousekeepingSQL EmailStaging VFUK-FW-AOMFW-Data-
EmailStaging
HousekeepingRetentionPeriod EmailStaging 30
CaseId NotifyCancelledEmailTreatmentsWat
chDog
CaseStatus NotifyCancelledEmailTreatmentsWat
chDog
SkipCaseFinaliseEmail NotifyCancelledEmailTreatmentsWat
chDogtrue  ConfigType ConfigName ConfigValue
Name ClassName SQLR
uleReportDefini
tionSever
ityDescription DynamicP
arametersInclud
eAsAt
tachm
entAttac
hmen
tTypeRelea
se


3218
SchedulerConfig Values
AlertConfig Values
 NotifyCance
lledEmailTr
eatmentsVFUK-FW-AOMFW-Data-
EmailCancelled IdentifyCanc
elledTreatme
ntsInfo Identification of
Cancelled Email
Treatments{"IntervalP
eriod":"24",
"IntervalTy
pe":"hours"
}TRUECSV R3.04
 CaseIgni
tor{"CaseSubType":"NotifyCa
ncelledEmailTreatments"}VFUK-FW-AOMFW-Work-
WatchDog* 0 9 ? * * * true WatchDogpyGUID Activity
NameActivityParameters ClassName CronExpress
ionEnabled Type
NotifyCancelledEmailTreatments WatchDog All
NotifyCancelledEmailTreatments WatchDog Error
NotifyCancelledEmailTreatments WatchDog Fatal
NotifyCancelledEmailTreatments WatchDog Info
NotifyCancelledEmailTreatments WatchDog Success
NotifyCancelledEmailTreatments WatchDog Warning  Alert Process Severity Email


3219
Rules & Activities for Email
QueueSelection
QueueProcessor
SetupRateLimitingBucket

QueueSelection
QueueProcessor
Applies To VFUK-FW-AOMFW-Data-EmailStaging
Ruleset AOMFW
Input Parameter PartitionKey
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Get the Channel Volume limit from the AOM Config
2. Invoke the Stored Procedue p r e p a r e _ c h a n n e l _ s e n d  to populate the send tables with error handling
a. Below are the parameters
i. Channel - Name of the channel
ii. PartitionKey- Using the GetNextPartitionKey Function by passing Email & ThrottlePartitionSize
Defined in AOM Config for Email as parameters
iii. RunId :  Unique Id Generated
iv. MaxRecords: Calculated value by deviding ChannelThrottleLimit  andThrottlePartitionSize
3. Do an obj-browse with the RunId which is passed as parameter to above stored procedure
a. For reach record in the list
i. Invoke new Queue Process ( Name  : VFUK-FW-AOMFW-Data-
EmailSendQueue.ProcessQueueItem)
ii. Record Audit and Error for each itean being Queued
4. Handle all error scenarios
5. Log Audit and Error tablesActivity Name: QueueSelection

Applies To VFUK-FW-AOMFW-Data-EmailSendQueue
Ruleset AOMFW
Input Parameter N/AActivity Name: ProcessQueueItem


3220
SetupRateLimitingBucket

 Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Check if the token exists to be consumed
a. If Yes, then
i. Invoke VFUK-FW-AOMFW-Int-IMI-InboundWebhookAPI.PrepareRequest Activity
ii. Invoke VFUK-FW-AOMFW-Int-IMI-InboundWebhookAPI.WebhookEvent Activity
iii. Invoke VFUK-FW-AOMFW-Int-IMI-InboundWebhookAPI.PostProcessing Activity
iv. Update the audit log with the Complete status
v. Delete the page from the SendQueue table
b. If No, then
i. Pass the record back to e m a i l _ s t a g i n g table
ii. delete the record from email s e n d_queue table
iii. Populate Audit and Error Log table where applicable use below along with other applicable
parameters
1. PrimaryContext = TreatmentName
2. SecondaryContext=TreatmentVariant
Update Step three to get the ThrottleRateDuration and ThrottleRateLimit for Email
Insrt new step after step 9 to SetupRLB for email by passing the values retrieved in the above stepActivity Name: SetupRateLimitingBucket


3221
Case Changes for Email
BatchNBA
VerifyCampaignStatus Flow
Extractor
VerifyCampaignStatus Flow
PrepareDataforEmailStaging Flow
PrepareDataforEmailStaging Dataflow
ProcessEmailByChannelManagement Flow
ProcessEmail
ProcessBatchNBAExtract Flow
BatchNBA
VerifyCampaignStatus Flow
Added check for whether Channel Management toggle is enabled or disabled, please check under Verify Campaign Status Flow ( Batc
h NBA Case Design | Verify Campaign Status For BatchNBA Process )
Extractor
VerifyCampaignStatus Flow
Added check for whether Channel Management toggle is enabled or disabled, please check VerifyCampaignStatus Process Flow ( Ba
tch NBA Case Design | Verify Campaign Status For BatchNBA Process )
PrepareDataforEmailStaging Flow
New process flow to invoke PrepareDataforEmailStaging
Add two activities to Invoke the DF and Check the status
Do the error handling.
New dataflow work item Id to be added to AOMConfig
PrepareDataforEmailStaging Dataflow
Rule Type: Dataflow
Source Dataset
EmailCustomersWithParentTreatmentsForChannelManagement (Keys : pySubjectID & pyName
Filter Components
filter on the SR.Hierarchy== Individual then directly push the data into EmailStaging ( payload should be JSON of Primary Page)
filter on the SR.Hierarchy== Parent add compose from EmailCustomersWithChildTreatmentsForChannelManagement using the
property TreatmentList
Properties to be used for compose are
CustomerId- on both datasets
BundleName - EmailCustomersWithChildTreatmentsForChannelManagement should me mapped to pyName on
EmailCustomersWithParentTreatmentsForChannelManagement


3222
Compose Dataset : EmailCustomersWithChildTreatmentsForChannelManagement (Keys : pySubjectID &pyName & BundleName)
Compose Property : TreatmentList ( AppliesToClass: VFUK-AOMFW-SR)
Convert Shape
Convert SR data into Email Staging. Payload is JSON of Primary Page( including both parent and child SR Pages)
Target Dataset:
EmailStaging
(Once the Process flow and DF are done, move this to the Extractor case and then attach the link here)
ProcessEmailByChannelManagement Flow
Created a new flow to run the ProcessEmailByChannelManagement data flow, please check ProcessEmailByChannelManagement
Process Flow under ( Extractor Case Design | PrepareBatchNBAExtract  )
ProcessEmail
Created a new flow to include PrepareDataforEmailStaging and ProcessEmailByChannelManagement
ProcessEmailByChannelManagement Process Flow under ( Extractor Case Design | PrepareBatchNBAExtract  )
ProcessBatchNBAExtract Flow
Added check for whether Channel Management toggle is enabled or disabled, please check ( Extractor Case Design | PrepareBatchNB
AExtract )


3223
SMS


3224
SMS Data Model
SMS Staging
Overview
Table Definition
Sample Data
Payload
SMS Queue
Overview
Table Definition
Sample Data
SMS Sent
Overview
Table Definition
Sample Data
SMS Cancelled
Overview
Table Definition
Sample Data
AOMConfig V alues
SMS Staging
Overview
Holds customer data along with the eligible treatment information to be sent out as communication in the customer opted channel
Table Definition
Class Name VFUK-FW-AOMFW-Data-SMSStaging
Dataset
NameSMSStaging
Column
NameColumn Type Property NameProperty Type Description Constraint
sSource
queue_id varchar(255) pyGUID Text Unique Record for the
Line ItemPK - NOT
NULL Auto Generated ID
using a function
interaction_id Number InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the TreatmentNOT NULLSR
treatment_vari
antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer
VariantNOT NULLSRTable Name sms_staging


3225

Sample Datacreate_dateti
metimestamp CreateDateTimeDateTime Date Time Entered to
QueueNOT NULLOn Entry
payload text Payload Text JSON Payload of
Required SR DataNOT NULLJSON of SR
priority Number Priority Double  NOT NULLSR
partition_key Number PartitionKey Integer Partition Key for multi
node selectionNOT NULLSR
expiry_datetim
etimestamp ExpiryDateTimeDateTime Expiry date of
interaction SR
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference (R3.02)NOT NULLTreatment Config
destination_ad
dressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the session (R3.02)NOT NULLTreatment Config
1e438
c6f-
8c00-
498d-
bfe6-
ffb274
74d50f45918
39993
13227
8300DataExtr
a_SMSVariant DataE
xtra2GB Payload 2 5 2022-03-
25
16:19:40
.6682022-
04-14
17:19:40
.6688.0 4418102
03110
e107b
5a2-
9f16-
463d-
aaca-
5717a
e7e0e
e414401
99328
91295
5390Upgrade
Phone_
SMSVariant Upgra
dePho
ne1GB Payload 1 2 2022-03-
25
16:19:40
.8302022-
04-14
17:19:40
.8304.0 4417510
51467
22c53
548-
5a7f-
4bd2-
8dfb-


22c53
548-
5a7f-
4bd2-
8dfb-
d7fc72
43dae
d47093
53426
88961
7844Upgrade
Insuranc
e_SMSUpgradeI
nsurance
_SMS_3Upgra
deInsu
ranceUpgra
deInsu
rance_
2Payload 5 4 2022-03-
23
15:07:53
.3382022-
04-12
16:07:53
.3525.0 4477339
35015queue
_idintera
ction_i
dtreatme
nt_nam
etreatme
nt_varia
ntoffer_
nameoffer_
varian
tpayload priorit
ypartiti
on_ke
ycreate_
datetim
eexpiry_
datetim
eaccou
nt_po
oldestinat
ion_add
ress


3226
Payload
{ "Channel": "Web",  "Classification": "EMPTY",  "ConnectionType": "4G",  "CostExVAT": "0.0000000",  "CostIncludingVAT": "0",
"CostIncVat": "4999",  "DecisionMetadataProperties":
"OfferName,OfferVariant,TreatmentName,TreatmentVariant,OfferID,TreatmentID,DeviceLoanS15Benefit",  "DefaultUpfrontCost": "0",
"DeviceColour": "Black",  "DeviceLoanS15Benefit": "-4457.441666631",  "DeviceName": "Doro 8050",  "DeviceStorageInteger": "0",
"DeviceType": "Handset",  "DisplayName": "Doro 8050",  "Duration": "0",  "FixedProductEnabledChannel": "InboundCC|Web",
"FixedProductEnabledOrderTypes": "Upgrade|Flexi Upgrade|New Acquisition",  "FixedProductEnabledTeam": "Save|SuperSave|Omni",
"HandsetCost": "4999",  "HandsetCostExVAT": "4165.8333333",  "HandsetLoanPrice": "0",  "HandsetLoanPriceExVAT": "0.0000000",
"HandsetModel": "Doro Placeholder",  "Identifier": "H_201769",  "Index": "1",  "IsFixed": "false",  "IsRecommended": "false",
"IsWatchSubscription": "false",  "MaxTenure": "0",  "MaxUpfrontCost": "0",  "MinTenure": "0",  "MinUpfrontCost": "0",  "Name": "Doro


Placeholder",  "NearlyNew": "false",  "PriceType": "TOTAL_COST",  "ProductCode": "201769",  "ProductName": "Doro Placeholder",
"ProductRecommendationType": "Handset",  "pxDecisionReference": "-212978131 1672641303433123110",  "pxDecisionTime":
"20220218T064317.494 GMT",  "pxIdentifier": "///",  "pxInteractionID": "1672641303433123110",  "pxObjClass": "VFUK-AOMFW-SR",
"pxPriority": "141501.0",  "pxRank": "1",  "pxUpdateDateTime": "20220218T063034.102 GMT",  "pyApplication": "AOM_Branch2",
"pyApplicationVersion": "01.01.01",  "pyComponent": "Check If any Record Available",  "pyDivision": "Consumer",  "pyInteraction":
"GetProductList",  "pyOperator": "hemanth.gaddam@adqura.com",  "pyOrganization": "VFUK",  "pyPreviousComponent": "Check If any
Record Available",  "pyStrategy": "GetProductList",  "pySubjectID": "-212978131",  "pySubjectType": "VFUK-FW-AOMFW-Data-
Subscription",  "pyUnit": "BaseMarketing",  "pzADMInputSource": "modelReferences",  "pzMarkers": null,  "RankPosition": "1",
"RecommendedDeviceIsFixed": "false",  "ResponseType": "Item",  "Team": "Save",  "UpliftCost": "291.608333331",  "ValueDecimal": "0",


"ValueDecimal1": "0",  "ValueDecimal2": "0",  "ValueDecimal3": "0",  "ValueDecimal4": "0",  "ValueInteger": "0",  "VATAmount": "0.0000000",
"VATCode": "0.2000000" }
SMS Queue
Overview
Table Definition
Class Name VFUK-FW-AOMFW-Data-SMSSendQueue
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) pyGUID Text Unique Record for the
Line ItemPK - NOT
NULL Auto Generated ID
using a function
run_id varchar(255) RunId Text Run Id NOT NULLAuto Generated ID
using a function
interaction_id Number InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_vari
antvarchar(255) TreatmentVariantText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
priority Number Priority Double  NOT NULLSRTable Name sms_send_queue


3227
Sample Datacreate_dateti
metimestamp CreateDateTimeDateTime Date Time Entered to
QueueNOT NULL
update_dateti
metimestamp UpdateDateTimeDateTime Date Time Entered to
QueueNOT NULL
payload text Payload Text JSON Payload of
Required SR DataNOT NULLJSON of SR
partition_key Number PartitionKey Integer Partition Key for multi
node selectionNOT NULLSR
expiry_dateti
metimestamp ExpiryDateTime DateTime Expiry date of interaction  SR

status varchar(255) Status Text Status of Queue Item:
LOV:
NULL
Error
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference (R3.02)NOT NULLTreatment Config
sender_alias varchar(255) SenderAlias Text Sender Identifier for
Message Send (R3.02)NOT NULLTreatment Config
destination_a
ddressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the session (R3.02)NOT NULLTreatment Config
22c53548-
5a7f-4bd2-
8dfb-
d7fc7243d
aed47093534
26889617
844Upgrad
eInsura
nce_S
MSUpgrad
eInsura
nce_S
MS_3Upgr
adeIn
suran
ceUpgra
deIns
uranc
e_2Payl
oad2 5 202
2-
03-
23
15:0
7:53
.338202
2-
04-
12
16:0
7:53
.352202
2-
04-
14
17:3
6:19
.940123
45Acti
ve8.0 Vod
afon
e441
810
203
110


45Acti
ve8.0 Vod
afon
e441
810
203
110
e107b5a2-
9f16-463d-
aaca-
5717ae7e0
ee414401993
28912955
390Upgrad
ePhon
e_SMSVariantUpgr
adeP
hone1GB Payl
oad1 2 202
2-
04-
04
10:1
7:04
.911202
2-
04-
04
10:1
7:04
.912202
2-
04-
04
10:1
7:04
.961123
46Erro
r4.0 Vod
afon
e441
751
051
467
22c53548-
5a7f-4bd2-
8dfb-47093534
26889617
844Upgrad
eInsuraUpgrad
eInsuraUpgr
adeInUpgra
deInsPayl
oad5 4 202
2-
04-202
2-
04-202
2-
04-123
457Acti
ve5.0 Vod
afon
e447
733queue_id interacti
on_idtreatm
ent_na
metreatm
ent_var
iantoffer
_na
meoffer
_vari
antpayl
oadprio
ritypart
itio
n_k
eycrea
te_d
ateti
meexpi
ry_
date
timeupd
ate_
date
timerun
_idstat
usacc
oun
t_p
oolsen
der
_ali
asdest
inati
on_
add
ress


3228
SMS Sent
Overview

Table Definition
Sample Datad7fc7243d
aednce_S
MSnce_S
MS_3suran
ceuranc
e_204
10:1
7:04
.84904
10:1
7:04
.84904
10:1
7:04
.896935
015
Class Name VFUK-FW-AOMFW-Data-SMSSent
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) QueueId Text Unique Record for the
Line ItemPK - NOT
NULLAuto Generated ID
using a function
interaction_id numeric InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_vari
antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
sent_datetimetimestamp SentDateTime DateTime Date Time sent NOT NULLOn Send
message_id varchar(255)
 MessageId Text Unique identifier for the
sent message Sent with SMS
message
destination_ad
dressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the sessionNOT NULLSMS Queue
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference (R3.07)NOT NULLSMS QueueTable Name sms_sent
22c53548-5a7f-4bd2-
8dfb-d7fc7243daed4709353426889
617844UpgradeIns
urance_SM
SUpgradeInsu
rance_SMS_
3UpgradeI


617844UpgradeIns
urance_SM
SUpgradeInsu
rance_SMS_
3UpgradeI
nsuranceUpgradeIn
surance_22022-04-14
17:45:55.65996 44773393
5015queue_id interaction_id treatment_
nametreatment_v
ariantoffer_na
meoffer_vari
antsent_dateti
memessage
_iddestinati
on_addre
ss


3229
SMS Cancelled
Overview

Table Definition
Sample Data25c53548-5a7e-4bd2-
8dfc-d7fc7243daed4709353426889
617845DataExtra_
SMSDefault DataExtra2GB 2022-04-05
00:00:00.00041.0 44779950
8451
22c53548-5a7f-4jh5-
8dfb-d7fc7243daez4709353426889
617846UpgradePh
one_SMSVariant UpgradeP
hone1GB 2022-04-03
00:00:00.00085.0 44776882
1876
Class Name VFUK-FW-AOMFW-Data-SMSCancelled
Column Name Column Type Property Name Property
TypeDescription Constraints Source
queue_id varchar(255) QueueId Text Unique Record
for the Line ItemPK - NOT NULLSMS Queue
interaction_id Number InteractionId Decimal Record of
InteractionNOT NULL
treatment_name varchar(255) TreatmentName Text Name of the
TreatmentNOT NULL
treatment_variant varchar(255) TreatmentVariant Text Name of the
Treatment
VariantNOT NULL
offer_name varchar(255) OfferName Text Name of the
OfferNOT NULL
offer_variant varchar(255) OfferVariant Text Name of the
Offer VariantNOT NULL
operator varchar(255) Operator Text TBD
cancel_date_time timestamp CancelDateTime DateTime TBD
cancel_complete_time timestamp CancelCompleteDateT
imeDateTime TBD   Table Name sms_cancelled
be42866f-317c-
422f-92e8-
90ac613625bb4640145965
483644900SMS DataExt
ra1GB DataExtra_
SMSDefault Housek


483644900SMS DataExt
ra1GB DataExtra_
SMSDefault Housek
eeping2022-04-07
14:31:17.84
62022-04-07
14:31:17.84
6Expire
d
d2570bee-7434-
408a-8cb0-2045589231
213254140SMS Upgrade
Phone2GB UpgradePh
one_SMSVariant Housek
eeping2022-04-07
14:31:43.192022-04-07
14:31:43.19Expire
dqueue_id interaction_
idchanne
l_nameoffer_n
ameoffer_v
arianttreatment_
nametreatment
_variantoperat
orcancel_dat
e_timecancel_co
mplete_tim
ereaso
n


3230
AOMConfig Valuescdcc0da65776 8 8
f8ff1c86-f4c5-
494f-8425-
7997a04b5df63271130096
019792900SMS DataExt
ra2GB DataExtra_
SMSDefault Housek
eeping2022-04-07
14:32:22.44
72022-04-07
14:32:22.44
7Expire
d
ThrottleRateDuration SMS 5 Bucket Window in
minutes
ThrottleRateLimit SMS 100000 Bucket Rate for each
Bucket Window
duration
ThrottlePartitionSize SMS 5 Number of partitions
RetryCount SMS 2 Message failure retry
count
RetryInterval SMS 3 Number of controllers
OutboundCommsEnabled SMS FALSE Is the Channel
Enabled
HousekeepingSQL SMSStaging VFUK-FW-AOMFW-Data-
SMSStagingTable’s class to be
purged
HousekeepingRetentionPeriod SMSStaging 30 How many days to
purge records after
DataFlowWorkItemId ProcessSMSByChannelManageme
nt
SMSSenderAlias Vodafone "{""SourceNumber"" : ""Vodafone"",
""SourceTypeOfNumber"" : 1,
""SourceNumberPlanIndicator"" : 1}"
SMSCAccountPool BatchNBA <<GET_ACCOUNT_INFORMATIO
N_FROM_RUSS_OR_ENVTEAM>
>
SMSCAccountPool TIL <<GET_ACCOUNT_INFORMATIO
N_FROM_RUSS_OR_ENVTEAM>
>
SMSCAccountPool GetNBA <<GET_ACCOUNT_INFORMATIO
N_FROM_RUSS_OR_ENVTEAM>
>
SMSCAccountPool ProcessEvent <<GET_ACCOUNT_INFORMATIO
N_FROM_RUSS_OR_ENVTEAM>
>


N_FROM_RUSS_OR_ENVTEAM>
>
SMSCAccountPool All   ConfigType ConfigName ConfigValue Description


3231
SMSBatchSendQueue RetryCount 2 The amount of times to
retry sending an SMS
message for Batch
requests
SMSRealtimeSendRequest RetryCount 2 The amount of times to
retry sending an SMS
message for Realtime
requests
SendRealtimeSMS RetryCount 2 The amount of times to
requeue a realtime
SMS message if no
token can be
consumed


3232
Rules & Activities for SMS
Orchestration Activity
QueueProcessor Activity
Realtime Processor Activity
SetupRateLimitingBucket Activity
New SMS W orker Activity Design
New D_SMPP Account Data Page
Treatment Send Config Audit Activity
Orchestration Activity
QueueProcessor Activity
Applies To VFUK-FW-AOMFW-Data-SMSStaging
Ruleset AOMFW
Input Parameter PartitionKey
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Get the Channel Volume limit from the AOM Config
2. Invoke the Stored Procedue TBD with Param.PartitionKey to populate the send tables with error handling
3. Do an obj-browse with the RunId which is passed as parameter to above stored procedure
a. For reach record in the list
i. Invoke new Queue Process ( Name  : ProcessQueueItem)
4. Handle all error scenarios
5. Log Audit and Error tablesActivity Name: QueueSelection

Applies To VFUK-FW-AOMFW-Data-SMSSendQueue
Ruleset AOMFW
Input Parameter IsBatchRun
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Check if the token exists to be consumedActivity Name: ProcessQueueItem


3233
Realtime Processor Activity
SetupRateLimitingBucket Activity
New SMS Worker Activity Design
Take in the record from the queue as input and get the following properties from the payload: destination number, interaction id and
message bodya. If Yes, then
i. Use the values in the current page to create an SMS account to send the message with, a destination
for the message to go to and the message body itself
ii. Invoke the SendSMSMessage activity until it succeeds or until the retry count is exceeded
iii. Save the page data to the OutboundCommsStore and SMSSent tables and the Interaction History
iv. Update the audit log with the Complete status
v. Delete the page from the SendQueue table
b. If No and AccountPool is for Batch run, then
i. Update the Status to Retry and save the page back into the Staging table
ii. Remove the related page from the SendQueue table
iii. Update the audit log with the Retry status
c. If No and AccountPool is Realtime run, then
i. Requeue the record into the RealtimeSMSQueueProcess queue processor after increasing the
queue count by one
ii. If current requeue count exceeds queue limit, perform error handling instead
An activity that processes realtime requests so that they can be sent immediately instead of waiting for the job scheduler to process them
Applies To VFUK-AOMFW-SR
Ruleset AOMFW
Input Parameter N/A
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Use the Offer/Treatment properties to grab the related TreatmentSendConfig record
2. Use the properties within the input SR page and the TreatmentSendConfig page to create a valid
SMSSendQueue page to send to the RealtimeSMSQueueProcess queue processor


SMSSendQueue page to send to the RealtimeSMSQueueProcess queue processor
3. Set the initial requeue count to 0 and put the record in the RealtimeSMSQueueProcess queue processor
4. If any step in this activity fails, perform the necessary error handling, otherwise, finish parent activity as well
5. Perform audit logging on the request as a wholeActivity Name: SendRealtimeSMS
Update Step three to get the ThrottleRateDuration and ThrottleRateLimit for SMS and Email
Inster two new steps after step 9 to SetupRLB for email and SMS by passing the values retrieved in the above stepActivity Name: SetupRateLimitingBucket


3234
Get the following properties from other fields in the record: execution mode and sender alias
Get the appropriate account name(s) from AOMConfig using the execution mode and obtain the account information from the
D_SMPPAccount data page within the VFUK-FW-AOMFW-Data-SMPPAccount class, using the account name and sender alias from
the previous step as the parameters
Try to get the token from the bucket
If there is no token, retry for as many times as highlighted in the account information
If there is still no token after all retries, return the record back to the SMS Staging table and remove the record from the SMS
Send Queue table
Call SendSMSMessage function using the account information, sender information, DestinationNumber and MessageBody as input
params, ensuring that the function retries for the number of times specified in the account information
If the above function is successful, write the results to both the OutboundCommsStore and SMS Sent table, call the
CaptureResponse data flow to write the information to interaction history and remove the specific record from the SMS Sending table
If the above function fails, update the specific record in the SMS Sending table to have a status of Error
If there is a failure after the token is found, return the token to the bucket and perform standard error handling with QueueId as the
identifier
For both success and failure cases, perform standard audit logging with QueueId as the identifier
New D_SMPPAccount Data Page
Create new VFUK-FW-AOMFW-Data-SMPPAccount class with the following properties:
Create new Read-Only data page with a scope of Node, a cache period of 7 days, AccountName and SenderAlias params and a source
of GetSMPPAccountDetails activity


of GetSMPPAccountDetails activity
Perform an Obj-Open on the Data-SMSAccount class with the given account name and a hard-coded type of “Notify”
Decode the password so that it can be used by the system
Use a function to set up the java.util.Properties object to be stored in the data page
Get the sender information from AOMConfig using the given sender alias and add the properties obtained from that to the page
Treatment Send Config Audit ActivityProperties Java Object (java.util.Properties) List of properties to be used by the
current SMPP account
SourceNumber Text The phone number for the source of the
SMS
SourceTypeOfNumber Integer Type of Number for the source of the
SMS
SourceNumberPlanIndicator Integer Number Plan Indicator for the source of
the SMSProperty Name Property Type Description
Saves the information about the treatment config updates like treatment paused/resumed/cancelled into treatment_send_config_audit
database table for auditing purposes
Applies To VFUK-FW-AOMFW-Data-TreatmentSendConfigAudit
Ruleset AOMFWActivity Name: Save


3235
 Input
ParametersOfferName
OfferVariant
TreatmentName
TreatmentVariant
Action
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler
Logs to Error Log


3236
Case Changes for SMS
BatchNBA
VerifyCampaignStatus Flow
Extractor
VerifyCampaignStatus Flow
ProcessBatchNBAExtract Flow
ProcessSMSByChannelManagement Flow
BatchNBA
VerifyCampaignStatus Flow
Added check for whether Channel Management toggle is enabled or disabled, please check under Verify Campaign Status Flow  Batc
h NBA Case Design | Verify Campaign Status For BatchNBA Process
Extractor
VerifyCampaignStatus Flow
Added check for whether Channel Management toggle is enabled or disabled, please check VerifyCampaignStatus Process Flow under
Extractor Case Design | ProcessBatchNBAExtract
ProcessBatchNBAExtract Flow
Added check for whether Channel Management toggle is enabled or disabled, please check Extractor Case Design | ProcessBatchNBA
Extract
ProcessSMSByChannelManagement Flow
Created new flow to run the ProcessSMSByChannelManagement data flow, please check ProcessSMSByChannelManagement Process
Flow under Extractor Case Design | ProcessBatchNBAExtract


3237
App Push


3238
AppPush Data Model
App Push Staging
Overview
Table Definition
Sample Data
Payload
AppPush Queue
Overview
Table Definition
Sample Data
App Push Sent
Overview
Table Definition
Sample Data
AppPush Cancelled
Overview
Table Definition
Sample Data
AOMConfig V alues
App Push Staging
Overview
Holds customer data along with the eligible treatment information to be sent out as communication in the customer opted channel
Table Definition
Class Name VFUK-FW-AOMFW-Data-AppPushStaging
Dataset
NameAppPushStaging
Column
NameColumn Type Property NameProperty Type Description Constraint
sSource
queue_id varchar(255) pyGUID Text Unique Record for the
Line ItemPK - NOT
NULL Auto Generated ID
using a function
interaction_id Number InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the TreatmentNOT NULLSR
treatment_vari
antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer
VariantNOT NULLSRTable Name apppush_staging


3239

Sample Datacreate_dateti
metimestamp CreateDateTimeDateTime Date Time Entered to
QueueNOT NULLOn Entry
payload text Payload Text JSON Payload of
Required SR DataNOT NULLJSON of SR
priority Number Priority Double  NOT NULLSR
partition_key Number PartitionKey Integer Partition Key for multi
node selectionNOT NULLSR
expiry_datetim
etimestamp ExpiryDateTimeDateTime Expiry date of
interaction SR
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference NOT NULLTreatment Config
destination_ad
dressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the sessionNOT NULLTreatment Config
1e438
c6f-
8c00-
498d-
bfe6-
ffb274
74d50f45918
39993
13227
8300DataExtr
a_AppP
ushVariant DataE
xtra2GB Payload 2 5 2022-03-
25
16:19:40
.6682022-
04-14
17:19:40
.6688.0 4418102
03110
e107b
5a2-
9f16-
463d-
aaca-
5717a
e7e0e
e414401
99328
91295
5390Upgrade
Phone_
AppPus
hVariant Upgra
dePho
ne1GB Payload 1 2 2022-03-
25
16:19:40
.8302022-
04-14
17:19:40
.8304.0 4417510
51467
22c53
548-
5a7f-
4bd2-
8dfb-
d7fc72


548-
5a7f-
4bd2-
8dfb-
d7fc72
43dae
d47093
53426
88961
7844Upgrade
Insuranc
e_AppP
ushUpgradeI
nsurance
_AppPus
h_3Upgra
deInsu
ranceUpgra
deInsu
rance_
2Payload 5 4 2022-03-
23
15:07:53
.3382022-
04-12
16:07:53
.3525.0 4477339
35015queue
_idintera
ction_i
dtreatme
nt_nam
etreatme
nt_varia
ntoffer_
nameoffer_
varian
tpayload priorit
ypartiti
on_ke
ycreate_
datetim
eexpiry_
datetim
eaccou
nt_po
oldestinat
ion_add
ress


3240
Payload
{ "Channel": "Web",  "Classification": "EMPTY",  "ConnectionType": "4G",  "CostExVAT": "0.0000000",  "CostIncludingVAT": "0",
"CostIncVat": "4999",  "DecisionMetadataProperties":
"OfferName,OfferVariant,TreatmentName,TreatmentVariant,OfferID,TreatmentID,DeviceLoanS15Benefit",  "DefaultUpfrontCost": "0",
"DeviceColour": "Black",  "DeviceLoanS15Benefit": "-4457.441666631",  "DeviceName": "Doro 8050",  "DeviceStorageInteger": "0",
"DeviceType": "Handset",  "DisplayName": "Doro 8050",  "Duration": "0",  "FixedProductEnabledChannel": "InboundCC|Web",
"FixedProductEnabledOrderTypes": "Upgrade|Flexi Upgrade|New Acquisition",  "FixedProductEnabledTeam": "Save|SuperSave|Omni",
"HandsetCost": "4999",  "HandsetCostExVAT": "4165.8333333",  "HandsetLoanPrice": "0",  "HandsetLoanPriceExVAT": "0.0000000",
"HandsetModel": "Doro Placeholder",  "Identifier": "H_201769",  "Index": "1",  "IsFixed": "false",  "IsRecommended": "false",
"IsWatchSubscription": "false",  "MaxTenure": "0",  "MaxUpfrontCost": "0",  "MinTenure": "0",  "MinUpfrontCost": "0",  "Name": "Doro


Placeholder",  "NearlyNew": "false",  "PriceType": "TOTAL_COST",  "ProductCode": "201769",  "ProductName": "Doro Placeholder",
"ProductRecommendationType": "Handset",  "pxDecisionReference": "-212978131 1672641303433123110",  "pxDecisionTime":
"20220218T064317.494 GMT",  "pxIdentifier": "///",  "pxInteractionID": "1672641303433123110",  "pxObjClass": "VFUK-AOMFW-SR",
"pxPriority": "141501.0",  "pxRank": "1",  "pxUpdateDateTime": "20220218T063034.102 GMT",  "pyApplication": "AOM_Branch2",
"pyApplicationVersion": "01.01.01",  "pyComponent": "Check If any Record Available",  "pyDivision": "Consumer",  "pyInteraction":
"GetProductList",  "pyOperator": "hemanth.gaddam@adqura.com",  "pyOrganization": "VFUK",  "pyPreviousComponent": "Check If any
Record Available",  "pyStrategy": "GetProductList",  "pySubjectID": "-212978131",  "pySubjectType": "VFUK-FW-AOMFW-Data-
Subscription",  "pyUnit": "BaseMarketing",  "pzADMInputSource": "modelReferences",  "pzMarkers": null,  "RankPosition": "1",
"RecommendedDeviceIsFixed": "false",  "ResponseType": "Item",  "Team": "Save",  "UpliftCost": "291.608333331",  "ValueDecimal": "0",


"ValueDecimal1": "0",  "ValueDecimal2": "0",  "ValueDecimal3": "0",  "ValueDecimal4": "0",  "ValueInteger": "0",  "VATAmount": "0.0000000",
"VATCode": "0.2000000" }
AppPush Queue
Overview
Table Definition
Class Name VFUK-FW-AOMFW-Data-AppPushSendQueue
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) pyGUID Text Unique Record for the
Line ItemPK - NOT
NULL Auto Generated ID
using a function
run_id varchar(255) RunId Text Run Id NOT NULLAuto Generated ID
using a function
interaction_id Number InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_vari
antvarchar(255) TreatmentVariantText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
priority Number Priority Double  NOT NULLSRTable Name apppush_send_queue


3241
Sample Datapayload text Payload Text JSON Payload of
Required SR DataNOT NULLJSON of SR
partition_key Number PartitionKey Integer Partition Key for multi
node selectionNOT NULLSR
create_dateti
metimestamp CreateDateTimeDateTime Record Creation
DateTimeNOT NULLSystem Date Time
update_dateti
metimestamp UpdateDateTimeDateTime Record Updation
DateTimeNOT NULLSystem Date Time
expiry_dateti
metimestamp ExpiryDateTime DateTime Expiry date of interaction  SR

status varchar(255) Status Text Status of Queue Item:
LOV:
NULL
Error
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference NOT NULLTreatment Config
destination_a
ddressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the session NOT NULLTreatment Config
22c53548-
5a7f-4bd2-
8dfb-
d7fc7243d
aed47093534
26889617
844Upgrad
eInsura
nce_Ap
pPushUpgrad
eInsura
nce_Ap
pPush_
3Upgr
adeIn
suran
ceUpgra
deIns
uranc
e_2Payl
oad2 5 202
2-
03-
23
15:0
7:53
.338202
2-
04-
12
16:0
7:53
.352202
2-
04-
14
17:3
6:19
.940123
45Acti
ve8.0 Vod
afon
e441
810
203
110
e107b5a2-
9f16-463d-
aaca-
5717ae7e0
ee414401993
28912955


aaca-
5717ae7e0
ee414401993
28912955
390Upgrad
ePhon
e_App
PushVariantUpgr
adeP
hone1GB Payl
oad1 2 202
2-
04-
04
10:1
7:04
.911202
2-
04-
04
10:1
7:04
.912202
2-
04-
04
10:1
7:04
.961123
46Erro
r4.0 Vod
afon
e441
751
051
467
22c53548-
5a7f-4bd2-
8dfb-
d7fc7243d
aed47093534
26889617
844Upgrad
eInsura
nce_Ap
pPushUpgrad
eInsura
nce_Ap
pPush_
3Upgr
adeIn
suran
ceUpgra
deIns
uranc
e_2Payl
oad5 4 202
2-
04-
04
10:1202
2-
04-
04
10:1202
2-
04-
04
10:1123
457Acti
ve5.0 Vod
afon
e447
733
935
015queue_id interacti
on_idtreatm
ent_na
metreatm
ent_var
iantoffer
_na
meoffer
_vari
antpayl
oadprio
ritypart
itio
n_k
eycrea
te_d
ateti
meexpi
ry_
date
timeupd
ate_
date
timerun
_idstat
usacc
oun
t_p
oolsen
der
_ali


date
timerun
_idstat
usacc
oun
t_p
oolsen
der
_ali
asdest
inati
on_
add
ress


3242
App Push Sent
Overview

Table Definition
Sample Data7:04
.8497:04
.8497:04
.896
Class Name VFUK-FW-AOMFW-Data-AppPushSent
Column
NameColumn Type Property Name Property TypeDescription Constraint
sSource
queue_id varchar(255) QueueId Text Unique Record for the
Line ItemPK - NOT
NULLAuto Generated ID
using a function
interaction_id numeric InteractionId Decimal Record of Interaction NOT NULLSR
treatment_na
mevarchar(255) TreatmentNameText Name of the Treatment NOT NULLSR
treatment_vari
antvarchar(255) TreatmentVarian
tText Name of the Treatment
VariantNOT NULLSR
offer_name varchar(255) OfferName Text Name of the Offer NOT NULLSR
offer_variant varchar(255) OfferVariant Text Name of the Offer VariantNOT NULLSR
sent_datetimetimestamp SentDateTime DateTime Date Time sent NOT NULLOn Send
message_id varchar(255)
 MessageId Text Unique identifier for the
sent message Sent with AppPush
message
destination_ad
dressvarchar(255) DestinationAddr
essText The number being used
as the destination within
the sessionNOT NULLAppPush Queue
account_poolvarchar(255) AccountPool Text SMPP Account List
Reference NOT NULLTreatment ConfigTable Name apppush_sent
22c53548-5a7f-4bd2-
8dfb-d7fc7243daed4709353426
889617844UpgradeI
nsurance
_AppPushUpgradeI
nsurance
_AppPus
h_3UpgradeI
nsuranceUpgradeI
nsurance
_22022-04-14
17:45:55.65996 4477339350
15
25c53548-5a7e-4bd2-


15
25c53548-5a7e-4bd2-
8dfc-d7fc7243daed4709353426
889617845DataExtra
_AppPushDefault DataExtr
a2GB 2022-04-05
00:00:00.00041.0 4477995084
51queue_id interaction_i
dtreatment
_nametreatmen
t_variantoffer_na
meoffer_var
iantsent_datetime message
_iddestination
_address


3243
AppPush Cancelled
Overview

Table Definition
Sample Data22c53548-5a7f-4jh5-
8dfb-d7fc7243daez4709353426
889617846UpgradeP
hone_App
PushVariant Upgrade
Phone1GB 2022-04-03
00:00:00.00085.0 4477688218
76
Class Name VFUK-FW-AOMFW-Data-AppPushCancelled
Column Name Column Type Property Name Property
TypeDescription Constraints Source
queue_id varchar(255) QueueId Text Unique Record
for the Line ItemPK - NOT NULLAppPush
Queue
interaction_id Number InteractionId Decimal Record of
InteractionNOT NULL
treatment_name varchar(255) TreatmentName Text Name of the
TreatmentNOT NULL
treatment_variant varchar(255) TreatmentVariant Text Name of the
Treatment
VariantNOT NULL
offer_name varchar(255) OfferName Text Name of the
OfferNOT NULL
offer_variant varchar(255) OfferVariant Text Name of the
Offer VariantNOT NULL
operator varchar(255) Operator Text Name of the
Operation who
performed the
action
cancel_date_time timestamp CancelDateTime DateTime Record Creation
DateTime
cancel_complete_time timestamp CancelCompleteDateT
imeDateTime Record Cancel
DateTime  Table Name apppush_cancelled
be42866f-317c-
422f-92e8-
90ac613625bb4640145965
483644900AppPus
hDataExt
ra1GB DataExtra_
AppPushDefault Housek
eeping2022-04-07
14:31:17.84
62022-04-07
14:31:17.84
6Expire
dqueue_id interaction_


14:31:17.84
6Expire
dqueue_id interaction_
idchanne
l_nameoffer_n
ameoffer_v
arianttreatment_
nametreatment
_variantoperat
orcancel_dat
e_timecancel_co
mplete_tim
ereaso
n


3244
AOMConfig Valuesd2570bee-7434-
408a-8cb0-
cdcc0da657762045589231
213254140AppPus
hUpgrade
Phone2GB UpgradePh
one_AppP
ushVariant Housek
eeping2022-04-07
14:31:43.19
82022-04-07
14:31:43.19
8Expire
d
f8ff1c86-f4c5-
494f-8425-
7997a04b5df63271130096
019792900AppPus
hDataExt
ra2GB DataExtra_
AppPushDefault Housek
eeping2022-04-07
14:32:22.44
72022-04-07
14:32:22.44
7Expire
d
ThrottleRateDuration AppPush 5 Bucket Window in
minutes
ThrottleRateLimit AppPush 100000 Bucket Rate for each
Bucket Window
duration
ThrottlePartitionSize AppPush 5 Number of partitions
RetryCount AppPush 2 Message failure retry
count
RetryInterval AppPush 3 Number of controllers
OutboundCommsEnabled AppPush FALSE Is the Channel
Enabled
HousekeepingSQL AppPushStaging VFUK-FW-AOMFW-Data-
AppPushStagingTable’s class to be
purged
HousekeepingRetentionPeriod AppPushStaging 30 How many days to
purge records after
DataFlowWorkItemId ProcessAppPushByChannelManag
ement
AppPushSendQueue RetryCount 2  ConfigType ConfigName ConfigValue Description


3245
Rules & Activities for App Push
Orchestration Activity
SendRealtimeAppPush Activity
QueueProcessor Activity
SetupRateLimitingBucket Activity
TriggerAppPushNotification Activity
InvokeAppPushNotification Activity
Orchestration Activity

SendRealtimeAppPush Activity
Applies To VFUK-FW-AOMFW-Data-AppPushStaging
Ruleset AOMFW
Input Parameter PartitionKey
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Get the Channel Volume limit from the AOM Config
2. Invoke the Stored Procedue TBD with Param.PartitionKey to populate the send tables with error handling
3. Do an obj-browse with the RunId which is passed as parameter to above stored procedure
a. For reach record in the list
i. Invoke new Queue Process ( Name  : ProcessQueueItem)
4. Handle all error scenarios
5. Log Audit and Error tablesActivity Name: QueueSelection
An activity that processes realtime requests so that they can be sent immediately instead of waiting for the job scheduler to process them
Applies To VFUK-AOMFW-SR
Ruleset AOMFW
Input Parameter N/A
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error LogActivity Name: SendRealtimeAppPush


3246

QueueProcessor Activity
SetupRateLimitingBucket Activity

TriggerAppPushNotification ActivityActivity Logic 1. Use the Offer/Treatment properties to grab the related TreatmentSendConfig record2. Use the properties within the input SR page and the TreatmentSendConfig page to create a valid
AppPushSendQueue page,
3. Set the initial requeue count to 0 and put the record in the RealtimeAppPushQueueProcess queue
processor
4. If any step in this activity fails, perform the necessary error handling, otherwise, finish parent activity as well
5. Perform audit logging on the request as a whole
This Activity process the records from are available in QueueProcessor (SendAppPushQueueProcessor and
RealtimeAppPushQueueProcess )
Applies To VFUK-FW-AOMFW-Data-AppPushSendQueue
Ruleset AOMFW
Input Parameter N/A
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Check if the token exists to be consumed
a. If Yes, then
i. Use the values in the current page to create an AppPush account to send the message with, a
destination for the message to go to and the message body itself
ii. Invoke the SendAppPushMessage activity until it succeeds or until the retry count is exceeded
iii. Save the page data to the OutboundCommsStore and AppPushSent tables and the Interaction
History
iv. Update the audit log with the Complete status
v. Delete the page from the SendQueue table
b. If No, then
i. Update the Status to Retry and save the page back into the Staging table
ii. Remove the related page from the SendQueue table
iii. Update the audit log with the Retry statusActivity Name: ProcessQueueItem


iii. Update the audit log with the Retry statusActivity Name: ProcessQueueItem
Update Step three to get the ThrottleRateDuration and ThrottleRateLimit for AppPush
Inster two new steps after step 9 to SetupRLB for AppPush by passing the values retrieved in the above stepActivity Name: SetupRateLimitingBucket


3247

InvokeAppPushNotification Activity
 Validates mandatory request Parameters for PushNotification and service and connect to service
Applies To VFUK-AOMFW-SR
Ruleset AOMFW
Input Parameter NA
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic 1. Validate the Payload ( SR Page)
2. Invoke InboxTemplateHandler Activity
3. Invoke PushNotificationTemplateHandler Activity
4. Prepare Push Notification API Request
5. Invoke CreateErrorLog for Error
6. Invoke CreateAuditLog for both Error and Sucessfull executionActivity Name: TriggerAppPushNotification/InvokeAppPushNotification/AppPushNotificationHandler( AppliesToClass:VFUK-
AOMFW-SR)
Conditionally invokes SendRealtimeAppPush if the AppPush toggle is enabled, or InitialiseConnectQueueStatus
Applies To VFUK-AOMFW-SR
Ruleset AOMFW-Int
Input Parameter N/A
Output Parameter N/A
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic Use the AppPush Feature Toggle when rule
If Toggle is enabled:
Invoke SendRealtimeAppPush activity
else(Toggle is disabled):
Invoke InitialiseConnectQueueStatus Activity Name: InvokeAppPushNotification


3248
Case Changes for App Push
BatchNBA
Extractor
BatchNBA
No Changes required
Extractor
Update ProcessBatchNBAExtract to include the Decision to check if the AppPush Feature toggle is enabled
If, the toggle is enabled
Create a new Process flow to invoke new dataflow with all the error handling and IH rollback ( check with logic)
else (the toggle is disabled)
Update ProcessAppPushForBatch process flow activity to invoke new dataflow ( check with logic)


3249
Send SMS Message
Rules
SendSMSMessage Activity
String SendSMSMessage--(Properties properties, String destinationNumber , String messageBody , String interactionId)
Properties
User Guide
Documentation
Rules
This activity takes the properties from AOMConfig for the given SMPP account and creates a Properties object with them before calling the
SendSMSMessage function and returning MessageId to the user
Applies To VFUK-FW-AOMFW-Int
Ruleset AOMFW-Int
Input
ParametersSMMPAccount [ C l i p b o a r d P a g e ]
DestinationNumber [ S t r i n g ]
MessageBody [ S t r i n g ]
InteractionId [ S t r i n g ]
Output
ParametersMessageId [ S t r i n g ]
Error
HandlingPrimary Catch-all Error Handler
Activity
LogicCall the SendSMSMessage function using the input parameters for the activity as the input values for the function
Set the MessageId output parameter as the return value of the functionSendSMSMessage Activity
Sends an SMS message using the given input parameters and returns the id of the message being sent
Paramete
rssmppAccount Page containing sender properties and SMPP Account details to send the message with
 destinationNumb
erThe number being used as the destination within the session
 messageBody Contents of the message being sent via the session
 interactionId Interaction id for the message
Returns String - messageId
Throws RuntimeExceptionString SendSMSMessage--(Properties properties, String destinationNumber, String
messageBody, String interactionId)


3250
PropertiesFunction
LogicThe SendSMSMessage function creates a connection using properties defined in the Properties object of the smppAccount
page and uses this to connect to the SMPP API
The function then uses this connection as well as the sender information present in the page and the input parameters to
create a Message object to be sent by the API, splitting the contents of the message into fragments if necessary
The function then sends the message to the API, either as one whole message or in fragments
Finally, the function takes the message id from the sent message, closes the connection to the API and ends, returning the
message id
Confi
gNam
eConfigT
ypeConfigValue
SMPHost - Text N/A Input -
N/AThe host name that will be used
when connecting to the SMPP APIMandatory -
Should be
config-driven[Accou
ntId]SMPPA
ccount{ "class" :
"ie.ncl.sms.s
mpp.SmppC
onnection",
"version" :
52, "host" :
"smpp.smsgl
obal.com",
"port" : 1775,
"id" : [UserId],
"pass" :
[Password],
"type" :
"SMPP",
"bindType" :
"transmitter",
"defaultAlpha
betEncoding"
: "GSM",
"sourceNumb
er" :
[SourceNum
ber],
"sourceTon" :
1,
"sourceNpi" :
1,
"defaultTon" :
1,
"defaultNpi" :
1,
"maxNumber
OfRetries" :
5,


1,
"maxNumber
OfRetries" :
5,
"smscRespoSMPPort - Text The port that will be used when
connecting to the SMPP APIMandatory -
Should be
config-driven
SMPPBindtype -
TextThe binding type for the API
connection, which determines if it
can send messages, receive
messages or do both
LOVs:
“transmitter” = Allows the API
connection to only send outbound
messages from a source to a
destination
“receiver” = Allows the API
connection to only receive
inbound messages from a
destination to a source
“transceiver” = Allows the API
connection to both send
outbound messages and receive
inbound messagesMandatory -
Should be
config-driven
SMPPNameValue
List - Page ListA list of additional properties that
have been configured for the SMPP
API, including both the property
name and valueOptional -
Should be
config-driven
ThrottleUSeconds
- IntegerHow long the system should wait
between messages sent in
microsecondsOptional -
Should be
config-drivenSource Name Property
NameProper
ty TypeUsage Required? AOM Config


3251
nseTimeoutS
econds" :
300,
"reconnectOn
Disconnect" :
true,
"reconnectRe
tryAttempts" :
60,
"reconnectTi
merSeconds"
: 60.
[additional
property
name] :
[additional
property
value] }FlowControlTimer
Seconds - Integer How long the system should wait
after receiving a throttle request
before continuing to send messages
in secondsOptional -
Should be
config-driven
UnackedQueueSi
ze - IntegerThe maximum amount of outbound
messages that can be sent without
receiving a responseOptional -
Should be
config-driven
reconnectOnDisc
onnect - BooleanWhether or not the API should try to
reconnect after failingOptional -
Should be
config-driven
MaximumNumber
OfRetries - IntegerHow many times the API is allowed
to try to send a specific message
before thowing an exceptionOptional -
Should be
config-driven
RequestTimeout -
TextHow long the API should wait before
considering the request to send a
particular message to be unacked
(unprocessed)Optional -
Should be
config-driven
Encoding - Text If DataCodingScheme is not
specified, this will hold the character
encoding that will be used by the APIOptional -
Should be
config-driven
reconnectRetryAtt
empts - IntegerHow many times the API is allowed
to try to reconnect until throwing an
exceptionOptional -
Should be
config-driven
ReconnectTimerS
econds - IntegerHow long the API should wait before
another attempt to reconnect is
madeOptional -
Should be


another attempt to reconnect is
madeOptional -
Should be
config-driven
SMPSystemID -
TextThe authentication id for the source
of the SMSMandatory -
Should be
config-driven
SMPPassword -
TextThe authentication password for the
source of the SMSMandatory -
Should be
config-driven
SourceNumber -
TextThe phone number for the source of
the SMSMandatory -
Should be
config-driven
SourceTon -
IntegerType of Number for the source of the
SMS
LOVs:
0 = Unknown
1 = International Number
2 = National Number
3 = Network-Specific Number
4 = Subscriber Number
5 = Alphanumeric NumberOptional -
Should be
config-driven


3252
6 = Abbreviated Number
SourceNpi -
IntegerNumber Plan Indicator for the source
of the SMS
LOVs:
0 = Unknown
1 = ISDN Telephone Plan (E.164
standard format)
2 = Generic Plan
3 = Data Plan (X.121 standard
format)
4 = Telex Plan (F69 standard
format)
5 = Maritime Mobile Plan (E.210
and E.211 standard format)
6 = Land Mobile Plan (E.212
standard format)
7 = ISDN Mobile Plan (E.214
standard format)Optional -
Should be
config-driven
Class - Constant The Java class which the properties
for the API belong toMandatory -
Should be
config-driven
Type - Constant The type of API currently being usedMandatory -
Should be
config-driven
Version -
ConstantThe version of the API currently
being usedMandatory -
Should be
config-driven
DataCodingSche
me - Text Input -
N/AThe data coding scheme that will be
used by the API for the current SMS
request
LOVs:
“Binary” = Used for sending
binary data
“Default” = Used for sending
simple messages
“DisplayOnly” = Used for
displaying the message as an
alert to the user without saving it
“Flash” = Similar to the
DisplayOnly data coding scheme,
but for Unicode-encoded
messages
“NokiaSmartMessage” = Used for
sending messages to a Nokia
smartphone Assumed by the
function


3253
User Guide
When trying to send an SMS message, 4 properties are required:
SMPPAccount: Clipboard Page (VFUK-FW-AOMFW-Data-SMPPAccount)
DestinationAddress: String
MessageBody: String
InteractionId: String
To get an accurate SMPPAccount page:
The D_SMPPAccount data page should be loaded with an accurate sender alias and account name
The sender alias is obtained directly through the SMSSendQueue’s SenderAlias property
The account name is obtained through the SMSCAccountPool value for the current AccountPool in AOMConfig, which is obtained
through the SMSSendQueue’s AccountPool property
The data page then takes the JSON string associated with the sender alias and grabs the relevant sender properties from them, and
uses the account name to retrieve a Properties java object containing the current SMS channel’s account details to be used by the
SMS API
To get an accurate DestinationAddress and InteractionId (these properties are obtained in the same way):
These properties are taken directly from the SMSSendQueue’s DestinationAddress and InteractionId properties, with
DestinationAddress being in the format of an international phone number and InteractionId being a valid interaction id
To get an accurate MessageBody:
This property is found in the SMSSendQueue’s Payload JSON (under the MessageBody property), and thus should be obtained by
converting the payload into an SR page before grabbing the message body from that page.
When the function is completed, a MessageId property will be returned to the user as a receipt to show that a message has been sent
successfully“Unicode” = Used for sending
Unicode data
SMSDeliveryMode
- TextWhether the SMS should be sent
synchronously or asynchronously Assumed by the
function
DestinationNumb
er - TextDestination
NumberInput -


function
DestinationNumb
er - TextDestination
NumberInput -
TextThe phone number for the
destination of the SMSMandatory -
Should be
specific to the
record
MsgBody - Text MessageBo
dyInput -
TextThe actual contents of the message
that is being sentMandatory -
Should be
specific to the
record
CorrelationID -
TextInteractionIdInput -
TextThe interaction identifier for the
message that is being sentOptional -
Should be
specific to the
record
MessageID - TextMessageId Output
-TextUnique identifier for the sent
messageOptional -
Should be
specific to the
record
SMSException -
Java ObjectErrorMessa
geOutput
- TextHolds the details of any exception
that may have occurred as part of
the functionOptional -
Should be
specific to the
record


3254
Documentation
NCL Library (in use): http://docs.ncl.ie/NCL/doc/api/overview-summary.html
jSMPP Library: https://jar-download.com/artifacts/org.jsmpp/jsmpp/2.3.2/documentation


3255
Simulation Portal


3256
Create Simulation Screen
Description
Implementation
Class
VFUK-FW -AOMFW -UI-Simulation
Create Simulation
Navigation
Navigation Name: Simulation
Section
Section Name: MainContentArea
Section Name: Create Simulation
Section Name: BatchNBA
Section Name: GetNBA
Section Name: TIL
Section Name: Error
Section Name: W arning
Section Name: SubmittedSuccessfully
When Rule
When Name: AreMandatoryFieldsEmpty
Activity
Activity Name: DisplayCreateSimulation
Activity Name: CaseDependencyCheck
Activity Name: Submit
Activity Name: SetRequestDates
Activity Name: CheckContextIsNA
Activity Name: V alidateAutocomplete
Data Transform
Data Transform Name: ClearExecutionModeFields
Data Transform Name: SetGetNBAFields
Report Definition
Report Definition Name: GetSimultionSegments
Report Definition Name: GetChannel
Report Definition Name: GetSubchannelByChannel
Report Definition Name: GetPrimaryContextBySubchannel
Report Definition Name: GetSecondaryContextByPrimaryContext
Report Definition Name: GetNTIDs
Data Page
Data Page Name: D_GetRequestDatesForTIL
Data Page Name: D_GetRequestDatesForGetNBA
Description
To be able to trigger a Simulation case from the AOM Management portal, a new Simulation Menu is created.


3257

Implementation
Class
Create a new UI class for Simulation.
VFUK-FW-AOMFW-UI-Simulation
Name Text Mandator
y

 Description Text Mandator
y
Type Dropdow
nMandator
yDistribution
Funnel
Customer
ExecutionMode Dropdow
nMandator
yBatchNBA
GetNBA
TIL
BaseLine Dropdow
nMandator
yCreate new
Base Line
data
Use existing
Base Line
dataIf “Use existing Base
Line data” selected,
below sections needs
to be made invisible Property Name Propert
y TypeRequiredExample Value Validation Description Section
Create
Simulati
on


3258
Segment Autocom
pleteMandator
y 1. Only visible when
a. ExecutionMode is
BatchNBA
b. UseBaseLineDat
a is not selected
2. Segment validated
with
IsValidAutcompleteP
ropertyValues are displayed by report
definition
GetSimultionSegments from
Rule-Obj-Report-Definition-
Segment class
Only display Segment name
starting with “SIM_”

BatchNBA

RefreshSegmentCheckbo
xOptional True/False Default Value: False
LastRunTime DateTim
e  Last run time of the segment
populated from report definition
GetSimultionSegments
Channel Dropdow
nMandator
y  1. Only visible when
a. ExecutionMode is
GetNBA
b. UseBaseLineDat
a is not selected
2. Initially only Channel
is enabled and once
selected
SubChannel, which
enables Primary
Context, which
enables Secondary
Context
3. If
Primary/Secondary
Context can only be
“N/A”, this value is
selected and the
control disabled
4. Request Start and
End dates must be
in the past
5. RequestEndDate
must be later than
RequestStartDate
 Populated from Unique List of
Channels provided by
inbound_subscription_context

GetNBASubChannel Dropdow
nMandator
y  Populated from Unique List of
SubChannel provided by
inbound_subscription_context bas
ed on Channel selection
PrimaryContext Dropdow
nMandator
y Populated from Unique List of


PrimaryContext Dropdow
nMandator
y Populated from Unique List of
PrimaryContext provided by
inbound_subscription_context bas
ed on SubChannel selection
SecondaryContex
tDropdow
nMandator
y Populated from Unique List of
SecondaryContext provided by
inbound_subscription_context bas
ed on PrimaryContext selection
IsPrimaryContext
NAOnlyBoolean  Determines if Primary (hence
Secondary) context list only
contains the value “N/A” for
chosen inputs
IsSecondaryCont
extNAOnlyBoolean  Determines if Secondary context
list only contains the value “N/A”
inputs
RequestStartDate
 Date Mandator
y  Format: DD/MM/YYYY
RequestEndDate Date Mandator
y  Format: DD/MM/YYYY
VolumeLimit Text Optional  1. Set Volumelimit for GetNBA
MinRequestDate     Minimum request date for chosen
inputs
MaxRequestDate    Maximum request date for chosen
inputs


3259
Navigation
Section
 NTID Autocom
pleteMandator
y  1. Only visible when
a. ExecutionMode is
TIL
b. UseBaseLineDat
a is not selected
2. NTID validated with
IsValidAutcompleteP
roperty
3. Request Start and
End dates must be
in the past
4. RequestEndDate
must be later than
RequestStartDatePopulated from a new DP
which is browse
bundle_event_context db table

TILRequestStartDateDate Mandator
y  Format: DD/MM/YYYY
RequestEndDate Date Mandator
y  Format: DD/MM/YYYY
VolumeLimit Text Optional  Set Volumelimit for TIL
MinRequestDate Date   Minimum request date for chosen
NTID
MaxRequestDateDate   Maximum request date for chosen
NTID
ErrorMessage Text    This will be used to display any
error to the end user
WarningMessageText    This will be used to display case
dependency to the end user or
inform of missing mandatory fields
Contains the menu item Simulation and sub-item Create New which invokes the section CreateSimulation
Applies ToData-Portal-AOMManagement
Ruleset AOMFW-UINavigation Name: Simulation
Contains the body of the portal. Includes Simulation sections that are displayed depending on DisplayName
Applies ToData-Portal-AOMManagement
Ruleset AOMFW-UISection Name: MainContentArea
Contains the simulation sections and common properties. Once the end user clicks Simulation > Create Newfrom Menu, this section will be
displayed.
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: Create Simulation


3260

When RuleSection Name: BatchNBA
When ExecutionMode is selected as GetNBA by the end user, this section will be displayed
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: GetNBA
When ExecutionMode is selected as TIL by the end user, this section will be displayed
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: TIL
If there is any ErrorMessage coming from activities, this section will be displayed at the top of the Create Simulation section
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: Error
If there is any case dependencies, this section will be displayed at the top of the Create Simulation section on pressing submit
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: Warning
If there was no error or warning after pressing Submit, display a message telling the user the submission was successful as the main section
on the screen
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UISection Name: SubmittedSuccessfully
True if any of the required fields are emptyWhen Name: AreMandatoryFieldsEmpty


3261
ActivityWhen ExecutionMode is selected as BatchNBA by the end user, this section will be displayed
Applies ToVFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UIApplies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Displays the CreateSimulation section and resets ErrorMessage and WarningMessage
Applies To Data-Portal-AOMManagement
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: DisplayCreateSimulation
Checks if any case dependency is running. If it is, set the warning message to let the user know
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: CaseDependencyCheck
If there is no warning or error, run a Simulation case using all the provided fields
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: Submit


3262
Data TransformGets the minimum and maximum request dates for GetNBA or TIL given the input fields for that Execution Mode
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersExecutionMode
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activity
Data Page Error HandlerActivity Name: SetRequestDates
Checks if PrimaryContext or SecondaryContext yields only “N/A” in Inbound Subscription Context given earlier inputs, setting these fields to
“N/A” and disabling (greying them out) if yes.
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersContextType
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: CheckContextIsNA
Validates if Segment or NTID  are present in a list, result returned as a boolean output. NTID is checked to exist in VFUK-FW-AOMFW-Data-
BundleEventContext. Segment is checked to be in Rule-Obj-Report-Definition-Segment and beginning with “SIM_”
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersProperty
Output
ParametersOutcome
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: ValidateAutocomplete


3263
Report Definition
 Clears all the fields for each of the Execution Modes. This data transform is used on change of ExecutionMode or on BaseLine when
changed to “Use existing Base Line data”
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersOnExecutionModeField
Output
ParametersNAData Transform Name: ClearExecutionModeFields
Changes GetNBA fields to what is specified in Input Parameters and empty Request Date fields
Applies To VFUK-FW-AOMFW-UI-Simulation
Ruleset AOMFW-UI
Input
ParametersChannel
SubChannel
PrimaryContext
SecondaryContext
Output
ParametersNAData Transform Name: SetGetNBAFields
Gets each segment name beginning with “SIM_”, and its last refresh time and run count - for the BatchNBA section
Applies ToClass: Rule-Obj-Report-Definition-Segment
Ruleset AOMFW-UI
Input
parameterNAReport Definition Name: GetSimultionSegments
Gets all the Channel data from inbound_subscription_context db table - for the GetNBA section
Applies ToVFUK-FW-AOMFW-Data-InboundSubscriptionContext
Ruleset AOMFW-UI
Input
parameterNAReport Definition Name: GetChannel


3264

Data PageGets all the Subchannel data from inbound_subscription_context db table based on selected Channel by end user - for the GetNBA section
Applies ToVFUK-FW-AOMFW-Data-InboundSubscriptionContext
Ruleset AOMFW-UI
Input
parameterChannelReport Definition Name: GetSubchannelByChannel
Gets all the Primary Context data from inbound_subscription_context db table based on selected SubChannel and Channel by end user - for
the GetNBA section
Applies ToVFUK-FW-AOMFW-Data-InboundSubscriptionContext
Ruleset AOMFW-UI
Input
parameterSubChannelReport Definition Name: GetPrimaryContextBySubchannel
Gets all the Secondary Context data from inbound_subscription_context db table based on selected Primary Context, SubChannel and
Channel by end user - for the GetNBA section
Applies ToVFUK-FW-AOMFW-Data-InboundSubscriptionContext
Ruleset AOMFW-UI
Input
parameterPrimaryContextReport Definition Name: GetSecondaryContextByPrimaryContext
Gets each NTID for the TIL section
Applies ToVFUK-FW-AOMFW-Data-BundleEventContext
Ruleset AOMFW-UI
Input
parameterNAReport Definition Name: GetNTIDs
Returns a page with MinRequestDate and MaxRequestDate given the input NTID
Structure Page
Object Type VFUK-FW-AOMFW-Data-BundleEventContextData Page Name: D_GetRequestDatesForTIL


3265
 Mode Read-Only
Scope Node
Ruleset AOMFW-Database
Data Source GetRequestDatesForTIL
Input
parametersNTID
Load
Management
- Reload if
older than1 day
Returns a page with MinRequestDate and MaxRequestDate given input GetNBA properties
Structure Page
Object Type VFUK-FW-AOMFW-Data-InboundSubscriptionContext
Mode Read-Only
Scope Node
Ruleset AOMFW-Database
Data Source GetRequestDatesForGetNBA
Input
parametersChannel
SubChannel
PrimaryContext
SecondaryContext
Load
Management
- Reload if
older than1 dayData Page Name: D_GetRequestDatesForGetNBA


3266
Back out IH
Back out IH Design
Back out IH Data Model
Back out User Interface
Back out IH Rules & Activities
Back out IH Case Changes
Backout Data Design
Making a Delete IH request


3267
Back out IH Design
Overview IH
Making a Delete IH request
Processing
Extraction
Glossary
Overview IH
Delete IH is a task that allows the user to delete records from Interaction History, as well as Interaction History Reporting and
Recommendation Items if applicable, using the fact ids of those records to select which records to be deleted, and allows the user to see a
record of these deletions, both in DB tables and in an external file
Making a Delete IH request
The request is made using the “Delete IH” submenu in the AOM Management portal where a .csv/.txt file which has fact_Ids is uploaded.
Please refer Making a Delete IH request
Processing
After the fact ids have been uploaded, the tasker case populates each individual fact id into a value list and uses that populate the IHDelete
table with all of the given fact ids alongside the current case id. Once this is completed, the DB runs through each fact id associated with the
current case and deletes records that use these fact ids from the relevant tables, moving each record from IHDelete into IHDeleteStaging
table and each deleted record into DeletedIHFact table
Extraction
This extraction type checks whether toggles are enabled for the following tables: Interaction History, Recommendation Items and Interaction
History Delete, and then takes each record from the tables with enabled toggles that lie between the date of the last successful run of the
Extractor case and the current date. The case then uses these records to populate an external .dsv file that is then compressed and
encrypted, using each record as a new individual line
Glossary
IHDelete table: The table which holds each fact id to be deleted from the interaction history and the associated case id
IHDeleteStaging table: The table which holds all fact ids after the fact ids have been consumed from IHDelete table


DeletedIHFact table: The table which holds all of the details for each deleted record, as well as information on its deletion
FactId: The primary key that identifies an Interaction History record, and the foreign key which links it to Interaction History Reporting and
Recommendation Items records
IHDeleteStagingSRV view: The view which holds each record in IHDeleteStaging table between the date of the last successful Extractor
run and the current date
IHDeleteStagingExtract table: The table which holds each line to be appended to the extraction file that will be created for the
aom_deleted_ih file
aom_deleted_ih file: The destination file of the extraction which holds all of the records of fact ids that have been used in the Delete IH
task between a specified period of time


3268
Back out IH Data Model

 Class Name VFUK-FW-AOMFW-Data-IHDelete
Column Name Property Name Constraints Type Example Description
case_id CaseId NOT NULL varchar(255) T-24003 Case-Id
fact_id FactId NOT NULL numeric(19) 2280667028594438958 Table Name ih_delete
Class Name VFUK-FW-AOMFW-Data-IHDeleteStaging
Column Name Property Name Constraints Type Example Description
case_id CaseId NOT NULL varchar(255) T-24003 Case-Id
fact_id FactId NOT NULL numeric(19) 2280667028594438958
process_timestamp ProcessTimestamp NOT NULL datetime   Table Name ih_delete_staging
Class Name VFUK-FW-AOMFW-Data-IHDeleteStagingExtract
Column Name Property Name Constraints Type Example Description
segmentkey SegmentKey NOT NULL numeric(10) 1
xtid ExtractId NOT NULL varchar(255) 3626e6a8-afbf-4cdb-
a00e-7aa1a267e516
datacontent DataContent NOT NULL text 5726e6a8-afbf-4cdb-
a00e-7aa1a267e516|T-
345|20220323040211factId|caseId|proces
sTimeStampTable Name ih_delete_staging_xt
Class Name VFUK-FW-AOMFW-Data-DeletedIHFact
Column Name Property Name Constraints Type Example Description
pxfactid FactId NOT NULL numeric(19) 7980934178823861164FactIDTable Name deleted_ih_fact


3269

SQL Connectordeleted_processtimesta
mpDeletedProcessTim
estampNOT NULL datetime
Class Name VFUK-FW-AOMFW-Data-DeletedIHFactReporting
Column Name Property Name Constraints Type Example Description
ihrid IHRId NOT NULL varchar(255) b039bb1e-9c7c-4c7c-
bc44-e1479f1c9cf4IHRId
deleted_processtimesta
mpDeletedProcessTim
estampNOT NULL datetime   Table Name deleted_ih_fact_reporting
Class Name VFUK-FW-AOMFW-Data-DeletedIHRecommendationItems
Column Name Property Name Constraints Type Example Description
recitemid RecItemId NOT NULL varchar(255) abfa06dc-64c2-4dc2-
98bf-b1906a01eb74RecItemID
deleted_processtimesta
mpDeletedProcessTim
estampNOT NULL datetime   Table Name deleted_ih_recommendation_items
Delete all expired Deleted IH Facts data from deleted_ih_fact table
Applies To VFUK-FW-AOMFW-Data-DeletedIHFact
Ruleset AOMFW
Command select purge_data('deleted_ih_fact', 'deleted_processtimestamp',{.RetentionPeriod}::integer)Connect SQL Name: PurgeData
Delete all expired Deleted IH Reporting data from deleted_ih_fact_reporting table
Applies To VFUK-FW-AOMFW-Data-DeletedIHFactReporting
Ruleset AOMFW
Command select purge_data('deleted_ih_fact_reporting', 'deleted_processtimestamp',{.RetentionPeriod}::integer)Connect SQL Name: PurgeData
Delete all expired Deleted IH Recommendation data from deleted_ih_recommendation_items table
Applies To VFUK-FW-AOMFW-Data-DeletedIHRecommendationItemsConnect SQL Name: PurgeData


3270

AOM ConfigRuleset AOMFW
Command select purge_data('deleted_ih_recommendation_items', 'deleted_processtimestamp',
{.RetentionPeriod}::integer)
HousekeepingSQL DeletedIHFact VFUK-FW-AOMFW-Data-DeletedIHFact
HousekeepingSQL DeletedIHFactReporting VFUK-FW-AOMFW-Data-
DeletedIHFactReporting
HousekeepingSQL DeletedIHRecommendationItems VFUK-FW-AOMFW-Data-
DeletedIHRecommendationItems
HousekeepingRetentionPeriod DeletedIHFact 30
HousekeepingRetentionPeriod DeletedIHFactReporting 30
HousekeepingRetentionPeriod DeletedIHRecommendationItems 30Config Type Config Name Config Value


3271
Back out User Interface
Navigation
Section

 Contains the menu item Processes and sub-item Delete IH which invokes the section DeleteIH
Applies ToData-Portal-AOMManagement
Ruleset AOMFW-UINavigation Name: Processes
Takes a CSV/txt file as input containing a list of fact ids which identify records to be deleted from IH
Applies ToData-Portal-AOMManagement
Ruleset AOMFW-UISection Name: DeleteIH
Contains file upload, file name, submit button and submit message
Applies ToVFUK-FW-AOMFW-UI-DeleteIH
Ruleset AOMFW-UISection Name: DeleteIH
pxFileUpload One FactId per line
FactId’s are of type Double
Maximum 100k records
Filetype .csv or .txtAllows uploading a file which contains a list of FactId’s that are records
to be deleted from IH. Calls the UploadFactIds activity which decodes
and appends from pyAttachStream to FactIdsControl Type Input Requirements Description


3272
Back out IH Rules & Activities
Portal Changes
VFUK-FW -AOMFW -UI-DeleteIH
Activity Name: UploadFactIds
Activity Name: SubmitDeleteIH
Function: void PopulateFactIds(ClipboardProperty uploadedFile, ClipboardProperty factIds)
When Name: CanDeleteIH
Data Transform Name: InitialiseDeleteIH
Extractor Case
Activity Name:HasIHDExtractData
Activity Name: PrepareIHDExtractData
Update - Activity Name: GenerateExtract
Activity Name: GenerateIHDExtract
Portal Changes
VFUK-FW-AOMFW-UI-DeleteIH
FactIds Value List
(Double)2280667028594438958
7899614598866588871List of FactId’s
IsDeleteIHSubmitted Boolean true/false Allows the upload controls to be visible and the
submission message to be invisible when true and vice
versaProperty Name Property
TypeExample Value Description
Reads the uploaded file and populates FactIds from each line in the file.
Applies To VFUK-FW-AOMFW-UI-DeleteIH
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: UploadFactIds
Calls the Tasker case ignitor with the operator’s Id, FileName and FactIds, and displays the submission message.Activity Name: SubmitDeleteIH


3273
Extractor CaseApplies To VFUK-FW-AOMFW-UI-DeleteIH
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activity
The function takes an uploaded csv/txt file and populates the specified value list FactIds with Double records from each line in the file.
Accepts a maximum of 100,000 records.
Paramet
ersuploadedFile Data-WorkAttach-File attachment property
factIds Value list to be populated
Returns-
ThrowsRuntimeExceptionError in PopulateFactIds validating the fileFunction: void PopulateFactIds(ClipboardProperty uploadedFile, ClipboardProperty factIds)
Returns true when the file name is populated and error message is empty.
Applies
ToVFUK-FW-AOMFW-UI-DeleteIH
RulesetAOMFW-UIWhen Name: CanDeleteIH
Resets IsDeleteIHSubmitted so the upload controls are visible and the submission message is invisible.
Applies To Data-Portal-AOMManagement
Ruleset AOMFW-UI
Input
ParametersNA
Output
ParametersNAData Transform Name: InitialiseDeleteIH
This activity will check if ih_delete_staging_xt table has data to extract and updates HasIHDData(TrueFalse) property accordingly
Applies To VFUK-FW-AOMFW-Work-ExtractorActivity Name:HasIHDExtractData


3274

 Ruleset AOMFW
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activity
This activity will prepare data for IH Delete(Back out IH) extract by calling prepare_extract_data() DB function whihc will prepare data in
ih_delete_staging_xt table.
Applies To VFUK-FW-AOMFW-Work-Extractor
Ruleset AOMFW
Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityActivity Name: PrepareIHDExtractData
This activity will now handle IHD extract and call GeneretaIHDExtract if the extractType is “IHD”.
Applies To VFUK-FW-AOMFW-Work-Extractor.
Ruleset AOMFW
Input
ParametersExtractType
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activityUpdate - Activity Name: GenerateExtract
This Activity will follow the same design pattern as GenerateIHExtract Activity by setting ConfigName and Prefix specific to ih_delete
Fetch records from ih_delete_staging_xt  for each given segment and will be  pushed into the outputfile which is generated at the
specified location
Applies To VFUK-FW-AOMFW-Work-Extractor
Ruleset AOMFWActivity Name: GenerateIHDExtract


3275

 Input
ParametersNA
Output
ParametersNA
Error
HandlingPrimary Catch-all Error Handler: Catches all the unhandled Exceptions or Errors in the activity
Get one record from ih_delete_staging_xt table
Applies To VFUK-FW-AOMFW-Data-IHDeleteStagingExtract
Ruleset AOMFW-Database
Method Open
SQL  Connect SQL - HasIHDData
Prepares data for IHDelete (Back out) extraction using prepare_extract_data DB function
Applies To VFUK-FW-AOMFW-Data-IHDeleteStagingExtract
Ruleset AOMFW-Database
Method Open
SQL  Connect SQL - Prepare


3276
Back out IH Case Changes


3277
Tasker
Tasker
CaseIgnitor Activity
ProcessDeleteIH Flow
When Rule - IsDeleteIHRunnable
Activity - ProcessDeleteIH Activity
DeleteIH Connect-SQL  Rule
AOMConfig
Properties
Tasker
CaseIgnitor Activity
Add default value of 'DeleteIH' to CaseSubType param to highlight new type of case sub type that can be ran
Add the following new params to be used as part of this new case sub type:
OperatorId
FileName
The FactIds value list will be set by the activity Data-Portal-AOMManagement.Submit in the Tasker step page, which is used as the
Primary page when calling this activity
ProcessDeleteIH Flow
Create a new flow that is only ran when the case sub type is DeleteIH which calls the ProcessDeleteIH activity
In the event of any errors within the activity, go to a Notify Support flow before going back to the activity
Otherwise, end the flow and move on to the End stage
Check when the DeleteIH flows are able to be ran by the case
Applies To VFUK-FW-AOMFW-Work-Tasker
Ruleset AOMFW
Activity Logic Check whether the case sub type is DeleteIH and only runs the flows that are part of the DeleteIH case sub
type when trueWhen Rule - IsDeleteIHRunnable
Remove all fact ids from the interaction history
Applies To VFUK-FW-AOMFW-Work-Tasker
Ruleset AOMFW
Input Parameter NA
Output Parameter NA
PagesandClasses WorkVFUKFWAOMFWWorkTaskerActivity - ProcessDeleteIH Activity


3278
DeleteIH Connect-SQL Rule
A Connect-SQL rule that runs the delete_ih SQL function in the aom DB schema using given case id, operator id, file name values from
the primary work page to delete all records in the ih_deletion table from the interaction history
AOMConfig
Add the following record to set BatchNBA as a case dependency for DeleteIH (as well as DeleteIH itself):
Properties
Add the following properties to the VFUK-FW-AOMFW-Work-Tasker class:Pages and Classes Work - VFUK-FW-AOMFW-Work-TaskerIHDeletion - VFUK-FW-AOMFW-Data-IHDeletion
Error Handling Primary Catch-all Error Handler
Logs to Error Log
Activity Logic Loop through the FactIds value list and add each fact id to the ih_deletion table, along with the current case
id
Once the loop is complete, call the connect SQL rule DeleteIH
CaseDependencies DeleteIHTasker DeleteIHTasker,BatchNBAConfigType ConfigName ConfigValue
OperatorId Text Operator id of user who uploaded the file
FileName Text File Name
FactIds Value List (Double) Comma-separated fact idsProperty Name Property Type Description


3279
Extractor
PrepareIHExtract
InitiateRIExtraction
InitiateIHDExtraction
Output File Parameters
AOMConfig
PrepareIHExtract
The flow now handles the IH Deletion and please check the details in Extractor Case Design | PrepareIHExtract
InitiateRIExtraction
This flow now no longer checks for IH data as this functionality will be covered by the new InitiateIHDExtraction flow, please check the
details in Extractor Case Design | InitiateRIExtraction
InitiateIHDExtraction
This is the new flow to initiate the IH Delete process, please check the details in Extractor Case Design | InitiateIHDExtraction
Output File Parameters

AOMConfigPath
Prefix aom_deleted_ih
Extension .dsv
Encrypt true
Zip true
Header factid|caseid|processtimestampP a r a m e t e r V a l u e
ExtractorGPGRecipient IHD AOMDomain@internal.vodafone.com
ExtractorTable IHD ih_delete_staging_xt
ExtractorDestinationPath IHD <<GET_PATH_FROM_RUSS_OR_DEBARS
HI>>
ProcessFlowToggle InitiateIHDExtraction FALSEC o n f i g T y p e C o n f i g N a m e C o n f i g V a l u e


3281
Backout Data Design
See ADO - https://vfuk-digital.visualstudio.com/AOM/_workitems/edit/804584
F u n c t i o n :
delete_ih(case_id in text, operatorid in text, filename in text);
Note: The function logs to admin_audit_log table.
select * from admin_audit_log where process_name = ‘delete_ih’ order by log_ts desc;

S p e c i f i c a t i o n :
1. Based on input case_id, for fact ids in ih_delete table
a. Backup the records into below respective tables for each matching fact Id
i. aom/apps.deleted_ih_fact
ii. aom/apps.deteled_ih_recommendation_items
iii. aom/apps.deleted_ih_fact_reporting
b.  Delete the records from below tables for each matching factId
i. dataschema.pr_data_ih_fact_reporting
ii. dataschema.pr_data_ih_recommendation_items
iii. dataschema.pr_data_ih_fact
2. Add fact id to the ih_delete_staging table (table used as source for the AOM Deleted IH extract) with
a. case id - case id from ih_delete table
b. fact id - fact id that is deleted or couldn’t find in Prod IH table
c. process timestamp - current time (the procedure is called)
3. Clear records from ih_delete table based on case_id


3282
Making a Delete IH request
To make a Delete IH request:
1. Launch portal
2. Open the AOMManagement portal
1. Click Processes
2. Open the Delete IH section
Click Browse


3283
Find and upload a file containing the fact ids that you want to delete. This file must be of the following format:
One fact id per line
Fact ids are of type Double
Maximum of 100,000 records
File type of .csv or .txt
1. Check that the File Name has shown up correctly and there is no error (this may take a few seconds for large files)
2. Click Submit to complete the request


3284
Assisted 2nd Line Acquisition
GetProductListv2 API changes (855211)
Add InteractionId and SubscriptionId to both request and response in AOM
Update the activity to Map InteractionId and SubscriptionId property in AOM Service Activity
Check the below spec for reference
https://docs.google.com/spreadsheets/d/1HD8i6KxTrtAGrrwG7bBiLVIh8Ej291HV/edit#gid=69988119 -
Introduce Execution Mode for GPL(960691)
Set Execution Mode to GPL in GetProductListV2 activity before calling dataflow
Context("Execution Mode") = "GPL" in subscription page
Check if Account exists in AOM and create SetupSubscription activity (855718, 855551, 855735)
Update GetProductListV2 activity
Call SetupSubscription activity before calling GetProductList DF
Copy resulting Subscription page into Customer page before clearing the Subscription page
Update GetNextBestActionsV2 activity
Loop through the Detail name-value pair in the request to find the detail with the name "InterestedService" and set the value
Call SetupSubscription activity (in place of SetupSubscriptionForNBA activity) before calling GetNBA DF
Call existing GetNextBestActionsSubscriptionSetup data transform
SetupSubscription Activity
Create new SetupSubscription activity (For reference, check SetupSubscriptionForNBA activity)
Check if ServiceNumber param is populated
If populated
Prepare Subscription page by using existing GetSubscription activity from ServiceNumber param
If not populated
Browse Account table with OwnerAccountNumber
If found
Get OldestActiveSubscriptionId from Account
Prepare Subscription page by using existing GetSubscription activity from OldestActiveSubscriptionId.
Go to Fin
If not found
Browse Prospect table with OwnerAccountNumber
If found
Convert Prospect to Subscription page
Go to Fin
If not found
Create a new Prospect record


If found
Convert Prospect to Subscription page
Go to Fin
If not found
Create a new Prospect record
Connect your Google account


3285
Convert Prospect to Subscription page
Go to Fin
Amend VFT Framework to Support Account Context (913854)
D_CalculatedOffersForAcquisition Data page
Create new datapage D_CalculatedOffersForAcquisition with following parameters (For reference, check D_CalculatedOffersForUpgrade)
AccountNumber
TariffId
Channel
Department
GetCalculatedOffersForAcquisition activity
Create new wrapper activity call it as GetCalculatedOffersForAcquisition
Input validation
Invoke GetCalculatedOffersForAccount with below parameter values
MSISDN =”NA”
AccountNumber=Param.AccountNumber
TariffId= Param.TariffId
Channel= Param.Channel
Department= Param.Department
OrderType=”Acquisition”
Plugin the new activity GetCalculatedOffersForAcquisition in new D_CalculatedOffersForAcquisition data page
Update GetProcessedServiceListWrapper activity
If Param.OrderType=”Acquisition”, Jump step 4 to Fin
Update GetCombiOffersForCPHTariffs activity
If Param.OrderType=”Acquisition”, Jump step 4 to 7
Update GetCalculatedOffersForAccount activity
In 9th loop, 2nd step
If Param.OrderType=”Acquisition” set AssetIntegrationId as “NewLine“
If Param.OrderType=”Upgrade” set AssetIntegrationId as “UpgradingLine“
GetCalculatedOffersForUpgrade activity
Create new wrapper activity call it as GetCalculatedOffersForUpgrade
Input validation
Invoke GetCalculatedOffersForAccount activity with below parameter values
MSISDN = Param.MSISDN
AccountNumber=Param.AccountNumber
TariffId= Param.TariffId


3286
Channel= Param.Channel
Department= Param.Department
OrderType=”Upgrade”
Plugin the new activity GetCalculatedOffersForUpgrade in existing D_CalculatedOffersForUpgrade data page
Add canqualifyvftogether to pc_eligible_tariffs_handset_v view
Update pc_eligible_tariffs_handset_v definition
Add below case condition as its done in pc_eligible_tariffs_dept_v
CASE
        WHEN (ptv2.tariffproductfulfilmentcode::text IN ( SELECT obqv.lineid
                 FROM aom.oc_bundle_qualifier_v obqv)) THEN true
        ELSE false
END AS canqualifyvftogether
Add new property to class VFUK-FW-AOMFW-Data-EligibleTariffForHandset
Property Name : CanQualifyVFTogether
Type : TrueFalse
Update the AOM Config to include new property
Build Instructions
Truncate TariffsForHandsetOCT Dataset in Target environments
Review and handover the pc_eligible_tariffs_handset_v view script to ShrinPropertyNames D_EligibleTariffsForHandset tariffproductfulfilmentcode as
".ProductFulfilmentCode",name as
".Name",duration as ".Duration",cost_inc_vat
as ".CostIncludingVAT",minutes as
".Minutes",data as ".Data",vat_code as
".VATCode",simonly as
".SIMOnly",contract_tariff_refresh_ind as
".ContractTariffRefreshIndicator",mobile_bro
adband_ind as
".MobileBroadbandIndicator",segment_of_tar
iff as ".SegmentOfTariff",band_value as
".BandValue",device_group as
".DeviceGroup",benefit_advt as
".BenefitAdvertisement",benefit_product as


".DeviceGroup",benefit_advt as
".BenefitAdvertisement",benefit_product as
".BenefitProduct",benefit_ref as
".BenefitReference",package_band as
".PackageBand",package_type as
".PackageType",promotion_start_dt as
".PromotionStartDate",promotion_end_dt as
".PromotionEndDate",category as
".Category",canqualifyvftogether as
".CanQualifyVFTogether"ConfigType ConfigName ConfigValue


3287
A2L - Missing Attributes
Adding Missing Qualifier Criteria to GPLV2 Response (1336457):
 GetProductListV2 Updates:
Update the response mapping in GetProductListV2 for 'ResponseType = Qualifier' condition
Map SubscriptionType response property from SR.SubscriptionType SR property
Map ServiceNumber property from SR.ServiceNumber SR property
Map SubscriptionStatus property from SR.SubscriptionStatus SR property
D_CalculatedOffersForAcquisition Updates
Update GetCombiOffersForCPHTariffs Activity (Step 7.5.2)
Set SubscriptionType equal to GPSLRootProduct.FullfilmentItemCode
Set SubscriptionStatus equal to GPSLRootProduct.Status
Update GetCalculatedOffersForAccount Activity (Step 9.5)
Set SubscriptionType equal to Request.SubscriptionType
Set SubscriptionStatus equal to "New"
Set ServiceNumber equal to "NA"
Update ProcessedCombiOffer page with SubscriptionStatus and SubscriptionType
Adding Entertainment Flag to EligibleTariffsForHandset Data Page (1336469):
Add entertainmentflag to pc_eligible_tariffs_handset_v view
    Update pc_eligible_tariffs_handset_v definition
    Add below case condition as its done in pc_eligible_tariffs_dept_v
    CASE WHEN (ptv2.identifier::text IN ( SELECT pstcv.tariffs_identifier
             FROM pc_service_tariff_comp_v pstcv
                 JOIN product_attributes pa2 ON pstcv.acc_services_identifier::text = pa2.identifier::text AND (pa2.attributes::json ->>
'DefaultEntertainmentProduct'::text) = 'true'::text)) THEN true
            ELSE false
        END AS entertainmentflag
Add EntertainmentFlag TrueFalse property in EligibleTariffsForHandset's class


END AS entertainmentflag
Add EntertainmentFlag TrueFalse property in EligibleTariffsForHandset's class
Add external mapping in the EligibleTariffsForHandset's class linking the newly created EntertainmentFlag Pega property to the newly
created entertainmentflag DB property
Update the AOM Config to include new property
Adding SMS/Voice Plans to GPLV2 Response(1336318):
Add SMS & Minutes attributes in GetProductListV2's Response LineItem class and Map them with SR.Texts & SR.Minutes SR property
when 'ResponseType = Item' condition.
Update the PropertiesNames for D_EligibleTariffs and D_EligibleTariffsForHandset in AOM Config to use SMS.
Update the AOM Config to include new property(1336318)
ConfigType ConfigName ConfigValue


3288
PropertyNames D_EligibleTariffs tariffproductfulfilmentcode as
".ProductFulfilmentCode",name as
".Name",duration as ".Duration",cost_inc_vat
as ".CostIncludingVAT",minutes as
".Minutes",data as ".Data",vat_code as
".VATCode",simonly as
".SIMOnly",contract_tariff_refresh_ind as
".ContractTariffRefreshIndicator",mobile_broa
dband_ind as
".MobileBroadbandIndicator",segment_of_tar
iff as ".SegmentOfTariff",band_value as
".BandValue",device_group as
".DeviceGroup",benefit_advt as
".BenefitAdvertisement",benefit_product as
".BenefitProduct",benefit_ref as
".BenefitReference",package_band as
".PackageBand",package_type as
".PackageType",promotion_start_dt as
".PromotionStartDate",promotion_end_dt as
".PromotionEndDate",CanQualifyVFTogether
as ".CanQualifyVFTogether",category as
".Category",entertainmentflag as
".EntertainmentFlag",start_date as
".StartDate",proposition as
".Proposition",sms as ".SMS"
PropertyNames D_EligibleTariffsForHandset tariffproductfulfilmentcode as
".ProductFulfilmentCode",name as
".Name",duration as ".Duration",cost_inc_vat
as ".CostIncludingVAT",minutes as
".Minutes",data as ".Data",vat_code as
".VATCode",simonly as
".SIMOnly",contract_tariff_refresh_ind as
".ContractTariffRefreshIndicator",mobile_broa
dband_ind as
".MobileBroadbandIndicator",segment_of_tar


dband_ind as
".MobileBroadbandIndicator",segment_of_tar
iff as ".SegmentOfTariff",band_value as
".BandValue",device_group as
".DeviceGroup",benefit_advt as
".BenefitAdvertisement",benefit_product as
".BenefitProduct",benefit_ref as
".BenefitReference",package_band as
".PackageBand",package_type as
".PackageType",promotion_start_dt as
".PromotionStartDate",promotion_end_dt as
".PromotionEndDate",category as
".Category",canqualifyvftogether as
".CanQualifyVFTogether",sku as
".SKU",handsets_cost as
".HandsetsCost",proposition as
".Proposition",entertainmentflag as
".EntertainmentFlag",sms as ".SMS"


3289

Adding Rewards Data Attributes to GPLV2 Response(1336496):
Add Type, SubType & Amount attributes in GetProductListV2's Response Rewards class and Map then with SR.RewardType,
SR.RewardSubType & SR.RewardsValue SR property when 'ResponseType = Reward' condition.
Add SR.RewardType, SR.RewardSubType & SR.RewardsValue properties to the GetProductListResponseValidation data transform
for 'ResponseType = Reward' condition.


3290
933266: Refresh GetCustomer info every time VADR is launched
Update all TIL API’s invocations from GetCustomer to invoke the API and avoid using cache

GetCustomerPartyList (GCPL) activity
Add new parameter, UseCache (Boolean)
Set to false, from GetCustomer activity from where this activity is invoked
Set to true, from GetLiveAccountInformation activity from where this activity is invoked
If UseCache is false, then
Skip Dataset-Execute(Step 7) and Preparing response(Step 8)
Jump to API invocation SOL(Step 9)
Otherwise continue from Step 7

PrepareCREDataforSubscriptionList (CRE) activity
Add new parameter, UseCache (Boolean)
Set to false, from GetCustomer activity from where this activity is invoked
If UseCache is false, then
Skip Dataset-Execute(Step 4) and Preparing response(Step 5)
Jump to API invocation URC(Step 6)
Otherwise continue from Step 4

GetProcessedServiceList (GPSL) activity
Add new parameter, UseCache (Boolean)
Call GetProcessedServiceList activity instead of GetServiceList activity from GetCustomer activity and set UseCache to false
Copy required steps from GetServiceList activity to GetCustomer activity while calling GetProcessedServiceList activity directly.
Set to true, from GetServiceList activity from where this activity is invoked
Set to true, from GetProcessedServiceListWrapper activity from where this activity is invoked
If UseCache is false, then
Skip Dataset-Execute(Step 5) and Preparing response(Step 6)
Jump to API invocation(Step 7)
Otherwise continue from Step 5
Add Context to GetCustomerV2 API (Not in scope of R3.6)
Create GetCustomerV2 API and activity for the below changes


Create GetCustomerV2 API and activity for the below changes
Add new request parameter to API Spec
Context (LOV : Account/Subscription)
Add new Property to GetCustomer Request  in AOM and VADR
Context (LOV : Account/Subscription)
GetCustomerV2 Activity
Add validation for Context Property
Set Local Variable UseCache = true, if Context=Account


3291
Set Local Variable UseCache = false, if Context=Subscription
Pass the value to API activities.
PrepareCustomerAPIResponse activity changes(need to update?)