FSM Service Configuration
Overview
Faecal sludge management (FSM) is a system that enables citizens to raise a request for septic tank cleaning with the urban local bodies (ULBs) directly or reach out to the ULB counter. Citizens can track the application, make a payment for the charges and rate the service. This document contains details about how to set up the FSM and describes the functionalities it provides.
This document contains the details about the features enhancements being released as part of FSM v1.1 release. For core FSM functionalities and how to set up the FSM please refer to this document.
Pre-requisites
Before you proceed with the configuration, make sure the following pre-requisites are met -
Java 8
Kafka server is up and running
egov-persister service is running and has fsm-persister config path added to it
PSQL server is running and a database is created to store FSM application data
(Optional) Indexer config for FSM is added in egov-indexer yaml paths to index the generated data. The index is required for data visualisation in Kibana or in DSS.
The following services should be up and running:
egov-user
egov-workflow-v2
egov-persister
egov-localization
egov-notification-sms
egov-mdms
egov-idgen
egov-url-shortening
vehicle
vendor
fsm-calculator
billing-service
collection-services
Key Functionalities
Citizens can file, track and rate the application for cleaning septic tank.
ULB employee can file an application for cleaning septic tank on behalf of citizens
ULB employee can assign DSO to the given application with a possible service date.
DSO can accept or reject the application.
DSO or ULB employee can complete the FSM application after cleaning the septic tank.
FSM admin in ULB can cancel the application at any stage before completing the application.
ULB employee or admin can view the audit log of the given application.
Capture citizen gender information if not present or pre-populate the gender information when a citizen is creating FSM application.
Add citizen's choice for payment.
Introducing pre-pay and post-pay service.
Post-pay service: Workflow changes (desludging application and vehicle trip).
Post-pay service: Employee flow enhancements.
Add payment selection for DSO.
Post-pay service: The number of trips is made editable and price calculation is now based on the number of trips entered by the DSO.
Capture DSO and FSTPO gender.
Show citizen gender on FSM DSS.
Select vehicle capacity instead of vehicle make.
Citizen notifications | payment options | timeline enhancements.
FSTPO vehicle log inbox enhancements.
FSTPO can decline the vehicle trip.
Add owner attribute for vehicle.
Add ULB contact details in the FSM application flow.
DSO can edit pit and property usage details.
Show vehicle trip status in employee inbox along with the desludging application.
Deployment Details
Deploy the latest version of FSM
Add fsm-persister.yml file in the config folder in git and add that path in persister. (The file path is to be added in environment yaml file in param called
persist-yml-path
) and restart the egov-persister service.If an index is to be created add the indexer config path in the indexer service. (The file path is to be added in environment yaml file in param called
egov-indexer-yaml-repo-path
) and restart egov-indexer service.
Configuration Details
MDMS Configuration
Add master data in the MDMS service with the module name as FSM
and restart the egov-mdms-service. Following is some sample master data for
Application channel (source)
{
"tenantId": "pb",
"moduleName": "FSM",
"ApplicationChannel": [
{
"name": "Telephone",
"code": "TELEPHONE",
"active": true,
"citizenOnly":false
},
{
"name": "Counter",
"code": "COUNTER",
"active": true,
"citizenOnly":false
},
{
"name": "Online",
"code": "ONLINE",
"active": true,
"citizenOnly":true
}
]
}
Checklist (To be answered by a citizen while rating)
{
"tenantId": "pb",
"moduleName": "FSM",
"CheckList": [{
"code": "SPILAGE",
"active": true,
"required": true,
"type": "SINGLE_SELECT",
"options": [
"YES",
"NO",
"NA"
]
},
{
"code": "SAFETY_GEARS_USED",
"active": true,
"type": "MULTI_SELECT",
"required": true,
"options": [
"EYE_GEAR",
"HAND_GLOVES",
"NOSE_MASK"
]
},
{
"code": "NUMBER_OF_TRIPS",
"active": true,
"type": "DROP_DOWN",
"required": false,
"options": [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10"
]
}
]
}
Config (configuration at the application level)
{
"tenantId": "pb",
"moduleName": "FSM",
"Config": [
{
"code":"noOfTrips",
"override":true,
"default":1,
"active":true,
"description":"override:true indicates, noOfTrips poperty is allowed to override in FSM."
},
{
"code":"additionalDetails.tripAmount",
"override":false,
"active":true,
"description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
},
{
"code":"slumName",
"override":true,
"active":true,
"description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
},
{
"code":"ALLOW_MODIFY",
"WFState":"CREATED",
"override":[
"propertyUsage",
"vehicleType",
"sanitationtype",
"address.pincode",
"address.city",
"address.locality",
"address.street",
"address.doorNo",
"address.landmark",
"pitDetail"
],
"active":true,
"description":"properties in override allowed to modify when FSM application moving from CREATED Status to next status."
}
]
}
FSTP plant info (FSTP information for each city)
{
"tenantId": "pb",
"moduleName": "FSM",
"FSTPPlantInfo": [
{
"PlantCode": "AMR001",
"PlantName": "Amritsar FSTP",
"active": true,
"PlantType":"FSTP",
"PlantLocation":"Amritsar",
"PlusCode":"JQ2R+7G Khapar Kheri, Punjab",
"PlantOperationalTimings":"10.00am-08.00pm",
"PlantOperationalCapacityKLD":"50",
"ULBS":"pb.jalandhar,pb.amritsar,pb.nayagaon"
},
{
"PlantCode": "MOH002",
"PlantName": "Mohali SeTPP",
"active": true,
"PlantType":"SeTP",
"PlantLocation":"Mohali",
"PlusCode":"MPFQ+V2 Sahibzada Ajit Singh Nagar, Punjab",
"PlantOperationalTimings":"10.00am-06.00pm",
"PlantOperationalCapacityKLD":"100",
"ULBS":"pb.mohali,pb.phagwara,pb.nawanshahr,pb.derabassi"
}
]
}
Pit Type (type of pit)
{
"tenantId": "pb",
"moduleName": "FSM",
"PitType": [
{
"name": "Conventional septic tank",
"code": "CONVENTIONAL_SPECTIC_TANK",
"active": true,
"dimension":"lbd"
},
{
"name": "Septic tank with soak pit",
"code": "SEPTIC_TANK_WITH_SOAK_PIT",
"active": true,
"dimension":"dd"
}
]
}
Property type
{
"tenantId": "pb",
"moduleName": "FSM",
"PropertyType": [
{
"name": "Residential",
"code": "RESIDENTIAL",
"active": true,
"minAmount":"100",
"maxAmount":"500"
},
{
"name": "Independent House",
"code": "RESIDENTIAL.INDEPENDENT_HOUSE",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"100",
"maxAmount":"300"
},
{
"name": "Apartment",
"code": "RESIDENTIAL.APARTMENT",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"400",
"maxAmount":"600"
},
{
"name": "Row Houses",
"code": "RESIDENTIAL.ROW_HOUSES",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"700",
"maxAmount":"900"
},
{
"name": "Commercial",
"code": "COMMERCIAL",
"active": true,
"minAmount":"2000",
"maxAmount":"5000"
},
{
"name": "Community Toilets",
"code": "COMMERCIAL.COMMUNITY_TOILETS",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1000",
"maxAmount":"1200"
},
{
"name": "Hotel",
"code": "COMMERCIAL.HOTEL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1300",
"maxAmount":"1500"
},
{
"name": "Restaurant",
"code": "COMMERCIAL.RESTAURANT",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1600",
"maxAmount":"1800"
},
{
"name": "Shopping Mall",
"code": "COMMERCIAL.SHOPPING_MALL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1900",
"maxAmount":"2100"
},
{
"name": "Community hall",
"code": "COMMERCIAL.COMMUNITY_HALL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2200",
"maxAmount":"2500"
},
{
"name": "Bank",
"code": "COMMERCIAL.BANK",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2600",
"maxAmount":"2800"
},
{
"name": "Private office",
"code": "COMMERCIAL.PRIVATE_OFFICE",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2900",
"maxAmount":"3200"
},
{
"name": "Market",
"code": "COMMERCIAL.MARKET",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"3300",
"maxAmount":"3500"
},
{
"name": "Hostel",
"code": "COMMERCIAL.HOSTEL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"3600",
"maxAmount":"3900"
},
{
"name": "Warehouse",
"code": "COMMERCIAL.WAREHOUSE",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"400",
"maxAmount":"4200"
},
{
"name": "Petrol pumps",
"code": "COMMERCIAL.PETROL_PUMPS",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4300",
"maxAmount":"4500"
},
{
"name": "Resort",
"code": "COMMERCIAL.RESORT",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4600",
"maxAmount":"4800"
},
{
"name": "Theme park",
"code": "COMMERCIAL.THEME_PARK",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4900",
"maxAmount":"5100"
},
{
"name": "Sports center",
"code": "COMMERCIAL.SPORTS_CENTER",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"5200",
"maxAmount":"5500"
},
{
"name": "Institutional",
"code": "INSTITUTIONAL",
"active": true,
"minAmount":"1000",
"maxAmount":"3000"
},
{
"name": "Temple",
"code": "INSTITUTIONAL.TEMPLE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"5600",
"maxAmount":"5900"
},
{
"name": "Mosque",
"code": "INSTITUTIONAL.MOSQUE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6000",
"maxAmount":"6200"
},
{
"name": "Church",
"code": "INSTITUTIONAL.CHURCH",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6300",
"maxAmount":"6500"
},
{
"name": "Gurudwara",
"code": "INSTITUTIONAL.GURUDWARA",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6600",
"maxAmount":"6800"
},
{
"name": "Monastery",
"code": "INSTITUTIONAL.MONASTERY",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6900",
"maxAmount":"7200"
},
{
"name": "School",
"code": "INSTITUTIONAL.SCHOOL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"7300",
"maxAmount":"7500"
},
{
"name": "College",
"code": "INSTITUTIONAL.COLLEGE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"7600",
"maxAmount":"7900"
},
{
"name": "University",
"code": "INSTITUTIONAL.UNIVERSITY",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8000",
"maxAmount":"8200"
},
{
"name": "Anganwadi",
"code": "INSTITUTIONAL.ANGANWADI",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8300",
"maxAmount":"8500"
},
{
"name": "Training Institutes",
"code": "INSTITUTIONAL.TRAINING_INSTITUTES",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8600",
"maxAmount":"8800"
},
{
"name": "Hospital",
"code": "INSTITUTIONAL.HOSPITAL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8900",
"maxAmount":"9200"
},
{
"name": "Nursing home",
"code": "INSTITUTIONAL.NURSING_HOME",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9300",
"maxAmount":"9500"
},
{
"name": "Community health center",
"code": "INSTITUTIONAL.COMMUNITY_HEALTH_CENTER",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9400",
"maxAmount":"9600"
},
{
"name": "Jail",
"code": "INSTITUTIONAL.JAIL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9700",
"maxAmount":"1000"
},
{
"name": "Police station",
"code": "INSTITUTIONAL.POLICE_STATION",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"10100",
"maxAmount":"10500"
}
]
}
Slum (mapped to the selected city locality)
{
"tenantId": "pb",
"moduleName": "FSM",
"Slum": [{
"code": "SL0001",
"active": true,
"name": "Kathagada juanga sahi",
"locality": "SUN20"
},
{
"code": "SL0002",
"active": true,
"name": "Kathagada Parbatia Sahi",
"locality": "SUN20"
},
{
"code": "SL0003",
"active": true,
"name": "Gangadhar Sahi",
"locality": "SUN35"
},
{
"code": "SL0004",
"active": true,
"name": "Pandab Nagar",
"locality": "SUN35"
},
{
"code": "SL0005",
"active": true,
"name": "Haridakhandi Harijana sahi",
"locality": "SUN35"
},
{
"code": "SL0006",
"active": true,
"name": "Haridakhandi Kadalibada Sahi",
"locality": "SUN55"
},
{
"code": "SL0007",
"active": true,
"name": "Haridakhandi Bada sahi",
"locality": "SUN55"
},
{
"code": "SL0008",
"active": true,
"name": "Haridakhandi Redika Sahi",
"locality": "SUN55"
},
{
"code": "SL0009",
"active": true,
"name": "Golapali Sahi",
"locality": "SUN18"
},
{
"code": "SL0010",
"active": true,
"name": "Surya Nagar",
"locality": "SUN18"
},
{
"code": "SL0011",
"active": true,
"name": "Damba Sahi",
"locality": "SUN18"
},
{
"code": "SL0012",
"active": true,
"name": "Raju Dhoba Sahi",
"locality": "SUN08"
}
]
}
Payment type (payment preference type)
{
"tenantId": "pb",
"moduleName": "FSM",
"PaymentType": [
{
"name": "Pay Now",
"code": "PRE_PAY",
"active": true
},
{
"name": "Pay on Service",
"code": "POST_PAY",
"active": true
}
]
}
data/pg/FSM/ReceivedPaymentType.json
https://github.com/egovernments/egov-mdms-data/commit/4c028a70ccb715df9574d86dc99d11d93057d30e
https://github.com/egovernments/egov-mdms-data/commit/5a190371c2305131eac40b87b41c7b3f0eef092c
data/pg/FSM/CommonFieldsConfig.json
https://github.com/egovernments/egov-mdms-data/commit/4fac292e055665e5fbe4bfeaa7991c574a2289dc
FSM Persister YML
Integrate following below changes in fsm-persister.ymlBusiness Service / Workflow Configuration
ttps://github.com/egovernments/configs/commit/634a4fdd842ec69bdf735e8c985e36499661512f
Dashboard Analytics Configuration
Following are the changes that need to be integrate in dashboard-analytics and restart the “dashboard-analytics” service
egov-dss-dashboards/dashboard-analytics/ChartApiConfig.json:
https://github.com/egovernments/configs/commit/2ae2feecd343d17b908820b86664cee38293a719
https://github.com/egovernments/configs/commit/18e547df409b625b0934e4dc7251590c5f834f83
https://github.com/egovernments/configs/commit/f05d41d983a9ec5381183d3f26497dc2295ad169
https://github.com/egovernments/configs/commit/47c3592252b4236b9a785adf6dd7d0b4dd66e482
https://github.com/egovernments/configs/commit/5b716c195766a573fb542e41d3ca94b54b6aa248
egov-dss-dashboards/dashboard-analytics/MasterDashboardConfig.json
https://github.com/egovernments/configs/commit/c1c4b2ed5e5eb1b153c2648c3307f006566a5a6b
egov-indexer/egov-vehicle.yaml
https://github.com/egovernments/configs/commit/3d9faae0f42550a4e15dcad69630846ba0482de8
Business Service / Workflow Configuration
Create businessService (workflow configuration) using the /businessservice/_create
. Following is the product configuration for FSM:
//{
"RequestInfo": {
"apiId": "Rainmaker",
"action": "",
"did": 1,
"key": "",
"msgId": "20170310130900|en_IN",
"requesterId": "",
"ts": 1513579888683,
"ver": ".01",
"authToken": "{{devAuth}}",
"userInfo": {
"id": 73,
"userName": null,
"name": null,
"type": "EMPLOYEE",
"mobileNumber": null,
"emailId": null,
"roles": [
{
"id": 2,
"name": "Customer Support Representative",
"code": null,
"tenantId": null
}
],
"tenantId": null,
"uuid": "uuid"
}
},
"BusinessServices": [
{
"tenantId": "pb",
"businessService": "FSM",
"business": "fsm",
"businessServiceSla": 172800000,
"states": [
{
"tenantId": "pb",
"sla": null,
"state": null,
"applicationStatus": null,
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"action": "APPLY",
"nextState": "PENDING_APPL_FEE_PAYMENT",
"roles": [
"FSM_CREATOR_EMP"
]
},
{
"tenantId": "pb",
"action": "CREATE",
"nextState": "CREATED",
"roles": [
"CITIZEN"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "CREATED",
"applicationStatus": "CREATED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"action": "SUBMIT",
"nextState": "PENDING_APPL_FEE_PAYMENT",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "PENDING_APPL_FEE_PAYMENT",
"applicationStatus": "PENDING_APPL_FEE_PAYMENT",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"action": "SENDBACK",
"nextState": "CREATED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"action": "PAY",
"nextState": "ASSING_DSO",
"roles": [
"CITIZEN",
"FSM_COLLECTOR"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "ASSING_DSO",
"applicationStatus": "ASSING_DSO",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"action": "ASSIGN",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "DSO_REJECTED",
"applicationStatus": "DSO_REJECTED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "SENDBACK",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_ADMIN"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "DSO_INPROGRESS",
"applicationStatus": "DSO_INPROGRESS",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "SENDBACK",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "DECLINE",
"nextState": "ASSING_DSO",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "COMPLETED",
"nextState": "CITIZEN_FEEDBACK_PENDING",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "PENDING_DSO_APPROVAL",
"applicationStatus": "PENDING_DSO_APPROVAL",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "DSO_REJECT",
"nextState": "DSO_REJECTED",
"roles": [
"FSM_DSO"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "DSO_ACCEPT",
"nextState": "DSO_INPROGRESS",
"roles": [
"FSM_DSO"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "COMPLETED",
"applicationStatus": "COMPLETED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true,
"isStateUpdatable": false
},
{
"sla": null,
"state": "REJECTED",
"applicationStatus": "REJECTED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true,
"isStateUpdatable": false,
"actions": null
},
{
"tenantId": "pb",
"sla": null,
"state": "CANCELED",
"applicationStatus": "CANCELED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true,
"isStateUpdatable": false,
"actions": null
},
{
"tenantId": "pb",
"sla": null,
"state": "CITIZEN_FEEDBACK_PENDING",
"applicationStatus": "CITIZEN_FEEDBACK_PENDING",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": false,
"actions": [
{
"tenantId": "pb",
"currentState": "CITIZEN_FEEDBACK_PENDING",
"action": "RATE",
"nextState": "COMPLETED",
"roles": [
"CITIZEN"
]
}
]
}
]
}
]
}
For post new Business service FSM_POST_PAY_SERVICE is created. Create businessService (workflow configuration) using the /businessservice/_create
. Following is the product configuration for FSM_POST_PAY_SERVICE:
{
"BusinessServices": [
{
"tenantId": "pb",
"businessService": "FSM_POST_PAY_SERVICE",
"business": "fsm",
"businessServiceSla": 172800000,
"states": [
{
"tenantId": "pb",
"sla": null,
"state": null,
"applicationStatus": null,
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": null,
"action": "APPLY",
"nextState": "ASSIGN_DSO",
"roles": [
"FSM_CREATOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": null,
"action": "CREATE",
"nextState": "CREATED",
"roles": [
"CITIZEN"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "CREATED",
"applicationStatus": "CREATED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "CREATED",
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "CREATED",
"action": "SUBMIT",
"nextState": "ASSIGN_DSO",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "ASSIGN_DSO",
"applicationStatus": "ASSIGN_DSO",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "ASSIGN_DSO",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "ASSIGN_DSO",
"action": "ASSIGN",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "PENDING_DSO_APPROVAL",
"applicationStatus": "PENDING_DSO_APPROVAL",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "DSO_ACCEPT",
"nextState": "DSO_INPROGRESS",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "PENDING_DSO_APPROVAL",
"action": "DSO_REJECT",
"nextState": "DSO_REJECTED",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "DSO_REJECTED",
"applicationStatus": "DSO_REJECTED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
],
"active": true
},
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
],
"active": true
},
{
"tenantId": "pb",
"currentState": "DSO_REJECTED",
"action": "SENDBACK",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_ADMIN"
],
"active": true
}
]
},
{
"tenantId": "pb",
"sla": null,
"state": "DSO_INPROGRESS",
"applicationStatus": "DSO_INPROGRESS",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "SENDBACK",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "DECLINE",
"nextState": "ASSIGN_DSO",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb",
"currentState": "DSO_INPROGRESS",
"action": "REASSING",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"