# Recomendações para a criação de cenários comerciais

Ao desenvolver cenários comerciais na plataforma Sherpa RPA, deve-se seguir os seguintes requisitos e recomendações:

1. **Garantir operação ininterrupta.**

O cenário deve ser projetado para funcionar 24 horas por dia sem falhas e interrupções, portanto, todos os blocos devem conter alternativas de tratamento de erros pelo conector "Se erro", ou o modo de tratamento de erros deve ser definido como Ignorar, sendo que o tratamento da situação de erro deve ser garantido por um dos seguintes blocos no cenário. Assim, a resiliência do cenário deve ser assegurada contra a exibição de elementos de controle não previstos, atrasos no funcionamento de aplicativos e internet. Nesses casos, deve ocorrer a omissão do item atualmente processado e o reinício correto do cenário para passar ao próximo item a ser processado.

Por exemplo, nos dados de entrada do cenário, há 10 mil nomes de produtos, para os quais é necessário coletar preços. O desenvolvedor executa o cenário à noite e, pela manhã, descobre que o cenário foi interrompido inesperadamente 30 minutos após o início, e o robô não completou o cenário. Portanto, questões de confiabilidade dos cenários e a elaboração de diferentes opções de desenvolvimento de eventos são muito importantes.

2. **Garantir a resiliência do cenário.**

Para garantir a resiliência do cenário, em todos os blocos que interagem com a interface do usuário e páginas da web (no modo visual), devem ser definidos timeouts e períodos de espera não nulos (adequados). Além disso, deve-se evitar o uso de esperas incondicionais e atrasos em todos os lugares onde não seja absolutamente necessário. Em vez de atrasos incondicionais, deve-se esperar, dentro de um tempo finito, a aparição dos elementos de controle necessários para continuar o funcionamento do cenário.\
Em caso de qualquer falha no cenário e seu subsequente reinício, o cenário deve continuar a funcionar (aproximadamente) do ponto em que parou anteriormente.

3. **Garantir um volume adequado de mensagens de depuração no log.**

O cenário deve registrar no log um volume adequado de mensagens de depuração, a partir do qual se pode entender o andamento do processamento da tarefa, em que etapa da tarefa o robô se encontra no momento.

4. **Garantir o funcionamento correto dos arquivos abertos.**

Todos os arquivos abertos para leitura ou edição devem ser fechados de forma oportuna e correta, sem atrasar a bloqueio do arquivo pelo robô por mais tempo do que o necessário. Ao abrir arquivos, deve-se considerar a possibilidade de que eles estejam bloqueados por outro aplicativo. Isso é relevante quando o arquivo com o qual o Robô está trabalhando deve ser utilizado pelos funcionários da empresa contratante. Por exemplo, o robô foi agendado para ser executado à noite, e durante o dia os funcionários devem trabalhar com esse mesmo arquivo. Se o Robô não o fechar, os funcionários não terão a possibilidade de editá-lo.

5. **Recomendações para cenários iniciados manualmente pelo usuário.**

Para cenários que são iniciados manualmente pelo usuário, recomenda-se exibir uma mensagem ao final da execução do cenário – informando se foi concluído com sucesso ou não, e com quais resultados.

6. **Recomendações para o desenvolvimento de cenários destinados a execução agendada.**

* Para cenários que são destinados a execução agendada, é inaceitável exibir mensagens de erro na forma de janelas de diálogo. Todos os erros devem ser registrados no log, e o cenário deve fazer todos os esforços possíveis para continuar a execução corretamente.
* Cenários que são destinados a execução agendada devem, em qualquer variante de sua parada (planejada ou inesperada), restaurar o ambiente do sistema ao estado em que estava no momento do início – para que o subsequente início desse mesmo cenário ocorra corretamente. Não é aceitável acumular recursos, janelas de navegadores/aplicativos abertas e não fechadas, etc.

7. **Recomendações para o desenvolvimento de robôs Attended.**

* O robô Attended deve informar regularmente o usuário sobre o estágio atual do trabalho e o documento processado (site, etc. - dependendo da lógica do cenário de negócios) com uma mensagem na parte superior da tela (para isso, deve-se marcar a opção "Exibir no status" no bloco "Log").
* É necessário configurar a exibição de mensagens de forma que não sejam exibidas mais de uma mensagem por segundo e não menos de uma mensagem a cada 10 segundos.
* A parte mais significativa do texto da mensagem para o usuário deve ser a primeira e deve ser exibida na tela.
* A exibição de mensagens não deve interferir no funcionamento normal do robô, nem na interação do usuário com a interface do computador, caso se presuma que o usuário pode trabalhar paralelamente com o robô.
* É permitido não exibir mensagens nos casos em que as ações, o estágio e o progresso do trabalho do robô sejam completamente evidentes a partir do que está acontecendo na tela.
* As mensagens registradas no log devem responder às seguintes perguntas: "o que está acontecendo agora?", "tudo está indo conforme o planejado?", "quão rápido isso vai acabar?" ou "quão rapidamente está sendo processado o volume de trabalho definido?"

8. **Recomendações para o armazenamento de fontes.**

Todas as fontes de todos os robôs devem ser salvas na conta do GitHub. Para cada projeto do desenvolvedor, será criado um sub-repositório, ao qual o executor terá acesso.


---

# 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.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/nachalo-raboty-v-sherpa-designer/rekomendacii-po-sozdaniyu-kommercheskikh-scenariev.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.
