Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Not Answered
Replies
6 replies
Subscribers
9 subscribers
Views
2983 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
General
Hi everybody, We are looking for advices/best practices prior to deve
fabienb
A Score Level 1
over 12 years ago
Hi everybody,
We are looking for advices/best practices prior to develop an application around data manipulation. Among the requirements, we need to:
- create a table from an excel file
- improve data quality using matching alogrithm
- display the matching result and get approvals from users
The expected number of input rows is around 10k+ but the number of distinct "matching" is more about a couple of hundreds I suppose.
For now, we have been thinking at the following solutions :
1- To create the table : use the excel file plugin + create CDTs + use write to data store entity Smart Service
2- To perform the matching, we have a custom expression that works just fine
3- To display distinct matchings: use the Query Database Smart service (SELECT DISTINCT... ) + create CDTs + use of paging grids for display
We encounter some limitations for 1&3 (nodes limit (1000), number of max rows returned by a query (10), latency) and prior to move on custom...
OriginalPostID-57770
OriginalPostID-57770
Discussion posts and replies are publicly visible
0
fabienb
A Score Level 1
over 12 years ago
... solutions, we are really eagger to hear your insights on what would be the best design and what workarounds could be found on those limitations.
Thank you very much!
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
David Williams
over 12 years ago
I suppose you could display the data via an excel file?
I think there is a component that does this via SQL data. At least this way you get a potentially large data set in one go and excel will allow users to filter etc.
Another way would be to display the data via a paging grid and query rule to support this. The downside is if it is a big data set then they could be paging for a while!
If I was looking at this I think I would be looking to keep the process as light as possible and perhaps take the approver to the data somehow and then a task to indicate whether it was approved or not.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Jed Fonner
Appian Employee
over 12 years ago
When you read from the Excel file into PVs, can you use the filter() function to apply your custom expression to remove all but the matching items (
forum.appian.com/.../Looping_Functions
.
In order to get uniques, you can do union (pv!filteredList, pv!filteredList) which will remove any duplicates (
forum.appian.com/.../Set_Functions
.
By using using filter() instead of MNI, you won't run into the node limit. And using union() instead of a Query Database node, you won't run into the query limit.
One thing to keep in mind, however, is union will compare each CDT to each other. So if the CDTs themselves aren't the same but just have fields that are the same, you'll need to do union on the field, not the CDT, and then match the results back up with the individual CDTs.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
fabienb
A Score Level 1
over 12 years ago
Sorry for for the late reply and thank you for your answers.
@davidwi: To display the data via the excel file is not quite satisfactory for us as we'd like to provide a consitent user experience, eg to keep the user in Appian interface. I will make some tests with standard/paging grids.
@jed: in my use case, the matching must unfortunately be applied to all inputs. Each input has 2 kinks of properties – unique (ex: id,location) and common (ex: product, product type). We are performing the “matching” on common properties to “clean” the data. Sorry if it not quite clear but that is to say that we cannot use the filter function at first.
Our understanding right now is that we should avoid to manipulate big data with appian functions mainly because of performance issues and limitations. We are leaning towards custom smart services to run java programs that will provide outputs ready to be displayed into paging grids. Do you think that our assessment is correct?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Tim
Certified Lead Developer
over 12 years ago
Is there a reason why you are not using the database itself to do the number crunching. Stored procedures are definitely the way to go.
The performance would far exceed anything you could write in process or custom plugins.
Appian's strength lie in the presentation and sharing of data, not high load manipulation.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
fabienb
A Score Level 1
over 12 years ago
I totally agree with you, that s the way we are inclined to take now.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel