Home > Forum > General > Searchable list of customers with additional information

Searchable list of customers with additional information
0

MVP

Hello everyone! I'm looking for some ideas how to implement the following scenario:
- client has approximately 500k customers (a mix of companies and persons)
- each customer can have one or more banking accounts
- each account can have one or more connected credit cards

I would like to give the users the option to search for a customer using data from each of the categories mentioned above. I'm trying to avoid importing this data as workflows because the data are live, each day new customers are added and old ones change (meaning I would need to implement some kind of update workflow as well).

Do you have any ideas what approach would be the best in this case?

Thank you in advance!

MVP

Hi Martin,

I believe that you aren't looking for a solution way how this could be implemented in general but how to cope with these amounts of data. Just in case I'm wrong I attached an image showing how to implement something like this in general. The only difference to your case is, that I'm connecting only two tables. I selected in which fields the user can search and changed the picker search mode, other tab, to contains. At least this would be the option if you can access the data by SQL. Otherwise you would need to have some rest/soap method. If you are using these you shouldn't do the searching with BPS but send the picker value to the server itself.

Back to topic in case you can connect to the data using SQL:
One performance improvement would be to define a view in the database. Than the SQL Server can build up some plan to improve the performance. He can't do this if you define the SQL in BPS.
Than there are "indexed views" I haven't worked with these but they could improve the performance even more.
If you can't connect directly to the server one approach would be to created a connection between the SQL server hosting BPS and the customer database. Than you could create the view on the BPS Server, which references the linked server. This may be necessary if the source database has been setup to be case sensitiv. You could change the collation to case insensitive in the view and than the user can find the data written in upper and lower case.

Regards,
Daniel

MVP
In reply to: Daniel Krüger (Cosmo Consult)

Hi Martin,

I believe that you aren't looking for a solution way how this could be implemented in general but how to cope with these amounts of data. Just in case I'm wrong I attached an image showing how to implement something like this in general. The only difference to your case is, that I'm connecting only two tables. I selected in which fields the user can search and changed the picker search mode, other tab, to contains. At least this would be the option if you can access the data by SQL. Otherwise you would need to have some rest/soap method. If you are using these you shouldn't do the searching with BPS but send the picker value to the server itself.

Back to topic in case you can connect to the data using SQL:
One performance improvement would be to define a view in the database. Than the SQL Server can build up some plan to improve the performance. He can't do this if you define the SQL in BPS.
Than there are "indexed views" I haven't worked with these but they could improve the performance even more.
If you can't connect directly to the server one approach would be to created a connection between the SQL server hosting BPS and the customer database. Than you could create the view on the BPS Server, which references the linked server. This may be necessary if the source database has been setup to be case sensitiv. You could change the collation to case insensitive in the view and than the user can find the data written in upper and lower case.

Regards,
Daniel

Hi Daniel and thank you for taking the time to answer.

I'm importing the mentioned data to a database on the same SQL server where Webcon database is so your solution was partly OK. I just realized I didn't give all correct details. With searching I meant using the Webcon search functionality in the header of the application.

I will try to give a more detailed description of what I want to achieve:
I would like to give the users the ability to find the customer an his position in Webcon to see all the connected details (accounts, cards etc...) + all Webcon workflows connected to this customer. In all workflows I'm using a global field to always store the Customer ID in the same field so I have the key on which joining data.

Any other ideas how this could be done?

MVP
In reply to: Martin Meze (Freelancer)

Hi Daniel and thank you for taking the time to answer.

I'm importing the mentioned data to a database on the same SQL server where Webcon database is so your solution was partly OK. I just realized I didn't give all correct details. With searching I meant using the Webcon search functionality in the header of the application.

I will try to give a more detailed description of what I want to achieve:
I would like to give the users the ability to find the customer an his position in Webcon to see all the connected details (accounts, cards etc...) + all Webcon workflows connected to this customer. In all workflows I'm using a global field to always store the Customer ID in the same field so I have the key on which joining data.

Any other ideas how this could be done?

Hi Martin,

so my answer was heading in the wrong direction.

I don't think you are able to configure the search to crawl through a non BPS database. Even if you could, how would you want to present the information to the user?
My only idea here is to create a single workflow for each customer. The only value here is your global field with the customer number. All other information would be retrieved via data rows/tables. This way you would only need to add new customers. Update are not necessary since all information are retrieved at runtime.

I have no idea how the BPS database copes with adding these number of workflows.
Maybe you could create an own BPS database which only stores this "mapping" workflow.

Of course it would be nice, if the users could search for a value in a specific field like "CustomerIdField:10000" but I don't know if this is possible. We would require some kind of mapping to translate the internal field names to user friendly ones and I'm not aware of any such option. At least for global fields this would be nice. :)

Best regards,
Daniel