Wednesday, October 6, 2010

Custom Views now support Template Criteria for User References and Date/DateTime fields

There are some pre-created views in iFreeTools CRM like My Open Leads, My Open Cases and My Pending Tasks which lists the records, based on the user who is currently logged-in and accessing the application, showing only the records owned by them in that view.

While one can created Custom Views providing specific user references, there was no way to create a view with such dynamic values referring to the currently logged-in user.

Similarly, while there are pre-created views like Due Today, Due Tomorrow (in Tasks module), which lists the records based on the when the view is getting accessed. Until now, it was not possible to create such views using the Custom Views in iFreeTools.

But now, we have now added support for using dynamic filtering criteria values in Custom Views, for User reference attributes and date, date-time attributes.

Dynamic User-reference values in Custom Views

While you still have options to choose specific user references, when adding Custom Views, you are now provided with an option to choose dynamic values, as shown in the image below..


Choosing the option adds the criteria as a template value - ${user}, referring to the currently logged in user..


This template criteria value will be replaced dynamically, when users access the Custom View.

Dynamic filtering for Date, DateTime fields using Custom Views

Until now we did not support date and date-time fields in Custom Views. This was due to certain limitations in the querying capabilities of Google App Engine. While the limitations remain, we have overcome them to enable you to create Custom Views providing dynamic criteria values for date, date-time fields.

You can now filter out records using on the following dynamic criteria values..
${today}, ${tomorrow},
${this_week}, ${last_week}, ${next_week},
${this_month}, ${last_month}, ${next_month},
${this_year}, ${last_year}, ${next_year}

as shown in the image below..

Here again, the template criteria value will be replaced dynamically, when users access the Custom View.

This date/date-time filtering feature in Custom Views internally uses indexes for querying the data. These indexes for database records are something like an index in books, helping you find the required records.

While new data will be automatically indexed, existing data has to be updated at least once, so that the records can be indexed automatically.

One can trigger indexing from the list views by selecting one or more records and then clicking on More Actions > Re-Index.

Hope you like the new template-criteria based Custom Views.

There are no upper limits on the number of Custom Views one can add to our GAE(Google App Engine)-hosted Free CRM for Google Apps and to our GAE-hosted Online Database App Builder. So, feel free to add as many views as you would like and do send in your suggestions on how you think the apps can be enhanced to make it even more useful.

Would you like to have iFreeTools deployed onto your Google App Engine account? Yes, we offer custom deployment options, starting at $99/year for upto 25 users, enabling you to use the free quota (1 GB of storage and 2000 emails/day) offered by Google and to buy more resources as per requirements, directly from Google. Contact raj@sahasvat.com for more details.

2 comments:

  1. How to obtain this?
    date < ${today}
    date >= ${today}

    ReplyDelete
    Replies
    1. Hi,

      There are some limitations in enabling such a filtering in the default Google App Engine's datastore and hence we do not yet support this filtering. But, you can still enable the required filtering by using a Boolean (yes/no) formula field, may be called "Upcoming", with the formula as

      val("Your Date Field") >= today()

      Once this formula field is configured, you create views based on this field with criteria as Upcoming : No and another one for Upcoming : Yes.

      Thus we have now converted a greater-than / less-than query ("in-equality" query) to a == query ("equality" query), with which Google App Engine's default datastore has no issues/limitations.

      You will have to re-index the records from ${yesterday}, so that this formula field maintains the correct value. This can be done either :

      (i) manually, by re-indexing records within a custom view listing records from ${yesterday} (only option in the free version), or

      (ii) automated using scheduled workflows (possible in paid versions).

      We are also planning to support Google Cloud SQL (does not have free quotas, like Google App Engine), which will not have such limitations in queries.

      Feel free to get in touch in case you have any further queries or if you need assistance.

      Thanks & Regards,
      Raj

      Delete