> For the complete documentation index, see [llms.txt](https://docs.roboteasy.tech/studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboteasy.tech/studio/geral-1/rotinas.md).

# Rotinas

As rotinas são uma forma de organizar o código do robô em grupos, de forma que fique mais fácil a manutenção e o entendimento do que cada grupo faz.

Elas ficam no canto inferior esquerdo da tela, logo abaixo da lista de objetos:

| <img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FffKUN8mX8RtWcHqGYQGO%2Fimage.png?alt=media&amp;token=d6db0066-2cc7-40e8-8193-c25deb8dface" alt="" data-size="original"> | <ol><li>Modo de Visualização de Rotinas</li><li>Importar Rotinas Externas</li><li>Adicionar uma nova Rotina</li><li>Exclui uma Rotina Selecionada</li><li>Rotina selecionada (fica com o nome em azul).</li><li>Mais opções</li></ol>                                                                                            |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FuOsc134SU7H8qoT1O9Q0%2Fimage.png?alt=media&amp;token=43191c74-914b-45ad-ba63-4b4b0a7e6ecf" alt="" data-size="original"> | <p></p><p>Em mais opções:  </p><ol><li><strong>Editar</strong>: edita a rotina selecionada.</li><li><strong>Adicionar subrotina</strong>: adiciona uma subrotina a rotina selecionada. </li><li><strong>Exportar</strong>: exporta a rotina selecionada </li><li><strong>Excluir</strong>: exclui a rotina selecionada</li></ol> |

## Adicionando uma Rotina

Veja como adicionar e preencher corretamente as informações de uma rotina:

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FfT8k28ECbYiny0Q2w4ud%2Fimage.png?alt=media&amp;token=a60ffa39-d5ca-4fc3-820f-8251e8eae071" alt=""><figcaption></figcaption></figure>

1. É o identificador da rotina, não pode ter caracteres especiais e espaços.
2. O título é um identificador amigavel, pode conter caracteres especiais e espaços.
3. É o tipo de retorno da rotina, caso ela possua um.
4. Marcar caso o retorno da rotina seja uma lista.
5. Marcar caso o retorno da rotina seja uma tabela de dados.
6. Descrição é utlizada para anotar o que a rotina faz.
7. Serve para adicionar parâmetros de entrada para rotina.
8. Serve para adicionar parâmetros de saida para rotina.
9. Salva a as alterações.

### Inclusão de Parâmetros

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2Fqn44GEtHdPlQMnsmuR7j%2Fimage.png?alt=media&amp;token=9e84ef0f-ef79-4c6c-b721-ab085cefdfd6" alt=""><figcaption></figcaption></figure>

1. Adiciona um parâmetro.
2. Nome de identificação do parâmetro. Não pode conter espaços e/ou caracteres especiais;
3. Tipo do parâmetro que deseja receber ao chamar a rotina;
4. Valor padrão para um parâmetro. Quando utilizado, deve ficar em último na listagem e quando chamado na rotina, [não é obrigatório a passar esse parâmetro;](#user-content-fn-1)[^1]
5. Marcar caso o parâmetro seja uma tabela de dados.
6. Marcar caso o parâmetro seja uma lista.
7. Marcar caso o parâmetro seja obrigatório.
8. Exclui o parâmetro.
9. Os parâmetros podem ser reordenados

{% hint style="info" %}
As configurações para os parâmetros de saída são iguais ao de entrada, exceto pelo check "Obrigatório".
{% endhint %}

## Numeração de Rotinas e Sub-Rotinas

Veja como numerar e reordenar as rotinas e sub-rotinas

### Configuração:

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FbgJSOGvJFsCi60IgO31n%2Fimage.png?alt=media&amp;token=5f918e1a-e6c4-4df9-b85b-99168fff78c8" alt=""><figcaption><p>Aba IDE -> Configurações</p></figcaption></figure>

| <img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2F44w4Hr4ndIQEcFNr6Uld%2Fimage.png?alt=media&amp;token=6e728f2f-8844-4975-ab35-124359c3f916" alt="" data-size="original"> | <p>As rotinas sempre serão indicadas por números inteiros e as sub-rotinas, por níveis. </p><p>No caso da imagem, o item 1. possui os níveis 1.1 e 1.2 </p> |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |

### Reordenar Rotinas e Sub-Rotinas

Para reordenar as rotinas, basta arrastar a rotina ou sub-rotina para onde deseja&#x20;

<div align="center" data-full-width="true"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FSaOMVgWTwMfl2xUzW6FL%2F2025-01-22%2012-45-07.gif?alt=media&amp;token=a9809c1f-292f-4de7-87de-bd3202b884c0" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Não é possível fazer com que uma rotina se torne uma sub-rotina e vice-versa.
{% endhint %}

{% hint style="warning" %}
As sub-rotinas da rotina 0- Inicio não podem ser movidas para outras, da mesma forma que sub-rotinas de outras rotinas não podem ser movidas para a Inicio.&#x20;
{% endhint %}

## Utilizando Rotinas

* Para utilzar uma rotina ou subrotina criada basta utilizar os objetos [Chamar Rotina](/studio/geral-1/objetos/blocos-de-comando/chamar-rotina.md) ou [Chamar Rotina com Validação](/studio/geral-1/objetos/blocos-de-comando/chamar-rotina-com-validacao.md).

## Importar e Exportar Rotinas

As opções de Importar e exportar rotinas servem para reutilizar as rotinas entre projetos.

**PASSO 1**: Exportar uma rotina, a exportação cria um arquivo do tipo "FunctionRobotEasy".

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FqJW2gxSMGRftb32Ub2XY%2FimportarRotina-ezgif.com-optimize.gif?alt=media&amp;token=e1af1e9d-f2a7-4ee1-9e15-98d93e156ef7" alt=""><figcaption><p>Exportanto a rotina</p></figcaption></figure>

**PASSO 2:** Abrir outro projeto, e importar a rotina exportada anteriormente através do botão de importar rotina.

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2Fy0aTypbfs1iUNWXT4JMr%2FexportarRotina-ezgif.com-optimize.gif?alt=media&amp;token=3d02e788-08a2-430a-8ad7-543233db0eb1" alt=""><figcaption><p>Importando a rotina</p></figcaption></figure>

[^1]: Não entendi isso
