Syncplicity Support

Search our knowledgebase to get the help you need, today

Follow

Metadata conjunctions

To filter items by metadata, the target platform must support metadata.

  • Rest API | If the target platform does not support metadata, the filter or text definition for the given connection will be ignored
  • User-Interface | If the target platform does not support metadata, the "Metadata Content" custom filter will be disabled

Not Supported

  • Filtering metadata is not supported when using the Metadata Import function
  • Any metadata content filters configured with Metadata Import will be ignored

User-Interface - Configuration

To filter metadata content, both the Advanced - Filtering and Advanced - Scripting options need to be enabled

Advanced - Metadata Mapping option should not be enabled

This example will excluded the item that is associated with value "Doe1" or "Doe2" for the property value LName metadata column on the Source platform.

Format: 

[Property]="Text 1" OR [Property]="Text 2"

[Property]=Numeric Value 1 AND [Property]=Numeric Value 2

Metadata Mapping - Identify the Columns to Filter on

  • Populate the property name value that corresponds with metadata content column 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

{
"transfer" : {
"metadata_map": {
                "schemas": [
                    {
                        "mappings": [
                            {
                                "source": {
                                    "property": {
                                        "name": "LName",
                                        "type": "string"
                                    }
                                },
                                "destination": {
                                    "property": {
                                        "name": "LName",
                                        "type": "string"
                                    }
                                }
                            }
                        ]
                    }
                ]
            }
}
}

Rest API - Configuration

For metadata filtering, the type attribute can use filter_metadata or metadata. Both configurations work the same. 

In addition, metadata filtering rules (rules block) can be defined using either a filter block or text attribute. Filters (filter blocks) include name, op, and value attributes, name is the metadata field name, op is one of the operators defined in the table below, and value is the metadata value used for the comparison. All three attributes are required, even with the empty and not_empty operators. When empty and not_empty operators are used, ensure to configure the value to represent an empty state (e.g. "value": ""). 

Text (text) values must be in a string format with quotes around the value escaped and brackets around the field name (e.g. "[ProtectionLevel]=\"Sensitive\""). Numeric values do not need to be contained in quotes. 

Multiple metadata filters may be joined by AND or OR conjunction clauses. There are two ways to define conjunctions; filters or text. These methods are based on the filter and text methods described above.

Operator (filter:op)

Description

Equivalent Text Operators

Filter Example

Text Example

eq

equals

=
"filter": { 
  "name": "ProtectionLevel", 
"op": "eq",
  "value": "Sensitive"
}
"[ProtectionLevel]=\"Sensitive\""
ne

not equals

<> or !=
"filter": { 
  "name": "ProtectionLevel", 
"op": "ne",
  "value": "Sensitive"
}
"[ProtectionLevel]!=\"Sensitive\""
lt

less than

<
"filter": { 
  "name": "ProtectionLevel", 
"op": "lt",
  "value": 100
}
"[ProtectionLevel]<100"
le

less than or equal to

<=
"filter": {
  "name": "ProtectionLevel", 
  "op": "le",
  "value": 100
}
"[ProtectionLevel]<=100"
gt

greater than

>
"filter": {
  "name": "ProtectionLevel", 
  "op": "gt",
  "value": 100
}
"[ProtectionLevel]>100"
ge

greater than or equal to

>=
"filter": {
  "name": "ProtectionLevel", 
  "op": "ge",
  "value": 100
}
"[ProtectionLevel]>=100"
starts_with

starts with

= with * appended to the end of the value

"filter": {
  "name": "Author", 
  "op": "starts_with",
  "value": "John"
}
"text": "[Author]=\"John*\""
not_starts_with

does not start with

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_starts_with",
  "value": "John"
}
"text": "[Author]!=\"John*\""
ends_with

ends with

= with * prepended to the beginning of the value

"filter": {
  "name": "Author", 
  "op": "ends_with",
  "value": "Anderson"
}
"text": "[Author]=\"*Anderson\""
not_ends_with

does not end with

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_ends_with",
  "value": "Anderson"
}
"text": "[Author]!=\"*Anderson\""
contains

contains

=
"filter": {
  "name": "Author", 
  "op": "contains",
  "value": "John"
}
"text": "[Author]=\"*John*\""
not_contains

does not contain

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_contains",
  "value": "John"
}
"text": "[Author]!=\"*John*\""
in

includes all the values

IN
"filter": {
  "name": "ProtectionLevel", 
  "op": "in",
  "value": ["Not Sensitive"]
}
"text": "[ProtectionLevel] IN (\"Not Sensitive\")"
not_in

does not include all the values

NOT IN
"filter": {
  "name": "ProtectionLevel", 
  "op": "not_in",
  "value": ["Sensitive", "Highly Sensitive"]
}
"text": "[ProtectionLevel] NOT IN (\"Sensitive\", \"Highly Sensitive\")"
empty

the value is empty

<>"*" or !="*"

"filter": {
  "name": "Author", 
  "op": "empty",
  "value": ""
}
"text": "[Author]!=\"*\""
not_empty

the value is not empty

="*" 
"filter": {
  "name": "Author", 
  "op": "not_empty",
  "value": ""
}
"text": "[Author]=\"*\""

Example 1

The following example will include any files on the source that have a metadata field named "ProtectionLevel" with value of 50 or 100.

{
    ...
    "transfer": {
        ...
        "filter": {
            "source": [{
                "action": "include",
                "rules": [{
                    "filter": {
                        "conjunction": "or",
                        "filters": [{
                                "name": "ProtectionLevel",
                                "op": "eq",
                                "value": 50
                            },{
                                "name": "ProtectionLevel",
                                "op": "eq",
                                "value": 100
                            }]
                    },
                    "type": "filter_metadata"                  
                }],
                "type": "filter_rule"
            }]
        }
    }
    ...
}

Example 2

The following example will include any files on the source that have a metadata field named "ProtectionLevel" with value of 50 and "Author" equal to "John".

{
    ...
    "transfer": {
        ...
        "filter": {
            "source": [{
                "action": "include",
                "rules": [{
                    "rules": [{
                        "text": "[ProtectionLevel]=50 AND [Author]=\"John\"",
                        "type": "metadata"
                }],
                "type": "filter_rule"
            }]
        }
    }
    ...
}

Powered by Zendesk