plainblack.com
Username Password
search
Bookmark and Share

    

Product application

User dionak
Date 9/15/2009 10:15 pm
Views 720
Rating -1    Rate [
|
]
Previous · Next
User Message
dionak
Ok, all you smart developers!

I have a challenge that I mentioned, but did not fully explore, at the WUC due to not having all of the parameters available at that time. I just finished design today and have the constraints available. Because of the discussions between the business owners at the WUC, I thought I'd throw this out to the development community to get suggestions on how you would approach this challenge. I foresee having this challenge again in the near future due to having projects in the pipeline that involve showing/searching products for companies. Others will surely have this challenge as well with corporate sites.

Here's the scenario:

1. I have a list of products that need to be search-able by attributes (Tg, market, application, keyword). These are custom for the client (obviously).
2. There is a many to many relationship between products and markets.
3. There is a many to many relationship between products and applications.
4. Products are related by application (related products for display). This could change in the future but I could also deal with it then. Just thinking ahead.
5. Each product belongs to a category, used to separate search results on the results page of product search (grouping product types).
6. Each product has collateral files that need to be uploaded/replaced when updated and displayed on product detail pages. Think white papers, brochures, etc.
7. The client needs to be able to manage the list of markets, applications and categories in a way that maintains data integrity. In other words, embedding JSON on a per record basis would not allow our client to manage markets/applications, etc. Say they delete a market, how would this be handled after a market has previously been assigned?
8. This must be as maintainable and reusable as possible.

I find the collaboration system solution, combined with meta-data, too complex and limiting at the same time. A custom product is more complex than it should be. It would require a 'complex asset' or 'aspects' and isn't very reusable. Thingy appears to not address the many-to-many relationships and file relations. Ultimately, this would be the solution of choice. I would implement this with the SQLForm but it's been deprecated and is no longer supported.

How would you approach this? Any ideas?

Diona
--
Knowmad Technologies - Smart Web Solutions
W: http://www.knowmad.com | E: diona@knowmad.com
P: 704.343.9330 | http://www.LinkedIn.com/in/dionakidd


Back to Top
Rate [
|
]
 
 
rogier

1. I have a list of products that need to be search-able by attributes (Tg, market, application, keyword). These are custom for the client (obviously).
2. There is a many to many relationship between products and markets.
3. There is a many to many relationship between products and applications.
4. Products are related by application (related products for display). This could change in the future but I could also deal with it then. Just thinking ahead.
5. Each product belongs to a category, used to separate search results on the results page of product search (grouping product types).
6. Each product has collateral files that need to be uploaded/replaced when updated and displayed on product detail pages. Think white papers, brochures, etc.
7. The client needs to be able to manage the list of markets, applications and categories in a way that maintains data integrity. In other words, embedding JSON on a per record basis would not allow our client to manage markets/applications, etc. Say they delete a market, how would this be handled after a market has previously been assigned?
8. This must be as maintainable and reusable as possible.

 

I am of course not really (really not) a developer, but I think one way of doing it would be to build a (relatively?) simple asset that takes care of just the relationships.

For simplicity, I'll assume that every category (product, market and application) is an asset under a node (thread under a CS, article under a page). This custom asset would need to know the assetId of each node (and probably the type of asset it needs to list).

Now it is possible to make a list for each node, with all assets (of a type) that live under it, i.e. are its direct children. And it's possible to build an interface to connect these assets with each other.

For instance: a list of all markets with for each one a multiple select form, will allow you to add a selection of products and applications to every market. In the exact same way you could manage products and applications. This would be a very simple way of managing multiple categories.

The only thing this asset would do is make a table (or prob. tables) with assetIds that contains all relationships (regardless if you added a product to market, an application to a product etc.).

For displaying information you could use a macro or an SQL report that first looks up the assetIds of related assets (e.g. looks up all markets and all applications for a certain product) and then selects the information you want (description, keywords, files etc.) to display from the assetIds.

Similarly, you could build a search function, that finds all products that have (are related to) a certain application etc.

I can't say if this is a good solution; it would be easy for a client to manage the categories, but it may take more time and effort to build this than actually making it possible to have many-to-many relationships in Thingy :-)

Hope I at least sparked up the discussion.

 

Rogier | United Knowledge
www.unitedknowledge.nl · www.webgui-help.nl



Back to Top
Rate [
|
]
 
 
dionak
Rogier,

First, thanks for your thoughtful response and for contributing to the conversation. I had similar implementation thoughts initially, having previously reviewed the wiki code. The wiki is similar to what you propose as a solution. JT called this a 'complex asset' in times past. Now I believe the term is 'aspects'.

I had a very beneficial conversation with Colin earlier this week. We weighed the pros & cons of a custom product vs. custom code vs. a Collaboration System vs. Thingy. We decided that Thingy really should be able to do this given it's specs and existing functionality. During the call, I prototyped the implementation. Using Thingy, the implementation will require less custom code (better costs for our client and us), assuming we can overcome the short-comings of Thingy and create macros to handle the many-to-many relationship reporting. We may be able to do the many-to-many using macros. Still testing...

However, there are short-comings of Thingy that will need to be addressed to support what I need to do. First, I need support of multiple selections of values for a linked field. I'm currently looking for resources in the community to help remedy these limitations.

This is essentially a (insert need here) database. We are often doing database-driven features, take for example Midwest Heart's Doctor database search. Or in this case, a product search/management utility where products are not purchased online. My understanding is that this is why Thingy was created.

Since SQLForm has been deprecated and because Thingy still has some challenges, this type of use for WebGUI has been challenging for us. In addition, Thingy complicates the reporting effort. I heard a rumor there may be an Asset Report. Is this true? This would be great if it supports Thingy.

I'll let you know what works out. Perhaps we can get this needed functionality into core. We'll see.

Thanks again,

Diona


Back to Top
Rate [
|
]
 
 
rogier



I had a very beneficial conversation with Colin earlier this week. We weighed the pros & cons of a custom product vs. custom code vs. a Collaboration System vs. Thingy. We decided that Thingy really should be able to do this given it's specs and existing functionality. During the call, I prototyped the implementation. Using Thingy, the implementation will require less custom code (better costs for our client and us), assuming we can overcome the short-comings of Thingy and create macros to handle the many-to-many relationship reporting. We may be able to do the many-to-many using macros. Still testing...

However, there are short-comings of Thingy that will need to be addressed to support what I need to do. First, I need support of multiple selections of values for a linked field. I'm currently looking for resources in the community to help remedy these limitations.

In the discussion for this RFE JT mentioned allowing thingies to write to eachothers table. I think something like that could be a solution (but I'll stop making suggestions, what you need is way outside my expertise).



This is essentially a (insert need here) database. We are often doing database-driven features, take for example Midwest Heart's Doctor database search. Or in this case, a product search/management utility where products are not purchased online. My understanding is that this is why Thingy was created.

Since SQLForm has been deprecated and because Thingy still has some challenges, this type of use for WebGUI has been challenging for us. In addition, Thingy complicates the reporting effort. I heard a rumor there may be an Asset Report. Is this true? This would be great if it supports Thingy.

You mean our Exporter? For now it only makes a html table, csv or xls from a dataform or the user profile. It can be extended to report from other assets, but I don't know if it can be made more flexible in what it reports.

There was also talk of a specific Thingy report function; no idea what the plans are for that. I think it won't be made before WG8 though, because it probably doesn't require API changes?



I'll let you know what works out. Perhaps we can get this needed functionality into core. We'll see.

Thanks again,

Diona

If you find a solution, I'm sure I could make good use of it! If it can be added to the core, that would be awesome.

You're very welcome (even though I didn't help you much) and good luck,

 

Rogier | United Knowledge
www.unitedknowledge.nl · www.webgui-help.nl



Back to Top
Rate [
|
]
 
 
JT
Just for clarification:

What you're referring to is a "Composite Asset", which is an asset  
made up of multiple assets like Wiki Master + Wiki Page.

Aspect is something different. An aspect is basically a pluggable  
component which can be added to any asset to give it additional  
functionality.



Back to Top
Rate [
|
]
 
 
dionak
Ah, thanks for the clarification.


Back to Top
Rate [
|
]
 
 
    



© 2012 Plain Black Corporation | All Rights Reserved