Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

aligncenter

...

On This Page

Table of Contents

Overview

To filter items by metadata, the target platform must support metadata. If the target platform does not support metadata, the "Metadata Content" custom filter will be disabled.

Note

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

To filter metadata content, both the Filtering and Scripting options need to be enabled on the Advanced setting page. The Metadata Mapping option should not be enabled.

...

The following example excludes the item that is associated with value "Doe1" for the property value LName metadata column on the Source platform.

Format: 

[Property]="Text"

[Property]=Numeric Value

...

Identify the Columns to Filter on

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

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

...

Filter Using REST API

If the target platform does not support metadata, the filter or text definition for the given connection will be ignored.

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. 

Attributes

Operator (filter:op)

Description

Equivalent Text Operators

Filter Example

Text Example

Code Block
eq

equals

Code Block
=
Code Block
"filter": { 
  "name": "ProtectionLevel", 
  "op": "eq", 
  "value": "Sensitive" 
}

"[ProtectionLevel]=\"Sensitive\""

Code Block
ne

not equals

Code Block
<> or !=
Code Block
"filter": { 
  "name": "ProtectionLevel", 
  "op": "ne", 
  "value": "Sensitive" 
}

"[ProtectionLevel]!=\"Sensitive\""

Code Block
lt

less than

Code Block
<
Code Block
"filter": { 
  "name": "ProtectionLevel", 
  "op": "lt", 
  "value": 100 
}

"[ProtectionLevel]<100"

Code Block
le

less than or equal to

Code Block
<=

"filter": {
  "name": "ProtectionLevel", 
  "op": "le",
  "value": 100
}

"[ProtectionLevel]<=100"

Code Block
gt

greater than

Code Block
>

"filter": {
  "name": "ProtectionLevel", 
  "op": "gt",
  "value": 100
}

"[ProtectionLevel]>100"

Code Block
ge

greater than or equal to

Code Block
>=

"filter": {
  "name": "ProtectionLevel", 
  "op": "ge",
  "value": 100
}

"[ProtectionLevel]>=100"

Code Block
starts_with

starts with

= with * appended to the end of the value

"filter": {
  "name": "Author", 
  "op": "starts_with",
  "value": "John"
}

"text": "[Author]=\"John*\""

Code Block
not_starts_with

does not start with

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_starts_with",
  "value": "John"
}

"text": "[Author]!=\"John*\""

Code Block
ends_with

ends with

= with * prepended to the beginning of the value

"filter": {
  "name": "Author", 
  "op": "ends_with",
  "value": "Anderson"
}

"text": "[Author]=\"*Anderson\""

Code Block
not_ends_with

does not end with

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_ends_with",
  "value": "Anderson"
}

"text": "[Author]!=\"*Anderson\""

Code Block
contains

contains

Code Block
=

"filter": {
  "name": "Author", 
  "op": "contains",
  "value": "John"
}

"text": "[Author]=\"*John*\""

Code Block
not_contains

does not contain

<> or !=

"filter": {
  "name": "Author", 
  "op": "not_contains",
  "value": "John"
}

"text": "[Author]!=\"*John*\""

Code Block
in

includes all the values

Code Block
IN

"filter": {
  "name": "ProtectionLevel", 
  "op": "in",
  "value": ["Not Sensitive"]
}

"text": "[ProtectionLevel] IN (\"Not Sensitive\")"

Code Block
not_in

does not include all the values

Code Block
NOT IN

"filter": {
  "name": "ProtectionLevel", 
  "op": "not_in",
  "value": ["Sensitive", "Highly Sensitive"]
}

"text": "[ProtectionLevel] NOT IN (\"Sensitive\", \"Highly Sensitive\")"

Code Block
empty

the value is empty

<>"*" or !="*"

"filter": {
  "name": "Author", 
  "op": "empty",
  "value": ""
}

"text": "[Author]!=\"*\""

Code Block
not_empty

the value is not empty

Code Block
="*" 

"filter": {
  "name": "Author", 
  "op": "not_empty",
  "value": ""
}

"text": "[Author]=\"*\""


Example 1

The following example will exclude any files on the source from being transferred to the destination that have a metadata field named "ProtectionLevel" with value "Sensitive.”

Code Block
{
  "name": "Metadata Content Filter Include Value Equal To [Value]",
  "kind": "transfer",
  "transfer": {
    "audit_level": "trace",
    "transfer_type": "copy",
    "source": {
        "connection": {"id": "{{source_cloud_connection}}"},
			"target": {
				"path": "/Source Folder"
    	}
	},
	"destination": {
    	"connection": {"id": "{{destination_cloud_connection}}"},
			"target": {
				"path": "/Destination Folder"
    	}
  },
  "filter": {
	"source": [{
      "action": "include",
    	"rules": [{
        	"filter": {
        		"name": "ProtectionLevel",
        		"op": "eq",
        		"value": "Sensitive"
			},
		"type": "filter_metadata"
		}],
		"type": "filter_rule"
        }
      ]
    }
  },
    "schedule": {
        "mode": "manual"
    },
    "stop_policy": {
        "on_success": 5,
        "on_failure": 5,
        "on_execute": 25
    },
    "category": {
      "name": "Report Name"
    }
}

Example 2

The following example results in the same filtering as Example 1. Here the filter block is replaced by the equivalent text attribute.

Code Block
{
	...
	"transfer": {
		...
		"filter": {
			"source": [{
					"action": "exclude",
					"rules": [{
						"text": "[ProtectionLevel]=\"Sensitive\"",
						"type": "filter_metadata"					
					}],
					"type": "filter_rule"
				}
			]
		}
	}
	...
}