Zulu - Filtering

From 360Works Product Documentation Wiki
Revision as of 20:26, 13 January 2019 by Martin (Talk | contribs)

Jump to: navigation, search

Contents

Overview

Filtering lets you limit the records that are synced to a calendar based on search criteria, or a day range. This will lets you have multiple calendars that do not share events. A good example of this is having a calendar for each employee, and each employees calendars only show the events that belong to them.

Each calendar in your calendar application is represented by a record in the ZuluCalendarList table. To see more about how the calendar records work, see: [[]]

Filtering By Value

Consider the following calendar record:
ZuluCalendarFilteringExample.png

To get the events that belong to this calendar, Zulu will do the following:

  • Go to the "ZuluSampleEvents" layout
  • Search the "Status" field for the value "Urgent"

The resultant found set are the events that Zulu will sync for this calendar.

  • Also, events that are created in calendar application will be inserted into FileMaker with the appropriate filterKey and filterValue values. For example, if this calendar were configured with Apple Calendar, and a user inserted an event into this Apple Calendar calendar, it would be inserted into FileMaker with "Urgent" in the "Status" field.

Filtering By Day Range

Consider the following calendar record:
ZuluCalendarFilterDayRange.png

To get the events that belong to this calendar, Zulu will do the following:

  • Go to the "ZuluSampleEvents" layout
  • Search for records that have a Start Date between 30 days in the past, and 60 days in the future. This is a dynamic search criteria, and will advance the search values as the current date advances.
    • For example, if the current date was 1/30/2019, Zulu would search the Start Date field for "1/1/2019...3/31/2019". On the next day, 1/31/2019, Zulu would change the search criteria to "1/2/2019...4/1/2019". Records that started on 1/1/2019 would be deleted from your calendar application, and records that started on 4/1/2019 would be added.

The resultant found set are the events that Zulu will sync for this calendar.

Note: Day Range Filtering is a one way operation from FileMaker to your calendar application. If you have year old events in your calendar application, then you apply this filter, the events will be removed from the calendar application. However these events will persist in FileMaker. Zulu never deletes records from FileMaker, but it will delete records from your calendar application.

Filtering By Record Level Access Privileges

When you set up a sync configuration or add an account to Apple Calendar, you provide a FileMaker account in the process. Zulu will always use this FileMaker account when querying FileMaker for calendar and event records. The benefit of this is that Zulu will obey the FileMaker Record Level Access Privileges. So you can filter the event records based on FileMaker privileges, and records the account does not have access to will not be pushed to the calendar application.

You can see more about Record Level Access Privileges here: FileMaker Record Level Access Privileges

Common Examples And Best Practices

Filtering Calendars By FileMaker Account

The easiest way to accomplish this, is to use Record Level Access Privileges on the the ZuluCalendarList table, so that only a user can only see the calendar that belongs to them. This takes advantage of the order that events are fetched:

  • First, Zulu queries FileMaker for which calendars it should sync.
  • Then, it queries for the events that belong to each of the calendars returned.

If a calendar is not returned by the first calendar query, the calendar will not be synced, and its events will not be fetched. You may have business logic that requires a more complex setup, but this example is the bare minimum that you need.

Here are the basic configuration details of this privilege set:

The privilege set will need custom privileges for records. Also, be sure that "Access via XML Web Publishing" is also checked while you are here ZuluCalendarUserPrivilegeSet.png

Limited record "View" privileges are needed for the ZuluCalendarList table: ZuluCalendarUserRecordPrivileges.png

Set the privilege calculation to:

zulu_filterValue = Get(AccountName)

ZuluCalendarUserViewPrivilegeCalc.png

Personal tools
Namespaces

Variants
Actions
Plug-in Products
Other Products
Navigation
Toolbox