
The DFC3.2 provides a REST style API. The original API manual is available here. Many things have changed since this manual was released including the new JavaScript engine, but the function names are the same as the Cmd names in this manual. A new manual is in the works and we will post it soon.
The DFC3 allows you to program your business logic in JavaScript. Using metadata fields (a.k.a tags) for your information, you can perform stateful operations on the assets in your system.
The JavaScript engine triggers off of DFC Events which are logged into the event log. Since almost every operation in the DFC has an associated event, you can trigger off anything that happens in the system. To select an event to trigger on, your write a filter in plain english that describes the event you are waiting for. The filter language is detailed in the next section.
Once your event happens, it triggers your JavaScript workflow. Here is an example of a simple workflow:
| Filter: | user logged in to dfc. |
| Action: |
SendEmail(Session, "myemail@mymail.com", "User logged in", "The user " + User + " logged into the DFC"); |
In this simple example the system sends an email to myemail@mymail.com anytime anyone logs into the DFC3.
The list of JavaScript variables available to you when your workflow runs are:
For a complete example of workflow programming, look at the source code for Track Your Messages application.
The table below shows all words avaialable in the filter grammar.
|
|
|
|
|
|
|
Only certain combinations of words are meaningful as filters. Here are the terms in context with the DFC3 Event that they translate to when filtering. Note that DFC3 Events are the same events you report on in the event log report.
| Subject | Verb | Related Events | Examples |
|---|---|---|---|
| File | put | Upload, FileMoved | file put in folder "Root:Documents". |
| File | uploaded | Upload | file uploaded to dfc. file uploaded to folder "Root:Documents". |
| File | copied | Upload | file copied to folder "Root:Documents". |
| File | moved | FileMoved | file moved in dfc. file moved to folder "Root:Documents". |
| File | deleted | DeleteFile | file deleted from folder "Root:Documents". |
| File | deleted | DeleteFile | file deleted from folder "Root:Documents". |
| File | reviewed | Reviewed | file reviewed in folder "Root:Documents". |
| File | signed | Signed | file signed in folder "Root:Documents". |
| File | initialed | Initialed | file initialed in folder "Root:Documents". |
| File | altered | MetadataChanged | file altered in folder "Root:Documents". |
| Folder | created | FolderCreated | folder created in dfc. |
| Folder | created | FolderCreated | folder created in dfc. |
| Folder | moved | FolderMoved | folder moved in dfc. folder moved under folder "Root:Documents". |
Form | submitted | FormSubmitted, HTML | form submitted to folder "Root:Documents". |
| User | logged in | Login | user logged in to dfc. |
| User | logged out | Logout | user logged out of dfc. |
| User | created | UserCreated | user created in dfc. |
| User | deleted | UserDeleted | user deleted from dfc. |
The qualifer terms are used for further filtering the events. Note that using qualifier terms is many times faster than using Javascript for filtering on metadata values.
| Qualifer | Example | Notes |
|---|---|---|
| filetype | file uploaded to folder "Root:Documents" with filetype = "application/pdf". | The file type is checked against the full mime type name in the database. |
| field |
file uploaded to folder "Root:Documents" with field "Author" = "John Doe". file uploaded to folder "Root:Documents" with field "Author" like "john". user logged into dfc with field "email" = "dent@swcp.com". |
For files, the fields are the metadata fields. For users the fields are email, first name, middle name, last name, address, address 2, phone number, city, state, and zip. |
| date |
file uploaded to folder "Root:Documents" with date = "09/24/2007". file uploaded to folder "Root:Documents" with date between "09/24/2007" and "10/01/2007". |