# Is Not Empty

### Overview

The **Is Not Empty Filter Component** checks whether a given input field contains data. If the field is not empty, the message is passed through the `notEmpty` port; otherwise, it is routed to `empty`.

### Usage

This component is used to validate whether a text, number, or boolean value is present before proceeding with further processing in workflows.

#### Properties

| Property     | Type  | Description                                     |
| ------------ | ----- | ----------------------------------------------- |
| `sourceData` | `any` | The data field to be checked for non-emptiness. |

#### Input Ports

| Port | Description                        |
| ---- | ---------------------------------- |
| `in` | Accepts input data for validation. |

#### Output Ports

| Port       | Description                                      |
| ---------- | ------------------------------------------------ |
| `notEmpty` | Emits the message if `sourceData` contains data. |
| `empty`    | Emits the message if `sourceData` is empty.      |

#### Processing Logic

1. **Receives Input Data**:
   * Accepts a dataset (`sourceData`) from the input.
2. **Checks for Non-Empty Condition**:
   * If `sourceData` is a number or boolean, it is considered **not empty**.
   * If `sourceData` is an empty string, array, object, or `null`, it is considered **empty**.
3. **Routes the Message**:
   * If `sourceData` contains data, the message is sent to the `notEmpty` port.
   * Otherwise, it is sent to the `empty` port.

#### Output Data Schema

| Property     | Type      | Description                                             |
| ------------ | --------- | ------------------------------------------------------- |
| `sourceData` | `any`     | The original data that was checked.                     |
| `result`     | `boolean` | `true` if `sourceData` is not empty, otherwise `false`. |

### Notes

* **Supports Various Data Types**: Works with text, numbers, booleans, arrays, and objects.
* **Automatically Handles Numbers & Booleans**: These values are never considered empty.
* **Ideal for Conditional Filtering**: Useful in workflows that need to check for data presence before proceeding.

This component is essential for workflows that require validation of data presence before further processing.
