Zulu Filtering

From 360Works Product Documentation Wiki
Jump to navigation Jump to search
Zulu  
Getting Setup with Zulu: InstallingInstalling as ServletInstalling the Plugin VersionZulu Google SetupIntegrating your file • ‎Zulu Sync • ‎Serving the Sample FileRegistrationInstalling Zulu Manually
About Zulu The big pictureLimitationsRequirementsDifferences between servlet and pluginHostingSecurity
Troubleshooting TroubleshootingTesting ConfigurationsUmlautsURLs Used By ZuluUpdatingLogs
Google Sync with Google • ‎Sharing a Google CalendarGoogle ContactsGoogle ResetAppointment Slots
Calendars Repeating EventsDate Ranges • ‎Read Only CalendarsDeleting EventsInvitationsSwitching CalendarsMultiple CalendarsPropertiesSee it in iCalMy site
Contacts Contact GroupsContacts IntegrationsRelated Contact FieldsAddress BookZulu Phone Fax Email
Does Zulu work with... AndroidBlackberryMultiple MachinesOutlookMobileMeiPhone
Extra Credit Adding FieldsTime ZonesDuplicating RecordsCalc FieldsAccess PrivledgesRefreshFilteringPost Editing ScriptsAlarms and notifications

Calendars

Multiple Calendars Based on the Same FileMaker Table: Filtering

Overview

Using "Filtering" you can have an individual FileMaker table show up as multiple calendars in iCal: or have only a subset of a table show up in iCal.

Each "calendar" in iCal is represented by a record in the ZuluCalendarList table you added to your FileMaker file during integration. By adding a value to the zulu_filterKey and zulu_filterValue fields in this table, you can have that calendar "find" just a subset of FileMaker records to display.

You can see an overview of filtering in action here: Zulu Introduction: Demonstrating Filtering

Adding a Filter to an Existing Calendar

1. Navigate to the ZuluCalendarList layout in your FileMaker file and find the calendar record you wish to filter. Enter a field name into zulu_filterKey (you do not need to include the table name, for example enter Status, not Events::Status). And enter a filter criteria into zulu_filterValue: for example you might enter "Urgent".
2. Map this field (Status in our example) on the "Filtering" tab of your Field Mapping layout (the one where you have our Required 1 and Required 2 tabs). This field should not have an object name.
2. You may also want to change the name of your calendar to reflect this filter. Edit the value in zulu_displayName, making it something like "Events - Urgent".
3. That's it. The next time you refresh your calendar in iCal or on your phone you'll see just those events where the field "status" contains "Urgent".
Note: you don't have to re-publish if you're just adding new calendars. You only need to republish if you've changed field mappings.

Remember that this is a "contains" search, so in our example above it will filter for events where the event's status contains "Urgent".

If you want to have a calendar for items where there is no status, enter a value for the filter field in zulu_filterKey, but enter "=" (without quotes) into zulu_filterValue.

Creating Additional Filtered Calendars: Duplicating Calendars

You can duplicate existing calendars by duplicating their ZuluCalendarList records and just changing their filter criteria. Just be aware of a couple things:

When you duplicate the ZuluCalendarList record make sure you make up a UUID for the new calendar: just type in anything, making sure it is unique.
Be sure to change the values for zulu_filterKey, zulu_filterValue, and zulu_displayName for each calendar you create. You can change the colors too but it is often easier to change colors in iCal.

That's it. You'll see one new calendar for each record in ZuluCalendarList next time you refresh your calendar in iCal.

Specify Which Users Can See Which Calendars

By using record level access privileges, you can limit which calendars different users can see.

In your ZuluCalendarList layout, make sure the zulu_filterValue matches the account name for that calendar.


ZuluFilterValueAccountName.png


Now, modify the record level access privileges so that when that account tries to access the database, it can only see the calendar record that matches it's account name.

Here we create a Zulu privilege set, and set it so it can only access records in ZuluCalendarList when zulu_filterValue = Get (AccountName)


ZuluPrivilegeSet.png


Switching an event from Calendar to Calendar in iCal

Learn more about this in Switching Calendars.

Filtering on Different Fields.

Note that you don't have to have all your calendars filtering on the same field. You could have several calendars filtering on Resource (the production studio in which an event is scheduled, for example). Then you could create an additional calendar filtering on "Status" showing you just the events that are marked "Rush".

Additional Calendars from Different FileMaker Tables.

You can also publish more than one table in the same FileMaker file. This is pretty simple...
1. Create a new blank layout based on the table you wish to publish. Name it whatever you'd like the calendar to be named in iCal, though you can change this later.
2. Follow the integration instructions from step 5. "Mapping Fields" onward. Ending with running the "Publish Calendar" script from the new layout you created.
3. That's it. Now when you refresh your calendar in iCal you'll see a new calendar based on your new table. (You might want to read some warnings here about switching events between calendars based on different tables: switching calendars.)

Additional Calendars from Different FileMaker Files.

Rather than import the Zulu scripts and tables into separate files. Use a single file to hold the Zulu scripts and ZuluCalendarList table: then create new table occurrences in that file for each calendar you wish to publish from another file, following the directions for "Additional Calendars from Different FileMaker Tables" above.

Going further

Check out this video demonstrating how you can use auto-enter calcs to preserve values that might otherwise be edited by filters. This technique can also be used to make parts of Zulu calendar records uneditable without throwing errors in iCal.

Contacts

Note: Zulu's Contact Sync is Back in Beta

Regretfully, we've just never been able to get the contact sync in Zulu to be reliable with Google Contacts. Some of this is that Google Contacts is changing and some if that contacts are inherently more complicated than calendar events (the calendar sync in Zulu is rock solid). So until we can get this rock solid we're demoting the contact sync to Beta and no longer supporting it.

We'll continue playing with this here but won't be able to help customers try and get it working: it just isn't reliable enough. At this point we don't have an ETA as to when this feature may be available again, if ever. Believe me, we wanted this to work as bad as you did. Dec 27, 2012.

Showing only a subset of your contacts.

Overview

You can use a filter in Zulu Contacts to show only a subset of your contacts. Filters act like a find request, syncing only the matching records to Google.

Note that you can also segment your contacts using Groups, and restrict which contacts are synced using Access Privileges, so filters are only one tool among many as you're deciding which contacts Zulu should sync to Google.

Using Filters

Navigate to the ZuluContactConfig layout in your file (or in Zulu's sample contacts file) and you'll see the two fields used for filtering:

zulu_FilterKey
zulu_FIlterValue

In zulu_FilterKey, enter the name of the field you'd like to filter by. Don't include the table occurrence name. For example you could enter AddressState1. In zulu_FilterValue, enter the value you'd like to use for this filter. For example: CA. Set up this way in our sample file, Zulu will only sync those records from California. You can use this, for example, to only sync active contacts.

Note. Do not create additional ZuluContactConfig records for the same contacts table, the way you create additional ZuluCalendarList records in calendars. There should be only one ZuluContactConfig record in your file, and only one filter. Segmenting your contacts further should be done using Groups or Access Privileges.