[go: up one dir, main page]

0% found this document useful (0 votes)
325 views16 pages

Account Creation Sample

The document describes the proposed solution for integrating an external BSS middleware with the BRM system. It involves a BRM broker that acts as an intermediary between the middleware and BRM. The broker includes a mediator engine that consumes messages from a RabbitMQ queue and a BRM adapter that redirects requests to the appropriate BRM components. For customer account creation, the solution validates the JSON request and creates corresponding CA, BA, and SA accounts in BRM within a transaction, returning a response upon completion. If any account creation fails, the transaction is aborted and an error is returned.

Uploaded by

softpools
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
325 views16 pages

Account Creation Sample

The document describes the proposed solution for integrating an external BSS middleware with the BRM system. It involves a BRM broker that acts as an intermediary between the middleware and BRM. The broker includes a mediator engine that consumes messages from a RabbitMQ queue and a BRM adapter that redirects requests to the appropriate BRM components. For customer account creation, the solution validates the JSON request and creates corresponding CA, BA, and SA accounts in BRM within a transaction, returning a response upon completion. If any account creation fails, the transaction is aborted and an error is returned.

Uploaded by

softpools
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

2.

BRM BROKER ARCHITECTURE

2.1 Description
The Solution should provide a Middleware Integration which receives request from external systems and
interact with BRM system to perform the required operation and provide response back to the external
systems.

2.2 Assumptions
BSS Middleware should provide the queue names along with IP and credentials of RabbitMQ for BRM
Broker to consume messages.

2.3 Proposed Solution


The Low Layers of proposed solution consists of two packages Mediator Engine, BRM Broker. Mediator
engine works as an interface between RabbitMQ and BRM Broker, which will consume request JSON
from RabbitMQ and produces response JSON to it. BRM broker with the help of API Adapter redirects
the request payload to appropriate FList components to convert request JSON to required BRM Flist,
BRM Broker intern’s acts as an interface to BRM to perform various operations request by BSS
Middleware
3. INTEGRATION API

3.1 Description
Solution must provide a real time interface to allow external applications to perform queries relating to
balances, expiry date etc.

3.2 Assumptions
BSS MW should send appropriate input JSON to RabbitMQ Request queue with all the mandatory
attributes require to complete operation in BRM. The POST and GET input JSON format should have the
following format.

GET call Input JSON Format


{
"header": {
"operation": "getBusinessHierarchy", // operation to be performed in BRM.
"SrDate": "2018-01-31T12:02:29Z",
"correlationId": "fe28fd73-d0ae-4bf1-ae82-7160a25bf22"
},
"message": {
"arguments": {
// parameters require for the get call.
}
}
}

POST call Input JSON Format


{
"header": {
"operation": "customerAccountCreation", // operation to be performed in BRM.
"srDate": "2018-01-31T12:02:29Z",
"correlationId": "fe28fd73-d0ae-4bf1-ae82-7160a25bf22"
},
"message": {
"arguments": {
// nested JSON containing require information to carry out the POST operation.
}
}
}
3.3 Proposed Solution
The proposed solution contains the following workflow which is common to all of the integration API.
1. In the First step the stand-alone listener of BRM Broker will consume the request sent by BSS
MW. After receiving the request JSON it will check the header part of it for the requested
operation. If appropriate service for the operation found in BRM then it will convert the JSON to
corresponding POJO and send it to the service class.
2. Service class after receiving the request POJO will validate it to verify whether the mandatory
attributes and their data format correct or not.
3. If the primary validations complete successfully then the service will verify the information
provided in JSON is valid to BRM or not, if the information provided in BRM is sufficient to carry
out the operation then the service will establish a connection with BRM and open a global
transaction for the operation.
4. During the process of validating and processing the BRM request the service class will use
various utilities which will return a success or failure information of the operation.
5. Finally the service layer after receiving the response of various utility classes will verify whether
the operation completed successfully in BRM or not. If operation fails at any step of the process
then the service class will gather errorCode and message information from the utilities and
forward a failure response to BSS MW, in case of success the service class will send a success
response to BSS MW with ResponseQueue of RabbitMQ.
6. Once the operation completed successfully then the service class will commit the transaction
and close the BRM connection, similarly in the case of any failure the service class will abort the
transaction.
7. If the input from upstream was proper but it was unable to process in BRM due to some internal
error, connectivity issues, then the service will send the failure response to BRM Failure Queue
with the payload for reprocessing by operational / support team.
8. Once the operation was successfully completes then the operation team will trigger the payload
again which will be processed by BRM Broker and success response will go to the BSS MW.

3.3.1 Customer Creation

Description:
The Customer Account Creation at BRM will form a Three Level Hierarchy called CA, BA and SA with the
customer information received from BSS MW like customer Personal Information, Billing Information, and
Order Information and so on. Once account got created in BRM, BRM broker will provide a response back
to BSS MW regarding the account details, billing and subscription information.

Assumptions:
Proposed Solution:
Customer account creation service will be triggered by BSS MW with input JSON. If BRM Broker received
a valid json for customer creation then it will connect to BRM and initiated a global transaction for account
creation. BRM Broker first create customer CA account and then in the same call it create BA account and
then in the same call it will create SA account. After successful completion of three accounts BRM Broker
commits the transaction and sends a response back to BSS MW. If any of the three accounts fails then
BRM broker aborts the transaction and return back failure message to BSS MW through RabbitMQ.

Pseudo Code Commented [C1]: Please provide more details like how
the json is converted to Flist format and how the relative
1. First the stand alone listener [StandAloneListener.class] will receive the request JSON and checks the opcode is getting called in BRM. More about the BRM
operation attribute of it. If the ‘operation’ value is ‘createCustomerAccount’ then it will convert the broker customization.
JSON object into ‘CustomerAccountJSon.class’ POJO with the help of Gson library and pass it as
parameter to ‘customerAccountService.class’ for further processing in BRM.

CustomerAccountJson customerCreate = gson.fromJson(payload,CustomerAccountJson.class);


customerAccountService.createCustomerAccount(customerCreate);

2. The POJO of Customer Account creation process mainly contains the following classes which intern
are POJO.

CustomerAccountJson

Mandatory [M] Validation


Attribute Type / Optional [0]

M @Valid – validate all


attributes of the pojo

@NotNull- Marks field as


Header POJO class mandatory

@Valid – validate all


attributes of the pojo

@NotNull- Marks field as


Message POJO class M mandatory
AccountMessage

Mandatory [M] Validation


Attribute Type / Optional [0]

@Valid – validate all attributes


of the pojo
M
@NotNull- Marks field as
AccountArguments POJO class mandatory

AccountArguments

Mandatory [M] Validation


Attribute Type / Optional [0]

location String O

planName String M

@Valid
PaymentGateway POJO class M @NotNull
@Valid
OrderInformation POJO class M @NotNull

@Valid
PersonalInformation POJO class M @NotNull

@Valid
AccountData POJO class M @NotNull

3. Once the "customerAccountService” receives POJO from StandAloneListener then it will validate the
POJO along with its inner classes with the help of ValidationFactory of javax.

Set<ConstraintViolation<CustomerAccountJson>> violations = validator.validate(jsonRequest);

4. If the POJO validation successfully completed then the service class will check whether the
information provided in the JSON attribute is valid for BRM or not with various utility classes.
5. In the next step the service will connect to BRM with the help of BRM Java PCM library and its
property file infranet.properties and define a HashMap called “failureMsg” which will hold the
information regarding errorCode and errorMessage return by various utility classes to the service
class.

PortalContext portalCtx = new PortalContext();


portalCtx.connect();

Map<String, String> failureMsg = new HashMap<>();


failureMsg.put(properties.getProperty(JSON_ERROR),
properties.getProperty(JSON_ERROR) + violation.getMessage());

6. After connecting with BRM the service will call JsonRequestValidator for validating the information
of JSON, This class with the help of AccountJsonSecondaryValidator and PlanCustomizationValidator
will validate the information provided in JSON like planName, accountInformation, orderInformation,
advancePayment and so on.

7. The AccountJsonSecondaryValidator class will validate the account information with the following
utility classes. All the utility classed will create a HashMap resultMap for returning whether the
operation was success or failure which intern validate by the calling class up to the service class.
Finally the service class will verify whether the service is a failure or success and as per that it will
send response back to BSS MW.

Utility Class Parameters Opcode


PlanAvailabilityCheck planName, portalCtx PCM_OP_SEARCH
MsisdnAvailabilityCheck Msisdn, portalCtx PCM_OP_SEARCH

8. Similarly the PlanCustomizationValidator will validate the advancePayment and customer plan with
the following utility classes.

Utility Class Parameters Opcode


ComponentValidator accountJson,portalCtx PCM_OP_SEARCH
DealAvailabilityCheck dealCode, portalCtx PCM_OP_SEARCH

9. After completion of secondary validations the service will open a global transaction for customer
account creation. The class AccountAndAdvancePayProcessor will create customer CA, BA and SA
account with the help of following utility classes.

Utility Class Parameters Opcode


CustomerAccountCreator accountJson,portalCtx
CustomerPersonalAccount personalInfo, billingInfo, PCM_OP_CUST_COM
orderInfo,bdom,segment MIT_CUSTOMER
CustomerBillingAccount personalInfo, billingInfo, PCM_OP_CUST_COM
orderInfo,paymentInfo,accountPoid, MIT_CUSTOMER
bdom,segment
CustomerServiceAccount accountJson, PCM_OP_CUST_COM
customerBAAccount,portalCtx,bdom,seg MIT_CUSTOMER
ment

The CustomerPersonalAccount, CustomerBillingAccount, CustomerServiceAccount classes will

internally use NameInformation, InvoiceInformation, BalanceInformation and BillingInformation

for forming nameinfo, invoiceinfo, balance and billing Flist of BRM respectively.

10. If all the three customer accounts CA, BA and SA complete successfully with the profile objects than
the service will commit the transaction. If any of the account creation fails or any error occurred
while fetching the require information then the service will abort the transaction and send a failure
response.

Advance Payments & Plan Customization

11. Once the account creation completes successfully then the service will start a new transaction for
processing the advancePayment [If present in the JSON request] with the help of
AccountSubscritpionProcessor and AdvancePaymentCreator.

12. The AccountSubscriptionProcess will use the following utility classes for completing the deal
subscription process.

Utility Class Parameters Opcode


DealAvailabilityCheck dealCode,portalCtx PCM_OP_SEARCH
AccountServiceSearch serviceAccountPoid, portalCtx PCM_OP_SEARCH
AccountRelatedPlanSearch serviceAccountPoid, portalCtx PCM_OP_SEARCH
DealSubscribeFlist planPoid,productSparse,discountSpars SUBSCRIPTION_PURC
e,dealName,dealPoid,serviceAcctPoid, HASE_DEAL
accountServiceObj,dealService,
portalCtx
13. The AdvancePaymentCreator will use the following utility classes for completing the advance
payment process.

Utility Class Parameters Opcode


AdvancePaymentPosting advancePaymentInputs,portalCtx
AdvancePayment billingAcctNumber, PCM_OP_BILL_COLLE
amount,subscriptionItemPoid, CT
paymentType, , portalCtx
BillItemTransferFlist serviceAccountObj, paymentItemPoid, PCM_OP_BILL_ITEM_
subscriptionItemPoid, TRANSFER
subscriptionAmount, portalCtx

14. If the advance payment operation along with subscription process successfully completes in BRM
then the service will commit the transaction otherwise it will abort the transaction. After successful
completion of advancePayment the AdvancePaymentResponseCreator is used to create the
advance payment related data of the response JSON.

15. If the request JSON contains “customerPlan” with addOns and components then the service will
open a new transaction for customer plan purchase and with the help of
PlanCustomizationProcessor and DataSmsVoiceProcessor will subscribe the deal provided and
prepare the appropriate information for the response.

16. In the final step the service class after calling appropriate utilities and receives response from them
will check any of the process fails with the help of failureMsg HashMap. If the HashMap is empty
which means all the internal processed completes successfully then the service will send a success
response to BSS MW. In case the failureMsg Hash Map is not empty then the service class will
retrieve the errorCode and message from the map and sends a failure response to BSS MW.

Error Codes and Error Messages

Error Code Error Messages

-6010001 MSISDN already assigned to another account.

-6010002 MSISDN not available in BRM database.

-6010003 Customer with same ic, icType already exists.

-6010004 Invalid input given for Product / Amount in Advanced Payments.


-6010005 Invalid value provided for 'quantity / step' in Addon.

-6010006 Error occurred while checking MSISDN existence in BRM.

-6010007 MSISDN not in valid state to create account

-6010010 Error occurred while creation customer account in BRM.

Error occurred while validating account JSON attribute


-6010011 information.

Unable to perform deal purchase for given deals in the account


-6010012 creation.

-6010013 Unable to create advance payment.

-6010014 Unable to subscribe components of customer plan.

Input & Output Flist Commented [C2]: Only Input Flist is provided.
MSISDN Search flist is missing.
Plan Search Flist. Please provide more details like how the json is
converted to Flist format and how the relative opcode is
getting called in BRM. More about the BRM broker
0 PIN_FLD_RESULTS ARRAY [1] allocated 1, used 1 customization.
1 PIN_FLD_POID POID [0] 0.0.0.1 /plan -1 0
0 PIN_FLD_POID POID [0] 0.0.0.1 /search -1 0
0 PIN_FLD_ARGS ARRAY [1] allocated 1, used 1
1 PIN_FLD_NAME STR [0] "CirclesOne"
0 PIN_FLD_TEMPLATE STR [0] "select X from /plan where F1 = V1 "
0 PIN_FLD_FLAGS INT [0] 256

Input Flist for CA creation.

0 PIN_FLD_POID POID [0] 0.0.0.1 /plan -1 0


0 PIN_FLD_MOD_T TSTAMP [0] (1486910918) Sun Feb 12 20:18:38 2017
0 PIN_FLD_CREATED_T TSTAMP [0] (1486910913) Sun Feb 12 20:18:33 2017
0 PIN_FLD_NAMEINFO ARRAY [1] allocated 20, used 11
1 PIN_FLD_LAST_NAME STR [0] "parent_aacnt1"
1 PIN_FLD_MIDDLE_NAME STR [0] "parent_aacnt1"
1 PIN_FLD_FIRST_NAME STR [0] "parent_aacnt1"
1 PIN_FLD_SALUTATION STR [0] "Mr."
1 PIN_FLD_CONTACT_TYPE STR [0] "Account holder"
1 PIN_FLD_EMAIL_ADDR STR [0] "parent_aacnt1"
1 PIN_FLD_COUNTRY STR [0] "IN"
1 PIN_FLD_ZIP STR [0] "parent_aacnt1"
1 PIN_FLD_STATE STR [0] "parent_aacnt1"
1 PIN_FLD_CITY STR [0] "parent_aacnt1"
1 PIN_FLD_ADDRESS STR [0] "parent_aacnt1"
0 PIN_FLD_DEAL_OBJ POID [0] 0.0.0.0 / 0 0
0 PIN_FLD_ACCTINFO ARRAY [0] allocated 20, used 4
1 PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_CURRENCY INT [0] 978
1 PIN_FLD_BUSINESS_TYPE ENUM [0] 1
0 PIN_FLD_FLAGS INT [0] 0
0 PIN_FLD_PAYINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /payinfo/dd -1 0
1 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
2 PIN_FLD_DD_INFO ARRAY [0] allocated 20, used 10
3 PIN_FLD_TYPE ENUM [0] 1
3 PIN_FLD_BANK_NO STR [0] "XXXX"
3 PIN_FLD_NAME STR [0] "test_accnt_dd test_accnt_dd test_accnt_dd"
3 PIN_FLD_DEBIT_NUM STR [0] "XXXX"
3 PIN_FLD_COUNTRY STR [0] "in"
3 PIN_FLD_ZIP STR [0] "test_accnt_dd"
3 PIN_FLD_STATE STR [0] "test_accnt_dd"
3 PIN_FLD_CITY STR [0] "test_accnt_dd"
3 PIN_FLD_ADDRESS STR [0] "test_accnt_dd"
1 PIN_FLD_FLAGS INT [0] 1
1 PIN_FLD_PAY_TYPE ENUM [0] 10005
0 PIN_FLD_BAL_INFO ARRAY [0] allocated 20, used 4
1 PIN_FLD_NAME STR [0] "Balance Group<Account>"
1 PIN_FLD_POID POID [0] 0.0.0.1 /balance_group -1 0
1 PIN_FLD_BILLINFO ARRAY [0] NULL array ptr
0 PIN_FLD_BILLINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /billinfo -1 0
1 PIN_FLD_BILLINFO_ID STR [0] "Bill Unit(1)"
1 PIN_FLD_PAYINFO ARRAY [0] NULL array ptr
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_PAY_TYPE ENUM [0] 10005
0 PIN_FLD_LOCALES ARRAY [1] allocated 20, used 1
1 PIN_FLD_LOCALE STR [0] "en_US"

Input Flist for BA creation.

0 PIN_FLD_POID POID [0] 0.0.0.1 /plan -1 0


0 PIN_FLD_MOD_T TSTAMP [0] (1486910918) Sun Feb 12 20:18:38 2017
0 PIN_FLD_CREATED_T TSTAMP [0] (1486910913) Sun Feb 12 20:18:33 2017
0 PIN_FLD_NAMEINFO ARRAY [1] allocated 20, used 11
1 PIN_FLD_LAST_NAME STR [0] "child_accnt_krshn"
1 PIN_FLD_MIDDLE_NAME STR [0] "child_accnt_krshn"
1 PIN_FLD_FIRST_NAME STR [0] "child_accnt_krshn"
1 PIN_FLD_SALUTATION STR [0] "Mr"
1 PIN_FLD_CONTACT_TYPE STR [0] "Account holder"
1 PIN_FLD_EMAIL_ADDR STR [0] "child_accnt_krshn"
1 PIN_FLD_COUNTRY STR [0] "IN"
1 PIN_FLD_ZIP STR [0] "child_accnt_krshn"
1 PIN_FLD_STATE STR [0] "child_accnt_krshn"
1 PIN_FLD_CITY STR [0] "child_accnt_krshn"
1 PIN_FLD_ADDRESS STR [0] "child_accnt_krshn"
0 PIN_FLD_GROUP_INFO SUBSTRUCT [0] allocated 20, used 1
1 PIN_FLD_PARENT POID [0] 0.0.0.1 /account 3761594 7
0 PIN_FLD_DEAL_OBJ POID [0] 0.0.0.0 / 0 0
0 PIN_FLD_ACCTINFO ARRAY [0] allocated 20, used 4
1 PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_CURRENCY INT [0] 978
1 PIN_FLD_BUSINESS_TYPE ENUM [0] 1
0 PIN_FLD_PAYINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /payinfo/dd -1 0
1 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
2 PIN_FLD_DD_INFO ARRAY [0] allocated 20, used 10
3 PIN_FLD_TYPE ENUM [0] 1
3 PIN_FLD_BANK_NO STR [0] "XXXX"
3 PIN_FLD_NAME STR [0] "child_accnt_krshn child_accnt_krshn child_accnt_krshn "
3 PIN_FLD_DEBIT_NUM STR [0] "XXXX"
3 PIN_FLD_COUNTRY STR [0] "in"
3 PIN_FLD_ZIP STR [0] "child_accnt_krshn"
3 PIN_FLD_STATE STR [0] "child_accnt_krshn"
3 PIN_FLD_CITY STR [0] "child_accnt_krshn"
3 PIN_FLD_ADDRESS STR [0] "child_accnt_krshn"
1 PIN_FLD_FLAGS INT [0] 1
1 PIN_FLD_PAY_TYPE ENUM [0] 10005
0 PIN_FLD_FLAGS INT [0] 0
0 PIN_FLD_BAL_INFO ARRAY [0] allocated 20, used 4
1 PIN_FLD_NAME STR [0] "Balance Group<Account>"
1 PIN_FLD_POID POID [0] 0.0.0.1 /balance_group -1 0
1 PIN_FLD_BILLINFO ARRAY [0] NULL array ptr
0 PIN_FLD_BILLINFO ARRAY [0] allocated 20, used 7
1 PIN_FLD_POID POID [0] 0.0.0.1 /billinfo -1 0
1 PIN_FLD_BILLINFO_ID STR [0] "Bill Unit(1)"
1 PIN_FLD_PAYINFO ARRAY [0] NULL array ptr
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_PARENT_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 3763130 3
1 PIN_FLD_PAY_TYPE ENUM [0] 10005
1 PIN_FLD_AR_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 3763130 2
0 PIN_FLD_LOCALES ARRAY [1] allocated 20, used 1
1 PIN_FLD_LOCALE STR [0] "en_US"
Input Flist for SA creation.

0 PIN_FLD_POID POID [0] 0.0.0.1 /plan 3765419 0 // required.


0 PIN_FLD_SERVICES ARRAY [0] allocated 20, used 13
1 PIN_FLD_PASSWD_CLEAR STR [0] "XXXX"
1 PIN_FLD_LOGIN STR [0] "telco"
1 PIN_FLD_SUBSCRIPTION_OBJ POID [0] NULL poid pointer
1 PIN_FLD_SERVICE_ID STR [0] "/service/telco/gsm/telephony-55cb7f6f-719c-42a6-95e8-
fa1a274d0b92" // required.
1 PIN_FLD_SUBSCRIPTION_INDEX INT [0] 0
1 PIN_FLD_BAL_INFO_INDEX INT [0] 0
1 PIN_FLD_SERVICE_CODES ARRAY [0] allocated 20, used 1
2 PIN_FLD_STATE_ID INT [0] 0
1 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
2 PIN_FLD_TELCO_INFO SUBSTRUCT [0] allocated 20, used 1
3 PIN_FLD_PRIMARY_NUMBER INT [0] 0
1 PIN_FLD_DEALS ARRAY [0] allocated 20, used 14
2 PIN_FLD_CODE STR [0] "515b066c-dd3e-475e-b610-5024fcc072d8" // required.
2 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 1 0
2 PIN_FLD_DEAL_OBJ POID [0] 0.0.0.1 /deal 3764506 0 // required.
2 PIN_FLD_PERMITTED STR [0] "/service/telco/gsm/telephony" // required.
2 PIN_FLD_WRITE_ACCESS STR [0] "S"
2 PIN_FLD_READ_ACCESS STR [0] "B"
2 PIN_FLD_NAME STR [0] "test_k_telephony_deal"
2 PIN_FLD_FLAGS INT [0] 0
2 PIN_FLD_PRODUCTS ARRAY [0] allocated 23, used 23
3 PIN_FLD_PURCHASE_END_T TSTAMP [0] (0) <null>
3 PIN_FLD_PURCHASE_START_T TSTAMP [0] (0) <null>
3 PIN_FLD_USAGE_END_DETAILS INT [0] 2
3 PIN_FLD_CYCLE_END_DETAILS INT [0] 2
3 PIN_FLD_QUANTITY DECIMAL [0] 1
3 PIN_FLD_PURCHASE_END_DETAILS INT [0] 2
3 PIN_FLD_USAGE_START_DETAILS INT [0] 1
3 PIN_FLD_CYCLE_START_DETAILS INT [0] 1
3 PIN_FLD_PURCHASE_START_DETAILS INT [0] 1
3 PIN_FLD_OWN_MAX DECIMAL [0] NULL pin_decimal_t ptr
3 PIN_FLD_OWN_MIN DECIMAL [0] NULL pin_decimal_t ptr
3 PIN_FLD_NAME STR [0] "test_k_telephony_prdct"
3 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 3765274 0
3 PIN_FLD_DESCR STR [0] "test_k_telephony_prdct"
3 PIN_FLD_USAGE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_CYCLE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_PURCHASE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_STATUS ENUM [0] 1
3 PIN_FLD_STATUS_FLAGS INT [0] 0
3 PIN_FLD_USAGE_END_T TSTAMP [0] (0) <null>
3 PIN_FLD_USAGE_START_T TSTAMP [0] (0) <null>
3 PIN_FLD_CYCLE_END_T TSTAMP [0] (0) <null>
3 PIN_FLD_CYCLE_START_T TSTAMP [0] (0) <null>
2 PIN_FLD_MOD_T TSTAMP [0] (1517420871) Wed Jan 31 23:17:51 2018
2 PIN_FLD_CREATED_T TSTAMP [0] (1517420871) Wed Jan 31 23:17:51 2018
2 PIN_FLD_DESCR STR [0] "test_k_telephony_deal"
2 PIN_FLD_END_T TSTAMP [0] (0) <null>
2 PIN_FLD_START_T TSTAMP [0] (0) <null>
1 PIN_FLD_BAL_INFO ARRAY [0] allocated 0, used 0
1 PIN_FLD_DEVICES ARRAY [0] allocated 20, used 2
2 PIN_FLD_DEVICE_OBJ POID [0] 0.0.0.1 /device/num 61249 1
2 PIN_FLD_FLAGS INT [0] 1
1 PIN_FLD_DEAL_INFO SUBSTRUCT [0] allocated 20, used 7
2 PIN_FLD_PRODUCTS ARRAY [0] allocated 33, used 33
3 PIN_FLD_CYCLE_START_T TSTAMP [0] (0) <null>
3 PIN_FLD_PURCHASE_END_T TSTAMP [0] (0) <null>
3 PIN_FLD_PURCHASE_START_T TSTAMP [0] (0) <null>
3 PIN_FLD_DESCR STR [0] "test_k_telephony_prdct"
3 PIN_FLD_STATUS_FLAGS INT [0] 0
3 PIN_FLD_USAGE_END_OFFSET INT [0] 0
3 PIN_FLD_USAGE_END_UNIT INT [0] 0
3 PIN_FLD_CYCLE_END_OFFSET INT [0] 0
3 PIN_FLD_CYCLE_END_UNIT INT [0] 0
3 PIN_FLD_USAGE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_PURCHASE_END_OFFSET INT [0] 0
3 PIN_FLD_PURCHASE_END_UNIT INT [0] 0
3 PIN_FLD_USAGE_START_OFFSET INT [0] 0
3 PIN_FLD_CYCLE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_USAGE_START_UNIT INT [0] 0
3 PIN_FLD_CYCLE_START_OFFSET INT [0] 0
3 PIN_FLD_CYCLE_START_UNIT INT [0] 0
3 PIN_FLD_PURCHASE_DISCOUNT DECIMAL [0] 0
3 PIN_FLD_PURCHASE_START_OFFSET INT [0] 0
3 PIN_FLD_PURCHASE_START_UNIT INT [0] 0
3 PIN_FLD_USAGE_END_DETAILS INT [0] 2
3 PIN_FLD_CYCLE_END_DETAILS INT [0] 2
3 PIN_FLD_PURCHASE_END_DETAILS INT [0] 2
3 PIN_FLD_USAGE_START_DETAILS INT [0] 1
3 PIN_FLD_CYCLE_START_DETAILS INT [0] 1
3 PIN_FLD_PURCHASE_START_DETAILS INT [0] 1
3 PIN_FLD_PLAN_OBJ POID [0] 0.0.0.1 /plan 3765419 0
3 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 3765274 0
3 PIN_FLD_QUANTITY DECIMAL [0] 1
3 PIN_FLD_STATUS ENUM [0] 1
3 PIN_FLD_USAGE_END_T TSTAMP [0] (0) <null>
3 PIN_FLD_USAGE_START_T TSTAMP [0] (0) <null>
3 PIN_FLD_CYCLE_END_T TSTAMP [0] (0) <null>
2 PIN_FLD_NAME STR [0] "test_k_telephony_deal"
2 PIN_FLD_POID POID [0] 0.0.0.1 /deal 3764506 0
2 PIN_FLD_END_T TSTAMP [0] (0) <null>
2 PIN_FLD_FLAGS INT [0] 0
2 PIN_FLD_START_T TSTAMP [0] (0) <null>
2 PIN_FLD_DESCR STR [0] "test_k_telephony_deal"
1 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/telco/gsm/telephony -1 0
0 PIN_FLD_MOD_T TSTAMP [0] (1517460752) Thu Feb 1 10:22:32 2018
0 PIN_FLD_CREATED_T TSTAMP [0] (1517460752) Thu Feb 1 10:22:32 2018
0 PIN_FLD_CODE STR [0] "0b76e535-4ff1-4902-a7b4-6e9d0e7429b0"
0 PIN_FLD_WRITE_ACCESS STR [0] "S"
0 PIN_FLD_NAMEINFO ARRAY [1] allocated 20, used 11
1 PIN_FLD_LAST_NAME STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_MIDDLE_NAME STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_FIRST_NAME STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_SALUTATION STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_CONTACT_TYPE STR [0] "Account holder"
1 PIN_FLD_EMAIL_ADDR STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_COUNTRY STR [0] "in"
1 PIN_FLD_ZIP STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_STATE STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_CITY STR [0] "sub_chld_accnt_krishna"
1 PIN_FLD_ADDRESS STR [0] "su_chld_accnt_krishnasub_chld_accnt_krishna"
0 PIN_FLD_READ_ACCESS STR [0] "B"
0 PIN_FLD_NAME STR [0] "test_plan_telephony"
0 PIN_FLD_GROUP_INFO SUBSTRUCT [0] allocated 20, used 1
1 PIN_FLD_PARENT POID [0] 0.0.0.1 /account 3763066 8
0 PIN_FLD_DEAL_OBJ POID [0] 0.0.0.0 / 0 0
0 PIN_FLD_ACCTINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0
1 PIN_FLD_CURRENCY_SECONDARY INT [0] 40
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_CURRENCY INT [0] 978
1 PIN_FLD_BUSINESS_TYPE ENUM [0] 1
0 PIN_FLD_DESCR STR [0] "test_plan_telephony"
0 PIN_FLD_PAYINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /payinfo/dd -1 0
1 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
2 PIN_FLD_DD_INFO ARRAY [0] allocated 20, used 10
3 PIN_FLD_TYPE ENUM [0] 1
3 PIN_FLD_BANK_NO STR [0] "XXXX"
3 PIN_FLD_NAME STR [0] "sub_chld_accnt_krishna sub_chld_accnt_krishna
sub_chld_accnt_krishna"
3 PIN_FLD_DEBIT_NUM STR [0] "XXXX"
3 PIN_FLD_COUNTRY STR [0] "in"
3 PIN_FLD_ZIP STR [0] "sub_chld_accnt_krishna"
3 PIN_FLD_STATE STR [0] "sub_chld_accnt_krishna"
3 PIN_FLD_CITY STR [0] "sub_chld_accnt_krishna"
3 PIN_FLD_ADDRESS STR [0] "sub_chld_accnt_krishna"
0 PIN_FLD_FLAGS INT [0] 0
0 PIN_FLD_BAL_INFO ARRAY [0] allocated 20, used 3
1 PIN_FLD_NAME STR [0] "Balance Group<Account>"
1 PIN_FLD_POID POID [0] 0.0.0.1 /balance_group -1 0
1 PIN_FLD_BILLINFO ARRAY [0] NULL array ptr
0 PIN_FLD_BILLINFO ARRAY [0] allocated 20, used 5
1 PIN_FLD_POID POID [0] 0.0.0.1 /billinfo -1 0
1 PIN_FLD_BILLINFO_ID STR [0] "Bill Unit(1)"
1 PIN_FLD_PAYINFO ARRAY [0] NULL array ptr
1 PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1 PIN_FLD_PARENT_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 3763140 3
1 PIN_FLD_PAY_TYPE ENUM [0] 10005
1 PIN_FLD_AR_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 3763140 2
0 PIN_FLD_LOCALES ARRAY [1] allocated 20, used 1
1 PIN_FLD_LOCALE STR [0] "en_US"

Subscription input Flist

0 PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/telco/gsm/telephony 3732497 9


0 PIN_FLD_POID POID [0] 0.0.0.1 /account 3733985 0
0 PIN_FLD_PROGRAM_NAME STR [0] "testnap"
0 PIN_FLD_DEAL_INFO SUBSTRUCT [0] allocated 8, used 8
1 PIN_FLD_PRODUCTS ARRAY [0] allocated 19, used 19
2 PIN_FLD_PURCHASE_END_T TSTAMP [0] (0)
2 PIN_FLD_PURCHASE_START_T TSTAMP [0] (0)
2 PIN_FLD_USAGE_END_DETAILS INT [0] 2
2 PIN_FLD_CYCLE_END_DETAILS INT [0] 2
2 PIN_FLD_QUANTITY DECIMAL [0] 1
2 PIN_FLD_PURCHASE_END_DETAILS INT [0] 2
2 PIN_FLD_USAGE_START_DETAILS INT [0] 1
2 PIN_FLD_CYCLE_START_DETAILS INT [0] 1
2 PIN_FLD_PURCHASE_START_DETAILS INT [0] 1
2 PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 3377684 0
2 PIN_FLD_USAGE_DISCOUNT DECIMAL [0] 0
2 PIN_FLD_CYCLE_DISCOUNT DECIMAL [0] 0
2 PIN_FLD_PURCHASE_DISCOUNT DECIMAL [0] 0
2 PIN_FLD_STATUS ENUM [0] 1
2 PIN_FLD_STATUS_FLAGS INT [0] 0
2 PIN_FLD_USAGE_END_T TSTAMP [0] (0)
2 PIN_FLD_USAGE_START_T TSTAMP [0] (0)
2 PIN_FLD_CYCLE_END_T TSTAMP [0] (0)
2 PIN_FLD_CYCLE_START_T TSTAMP [0] (0)
1 PIN_FLD_NAME STR [0] "MRC_LIBERTY_BUNDLE"
1 PIN_FLD_POID POID [0] 0.0.0.1 /deal 3375380 0
1 PIN_FLD_END_T TSTAMP [0] (0) 01/01/1970 03:00:00:000 AM
1 PIN_FLD_FLAGS INT [0] 0
1 PIN_FLD_START_T TSTAMP [0] (0) 01/01/1970 03:00:00:000 AM
1 PIN_FLD_DESCR STR [0] "MRC_LIBERTY_BUNDLE"

Advance Payment input Flist

0 PIN_FLD_POID POID [0] 0.0.0.1 /account 1 0


0 PIN_FLD_PROGRAM_NAME STR [0] "Payment API"
0 PIN_FLD_DESCR STR [0] "Payment against the product <Product Name>"
0 PIN_FLD_CHARGES ARRAY [0] allocated 20, used 9
1 PIN_FLD_COMMAND ENUM [0] 0
1 PIN_FLD_ACCOUNT_NO STR [0] "0.0.0.1-14537601"
1 PIN_FLD_PAY_TYPE ENUM [0] 10011
1 PIN_FLD_PAYMENT SUBSTRUCT [0] allocated 20, used 2
2 PIN_FLD_DESCR STR [0] "<PAYMENT DESCR>"
2 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
3 PIN_FLD_CASH_INFO ARRAY [0] allocated 20, used 2
4 PIN_FLD_EFFECTIVE_T TSTAMP [0] (1518028200) Thu Feb 8 00:00:00 2018
4 PIN_FLD_RECEIPT_NO STR [0] ""
3 PIN_FLD_ITEMS ARRAY [0] allocated 20, used 2
4 PIN_FLD_POID POID [0] 0.0.0.1 /item/misc 14537025
1 PIN_FLD_CURRENCY INT [0] 840
1 PIN_FLD_AMOUNT DECIMAL [0] 10.0

You might also like