# Naming Convention

## Flow Elements

{% hint style="info" %}
Use descriptive naming. Name will show to the user when an error occurs, and helps to faster troubleshoot any issues.
{% endhint %}

![](/files/-MK0ubzdkDMPMEUpFPP8)

## Variables

It is very important that all flow developers adhere to naming convention explained below. This standardization helps to easily identify what type of a variable you are using.

| Variable Type                    | Example                              |
| -------------------------------- | ------------------------------------ |
| Tables                           | CustomerOrderTbl, WorkOrderTbl       |
| Records                          | CustomerOrderRec, WorkOrderRec       |
| Table Columns                    | Table(PartNo, Description, UoM)      |
| Fragment Output Target Variables | OutCreatePoLineRec, OutDeleteLineRec |

{% hint style="success" %}
**DO:** Follow this naming standard when naming variables.

* Variable names should be in **Pascal Case**. (e.g. CustomerOrderTbl)
* Variable names should be readable and meaningful.
* Name datasets/tables with suffix "**Tbl**".
* Name records with suffix "**Rec**".
* Name fragment output target variable in a flow with prefix "**Out**" and suffix "**Rec**".
* Table column names should be in Camel Case.
  {% endhint %}

{% hint style="danger" %}
**DO NOT:** Things to avoid when defining variables:

* Do not use variable names such as "var1", "CusoTbl" which are not readable and descriptive.
* Do not end the variable name with underscore (PL/SQL style), this will not work for records in Flow which are used in backend Oracle code. This will be fixed in newer releases but avoid anyway, for readability.
* **Avoid using variables with the same ID in WHERE conditions.** \
  For example: lets say you have a table called "PartNoTbl" with columns "PartNo" and "Description". And you have a user input variable which is also "PartNo". When you want to get the description of the part no entered by the user you need to write a statement as follows.

  * First(PartNoTbl where PartNo = PartNo).Description

  In this case, flow will return the description of the first part no on the table instead of Part No you selected.&#x20;

  Thus, how the PartNoTbl columns should have being defined is "Id" and "Description" which will work fine in the following statement.

  * First(PartNoTbl where Id = PartNo).Description
    {% endhint %}

## Menus

Always align menu names with the menu **Title**. Keep all menus under one folder in the Flow Studio folder structure. Think through the content in each menu together with the role setup.

![](/files/-MJmYv9lks14WRz1e3Xn)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.novacura.com/flow-development-guidelines/getting-started/naming-convention.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
