Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Apply for water connection.

  • Searching for water connections.

  • Apply for Property creation.

  • Can take different action based on state (Workflow)

  • Notification based on the application state.

Environment Variables

Description

egov.waterservice.createwaterconnection

This variable contains the kafka topic name which is used to create new water connection application in the system.

egov.waterservice.updatewaterconnection

This variable contains the kafka topic name which is used to update the existing water connection application in the system.

egov.waterservice.updatewaterconnection.workflow.topic

This variable contains the kafka topic name which is used to update the process instance of the water connection application.

egov.idgen.

wcid

wcapid.name

This variable contain the idgen format name for water application

egov.idgen.

wcid

wcapid.format

This variable contain the idgen format for water application
ex:- WS/[CITY.CODE]/[fy:yyyy-yy]/[SEQ_EGOV_COMMON]

egov.idgen.

wcapid

wcid.name

This variable contain the idgen format name for water connection

egov.idgen.

wcapid

wcid.format

This variable contain the idgen format for water connection
ex:- WS_AP/[CITY.CODE]/[fy:yyyy-yy]/[SEQ_EGOV_COMMON]

Interaction Diagram:

To Do

...

https://github.com/egovernments/configs/blob/DEV/egov-persister/water-persist.yml
https://github.com/egovernments/configs/blob/master/egov-persister/water-meter.yml

Workflow business service config:

Create businessService (workflow configuration) using the  /businessservice/_create. Following is the product configuration for water service

...

Actions & Role Action Mapping


Actions

Code Block
[
  {
      "RequestInfoid": {{PLACEHOLDER1}},
      "apiIdname": "RainmakerCreate Water Connection",
      "actionurl": "/ws-services/wc/_create",
      "diddisplayName": 1 "Create Water COnnection",
      "keyorderNumber": ""0,
      "msgIdenabled": "20170310130900|en_IN",false,
      "requesterIdserviceCode": "ws-services",
    "ts": 1513579888683,     "vercode": ".01null",
      "authTokenpath": "{{Auth_Token}}"
    },
  "BusinessServices": [     {
      "tenantIdid": "pb"{{PLACEHOLDER2}},
      "businessServicename": "NewWS1Search Water Connection",
      "businessurl": "/ws-services/wc/_search",
      "businessServiceSladisplayName": 259200000 "Search Water COnnection",
      "statesorderNumber": [0,
      "enabled": false,
{           "slaserviceCode": null,
   "ws-services",
      "statecode": "null",
      "path": ""
  "applicationStatus": null  },
    {
      "docUploadRequiredid": false,
 {{PLACEHOLDER3}},
        "isStartStatename": true,"Update Water   Connection",
      "isTerminateStateurl": false"/ws-services/wc/_update",
          "isStateUpdatabledisplayName": false,"Update Water   COnnection",
      "actionsorderNumber": [0,
      "enabled": false,
    {  "serviceCode": "ws-services",
        "code": "null",
      "actionpath": "INITIATE",
    },
    {
      "nextStateid": "INITIATED"{{PLACEHOLDER4}},
      "name": "BusinessService Search",
      "rolesurl": ["/user/profile/_update",
      "parentModule": "",
       "displayName": "CITIZEN",
         "orderNumber": 0,
      "WS_CEMPenabled": false,
      "serviceCode": "ADMIN",
     ] "code": "null",
      "path": ""
  }  },
]

 


Role Action Mapping

Code Block
[
  {
 ]         }"rolecode": "EMPLOYEE",
      "actionid":  {
{{PLACEHOLDER1}},
         "slaactioncode": null"",
          "statetenantId": "INITIATED"pb"
    },
    {
      "applicationStatusrolecode": "INITIATEDGP_ADMIN",
   
      "docUploadRequiredactionid": false{{PLACEHOLDER1}},
          "isStartStateactioncode": false"",
      "tenantId": "pb"
   "isTerminateState": false},
    {
      "isStateUpdatablerolecode": true"SUPERUSER",
        "actionid": {{PLACEHOLDER1}},
      "actionsactioncode": ["",
      "tenantId": "pb"
    {},
      {
       "actionrolecode": "SUBMITGP_APPLICATIONADMIN",
      "actionid": {{PLACEHOLDER1}},
      "nextStateactioncode": "PENDING_FOR_DOCUMENT_VERIFICATION",
      "tenantId": "pb"
    },
 "roles": [  {
      "rolecode": "SUPERUSER",
      "CITIZEN"actionid": {{PLACEHOLDER2}},
      "actioncode": "",
      "tenantId":  "WS_CEMPpb"
    },
    {
    ]  "rolecode": "GP_ADMIN",
      "actionid": {{PLACEHOLDER2}},
 }     "actioncode": "",
    ]    "tenantId": "pb"
    },
    {
   {   "rolecode": "COLLECTION_OPERATOR",
      "slaactionid": null,{{PLACEHOLDER2}},
      "actioncode": "",
      "statetenantId": "PENDING_FOR_CITIZEN_ACTION"pb"
    },
    {
      "applicationStatusrolecode": "PENDINGBULK_FORDEMAND_CITIZEN_ACTIONPROCESSING",
 
        "docUploadRequiredactionid": false{{PLACEHOLDER2}},
          "isStartStateactioncode": false"",
      "tenantId": "pb"
   "isTerminateState": false},
    {
      "isStateUpdatablerolecode": true"EXPENSE_PROCESSING",
      "actionid": {{PLACEHOLDER2}},
      "actionsactioncode": ["",
      "tenantId": "pb"
    {},
    {
         "actionrolecode": "RESUBMITDASHBOARD_APPLICATIONVIEWER",
      "actionid": {{PLACEHOLDER2}},
      "nextStateactioncode": "PENDING_FOR_DOCUMENT_VERIFICATION",
      "tenantId": "pb"
    }, 
"roles": [   {
      "rolecode": "EMPLOYEE",
      "CITIZEN"actionid": {{PLACEHOLDER2}},
      "actioncode": "",
       "tenantId": "WS_CEMPpb"
    },
    {
    ]  "rolecode": "GP_ADMIN",
      "actionid": {{PLACEHOLDER2}},
 }     "actioncode": "",
    ]  "tenantId": "pb"
     },
    {
   {   "rolecode": "COLLECTION_OPERATOR",
      "slaactionid": null{{PLACEHOLDER2}},
          "stateactioncode": "PENDING_FOR_DOCUMENT_VERIFICATION",
      "tenantId": "pb"
   "applicationStatus": "PENDING_FOR_DOCUMENT_VERIFICATION" },
    {
      "docUploadRequiredrolecode": false"EMPLOYEE",

         "isStartStateactionid": false{{PLACEHOLDER3}},
          "isTerminateStateactioncode": false"",
      "tenantId": "pb"
   "isStateUpdatable": true},
    {
      "actionsrolecode": ["GP_ADMIN",
            {"actionid": {{PLACEHOLDER3}},
      "actioncode": "",
      "actiontenantId": "VERIFY_AND_FORWARDpb",
    },
    {
      "nextStaterolecode": "PENDING_FOR_FIELD_INSPECTIONSUPERUSER",
      "actionid": {{PLACEHOLDER3}},
      "rolesactioncode": ["",
      "tenantId": "pb"
    },
   "WS_DOC_VERIFIER" {
      "rolecode": "GP_ADMIN",
     ] "actionid": {{PLACEHOLDER3}},
          }"actioncode": "",
      "tenantId": "pb"
    {},
       {
      "actionrolecode": "REJECTSUPERUSER",
      "actionid": {{PLACEHOLDER4}},
      "nextStateactioncode": "REJECTED",
             "tenantId": "rolespb":
[    },
    {
      "rolecode": "WSGP_DOC_VERIFIERADMIN",
      "actionid": {{PLACEHOLDER4}},
      ]
"actioncode": "",
      "tenantId": "pb"
    },
    {
       {"rolecode": "COLLECTION_OPERATOR",
      "actionid": {{PLACEHOLDER4}},
      "actionactioncode": "SEND_BACK_TO_CITIZEN",
     
        "nextStatetenantId": "PENDING_FOR_CITIZEN_ACTION",pb"
    },
    {
      "rolesrolecode": [
                "WS_DOC_VERIFIER""BULK_DEMAND_PROCESSING",
      "actionid": {{PLACEHOLDER4}},
      ]
"actioncode": "",
      "tenantId": "pb"
    },
    {
     ] "rolecode": "EXPENSE_PROCESSING",
      "actionid": {{PLACEHOLDER4}},
      "actioncode": "",
{      "tenantId": "pb"
   "sla": null},
    {
      "staterolecode": "REJECTEDDASHBOARD_VIEWER",
          "applicationStatus": "REJECTED""actionid": {{PLACEHOLDER4}},
          "isStateUpdatableactioncode": false"",
  
       "docUploadRequiredtenantId": false,"pb"
    },    
 "isStartState": false,    {
      "isTerminateStaterolecode": true"PROFILE_UPDATE",
        }"actionid": 2001,
      "actioncode": "",
{      "tenantId": "pb"
   "sla": 86400000,
    }
]

Roles to be available:

Code Block

		{
      "statecode": "PENDING_FOR_FIELD_INSPECTIONGP_ADMIN",
          "applicationStatus""name": "PENDING_FOR_FIELD_INSPECTIONGP Admin",
 
        "docUploadRequireddescription": false,"Who has a access to ws-services"
     "isStartState": false},
		{
         "isStateUpdatablecode": true,
 "COLLECTION_OPERATOR",
        "isTerminateStatename": "Collection falseOperator",
          "actionsdescription": ["Who has a access to ws-services,demand, bill and payment"
    },
		{
      "code": "BULK_DEMAND_PROCESSING",
      "actionname": "VERIFY_AND_FORWARDBulk Demand Processing",
      "description": "Who has a access to bulk  "nextState": "PENDING_APPROVAL_FOR_CONNECTION",
   demand generation,raise bill, downloa bill and receipts"
    },
		{
      "rolescode": ["EXPENSE_PROCESSING",
      "name": "Expense  Processing",
      "WS_FIELD_INSPECTORdescription": "Who has a access to create and update expenses"
    },
]		{
      "code": "DASHBOARD_VIEWER",
    },  "name": "Dashbaord Viewer",
      "description": "Who {has a access to dashboard of revenue and expenditure"
    }

Workflow business service config:

Create businessService (workflow configuration) using the  /businessservice/_create. Following is the product configuration for water service

Code Block
{
  "actionRequestInfo": "REJECT",{
        "apiId": "Rainmaker",
     "nextStateaction": "REJECTED",
       "did": 1,
      "roleskey": ["",
       "msgId": "20170310130900|en_IN",
        "WS_FIELD_INSPECTOR""requesterId": "",
    "ts": 1513579888683,
    "ver": ".01",
  ]          "authToken": "{{Auth_Token}}"
  },
       "BusinessServices": [
    {
      "tenantId": "pb",
      "actionbusinessService": "SEND_BACK_FOR_DOCUMENT_VERIFICATIONNewWS1",
      "business": "ws-services",
      "nextStatebusinessServiceSla": "PENDING_FOR_DOCUMENT_VERIFICATION"259200000,
              "roles"states": [
        {
       "WS_FIELD_INSPECTOR"   "sla": null,
          ]
"state": null,
           }"applicationStatus": null,
          ]
"docUploadRequired": false,
       },         {"isStartState": true,
          "slaisTerminateState": 43200000false,
          "stateisStateUpdatable": "PENDING_APPROVAL_FOR_CONNECTION"false,
          "applicationStatusactions": "PENDING_APPROVAL_FOR_CONNECTION", [
            {
  "docUploadRequired": false,           "isStartStateaction": false"INITIATE",
           "isStateUpdatable   "nextState": true"INITIATED",
          "isTerminateState": false,
          "actions"roles": [
          
 {               "actionCITIZEN": "APPROVE_FOR_CONNECTION",,
               "nextState": "PENDINGWS_FOR_PAYMENTCEMP",
              "roles":]
[                 "WS_APPROVER"
   }
          ]
        },
   },     {
       {   "sla": null,
          "actionstate": "REJECTINITIATED",

             "nextStateapplicationStatus": "REJECTEDINITIATED",
            "docUploadRequired": false,
 "roles": [        "isStartState": false,
       "WS_APPROVER"   "isTerminateState": false,
          ]
"isStateUpdatable": true,
           },"actions": [
            {
              "action": "SEND_BACK_FOR_FIELD_INSPECTIONSUBMIT_APPLICATION",
              "nextState": "PENDING_FOR_FIELDDOCUMENT_INSPECTIONVERIFICATION",
              "roles": [
                "CITIZEN",
                "WS_APPROVERCEMP"
              ]
            }
          ]
        },
        {
          "sla": 43200000null,
          "state": "PENDING_FOR_CITIZEN_PAYMENTACTION",
          "applicationStatus": "PENDING_FOR_CITIZEN_PAYMENTACTION",
          "docUploadRequired": false,
          "isStartState": false,
          "isTerminateState": false,
          "isStateUpdatable": falsetrue,
          "actions": [
            {
              "action": "PAYRESUBMIT_APPLICATION",
              "nextState": "PENDING_FOR_CONNECTIONDOCUMENT_ACTIVATIONVERIFICATION",
              "roles": [
                "CITIZEN",
                "WS_CEMP"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "PENDING_FOR_CONNECTIONDOCUMENT_ACTIVATIONVERIFICATION",
          "applicationStatus": "PENDING_FOR_CONNECTIONDOCUMENT_ACTIVATIONVERIFICATION",
          "isStateUpdatabledocUploadRequired": truefalse,
          "docUploadRequiredisStartState": false,
          "isStartStateisTerminateState": false,
          "isTerminateStateisStateUpdatable": falsetrue,
          "actions": [
            {
              "action": "ACTIVATEVERIFY_AND_CONNECTIONFORWARD",
              "nextState": "CONNECTION_ACTIVATEDPENDING_FOR_FIELD_INSPECTION",
              "roles": [
                "WS_DOC_CLERKVERIFIER"
              ]
            },
           ] {
       },       "action":  {"REJECT",
              "slanextState": null,"REJECTED",
              "stateroles": "CONNECTION_ACTIVATED", [
               "applicationStatus": "CONNECTIONWS_DOC_ACTIVATEDVERIFIER",
          "isStateUpdatable": false,   ]
       "docUploadRequired": false,    },
      "isStartState": false,     {
     "isTerminateState": true         }"action": "SEND_BACK_TO_CITIZEN",
               ]"nextState": "PENDING_FOR_CITIZEN_ACTION",
    }   ] } 

 

Workflow for property creation through Water and Sewerage Module

Code Block
{     "BusinessServicesroles": [
      {          "tenantIdWS_DOC_VERIFIER":
"pb",         "businessService": "NewWS1",    ]
    "business": "ws-services",       }
 "businessServiceSla": 259200000,        ]
"states": [       },
   {     {
          "sla": null,
            "state": null"REJECTED",

           "applicationStatus": "INWORKFLOWREJECTED",
            "docUploadRequiredisStateUpdatable": false,
            "isStartStatedocUploadRequired": truefalse,
 
          "isTerminateStateisStartState": false,
 
          "isStateUpdatableisTerminateState": false,true
        },
   "actions": [    {
          {
     "sla": 86400000,
          "actionstate": "OPENPENDING_FOR_FIELD_INSPECTION",
                "nextState"applicationStatus": "INITIATEDPENDING_FOR_FIELD_INSPECTION",
   
            "rolesdocUploadRequired": [false,
          "isStartState": false,
      "CITIZEN",    "isStateUpdatable": true,
          "isTerminateState": false,
      "WS_CEMP"
    "actions": [
            {
  ]            "action": "VERIFY_AND_FORWARD",
 }             ]
"nextState": "PENDING_APPROVAL_FOR_CONNECTION",
         },     "roles": [
    {             "slaWS_FIELD_INSPECTOR":
null,             "state": "INITIATED", ]
            "applicationStatus": "INWORKFLOW",},
            {
"docUploadRequired": false,             "isStartStateaction": true"REJECT",
              "isTerminateStatenextState": false"REJECTED",
              "isStateUpdatableroles": [
   true,             "actions": [WS_FIELD_INSPECTOR"
              ]
     {       },
         "action": "SUBMIT",  {
              "nextStateaction": "APPROVEDSEND_BACK_FOR_DOCUMENT_VERIFICATION",
 
              "rolesnextState": ["PENDING_FOR_DOCUMENT_VERIFICATION",
                  "CITIZENroles",: [
                 "WS_CEMPFIELD_INSPECTOR"

               ]
 
            }
 
          ]
          },
 
        {
 
          "sla": null43200000,
            "state": "APPROVEDPENDING_APPROVAL_FOR_CONNECTION",
            "applicationStatus": "ACTIVE",
 PENDING_APPROVAL_FOR_CONNECTION",
          "docUploadRequired": false,
 
          "isStartState": false,
          "isStateUpdatable": true,
          "isTerminateState": true,false,
          "actions": [
            {
              "isStateUpdatableaction": false"APPROVE_FOR_CONNECTION",
              "actionsnextState": null "PENDING_FOR_PAYMENT",
               }"roles": [
         ]       }
    ]
  }

water-service indexer config:

https://github.com/egovernments/configs/blob/DEV/egov-indexer/water-service.yml

"WS_APPROVER"
              ]
            },
            {
              "action": "REJECT",
              "nextState": "REJECTED",
              "roles": [
                "WS_APPROVER"
              ]
            },
            {
              "action": "SEND_BACK_FOR_FIELD_INSPECTION",
              "nextState": "PENDING_FOR_FIELD_INSPECTION",
              "roles": [
                "WS_APPROVER"
              ]
            }
          ]
        },
        {
          "sla": 43200000,
          "state": "PENDING_FOR_PAYMENT",
          "applicationStatus": "PENDING_FOR_PAYMENT",
          "docUploadRequired": false,
          "isStartState": false,
          "isTerminateState": false,
          "isStateUpdatable": false,
          "actions": [
            {
              "action": "PAY",
              "nextState": "PENDING_FOR_CONNECTION_ACTIVATION",
              "roles": [
                "CITIZEN",
                "WS_CEMP"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "PENDING_FOR_CONNECTION_ACTIVATION",
          "applicationStatus": "PENDING_FOR_CONNECTION_ACTIVATION",
          "isStateUpdatable": true,
          "docUploadRequired": false,
          "isStartState": false,
          "isTerminateState": false,
          "actions": [
            {
              "action": "ACTIVATE_CONNECTION",
              "nextState": "CONNECTION_ACTIVATED",
              "roles": [
                "WS_CLERK"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "CONNECTION_ACTIVATED",
          "applicationStatus": "CONNECTION_ACTIVATED",
          "isStateUpdatable": false,
          "docUploadRequired": false,
          "isStartState": false,
          "isTerminateState": true
        }
      ]
    }
  ]
}

 

Workflow for property creation through Water and Sewerage Module

Code Block
{
    "BusinessServices": [
    {
      "tenantId": "pb",
      "businessService": "PT.CREATEWITHWNS",
      "business": "PT",
      "businessServiceSla": null,
      "states": [
        {
          "sla": null,
          "state": null,
          "applicationStatus": "INWORKFLOW",
          "docUploadRequired": false,
          "isStartState": true,
          "isTerminateState": false,
          "isStateUpdatable": false,
          "actions": [
            {
              "action": "OPEN",
              "nextState": "INITIATED",
              "roles": [
                "CITIZEN",
                "WS_CEMP",
                "SW_CEMP"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "INITIATED",
          "applicationStatus": "INWORKFLOW",
          "docUploadRequired": false,
          "isStartState": true,
          "isTerminateState": false,
          "isStateUpdatable": true,
          "actions": [
            {
              "action": "SUBMIT",
              "nextState": "APPROVED",
              "roles": [
                "EMPLOYEE",
                "CITIZEN",
                "SW_CEMP",
                "WS_CEMP"
              ]
            },
            {
              "action": "BACK",
              "nextState": "INWORKFLOW",
              "roles": [
                "EMPLOYEE",
                "CITIZEN",
                "SW_CEMP",
                "WS_CEMP"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "INWORKFLOW",
          "applicationStatus": "INWORKFLOW",
          "docUploadRequired": false,
          "isStartState": true,
          "isTerminateState": false,
          "isStateUpdatable": true,
          "actions": [
            {
              "action": "SUBMIT",
              "nextState": "APPROVED",
              "roles": [
                "EMPLOYEE",
                "CITIZEN",
                "SW_CEMP",
                "WS_CEMP"
              ]
            }
          ]
        },
        {
          "sla": null,
          "state": "APPROVED",
          "applicationStatus": "ACTIVE",
          "docUploadRequired": false,
          "isStartState": false,
          "isTerminateState": true,
          "isStateUpdatable": false,
          "actions": null
        }
      ]
    }
  ]
}

Indexer config for water-service:

Setup:

  1. Write the configuration for water service. https://github.com/egovernments/configs/blob/DEV/egov-indexer/water-service.ymlhttps://github.com/egovernments/configs/blob/DEV/egov-indexer/water-services-meter.yml

  2. Provide the absolute path of the checked-in file to DevOps, to add it to the file-read path of egov-indexer. The file will be added to the egov-indexer's environment manifest file for it to be read at the start-up of the application.

  3. Put indexer config file to the config repo under egov-indexer folder.(https://github.com/egovernments/configs/

...

  1. tree/master )

  2. Run the egov-indexer app, Since it is a consumer, it starts listening to the configured topics and indexes the data.

Modify connection:

After connection activation or legacy connection, we can edit the connection. This process based on defined workflow. Any action is based on defined roles on the action level. For edit connection, we need to upload some supporting documents and mandatory info.

...

  1. To integrate, host of ws-service module should be overwritten in helm chart.

  2.  /ws-services/wc/_createshould be added as the create endpoint for creating water application/connection in the system

  3.  /ws-services/wc/_search should be added as the search endpoint .This method handles all requests to search existing records depending on different search criteria

  4.  /ws-services/wc/_update should be added as the update endpoint. This method is used to update fields in existing records or to update status of application based on workflow.

Reference Docs

Title 

Link

API Swagger Documentation

Swagger Documentation

Water Calculator Service

To Do

https://digit-discuss.atlassian.net/l/c/9N49PrrT

API List

Title 

Link

 /ws-services/wc/_create

https://www.getpostman.com/collections/

b5b7248d1aeacc9431cb

50d596f89ef415595fea

/ws-services/wc/_update

https://www.getpostman.com/collections/

b5b7248d1aeacc9431cb

50d596f89ef415595fea

/ws-services/wc/_search

https://www.getpostman.com/collections/

b5b7248d1aeacc9431cb

50d596f89ef415595fea

(Note: All the API’s are in the same postman collection therefore same link is added in each row)