Sherpa Designer: respostas para perguntas frequentes#

Qual é a razão pela qual o bloco "Verificar a presença do elemento" no projeto encontra o botão "Salvar", mesmo que ele não esteja presente no SAP?#

Pergunta: No projeto, o Robô verifica a presença do botão "Salvar" no SAP. Se não encontrar, clica no elemento "Modificar".

Infelizmente, o bloco "Verificar a presença do elemento" encontra o elemento "Salvar" mesmo que ele não exista.

Resposta:

Provavelmente, esse elemento está no cache do componente COM do SAP. Tente se reconectar ao SAP antes da verificação. Por exemplo, usando os blocos "Conectar" ou "Selecionar janela".

Existe a possibilidade de automação do 1C usando teclas de atalho?#

Pergunta: Existe a possibilidade de automação do 1C usando teclas de atalho?

Resposta:

Sim, existe. Você pode usar o guia do site oficial do 1C: https://its.1c.ru/db/v8std/content/430/hdoc

Ou a dica para atribuição de teclas de atalho no link:

https://1s-portal.ru/index.php/stati/configuration/3-form/76-knopke-naznachit-gorjachuju-klavishu.html#:~:text=%D0%9D%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C%20%D0%BA%D0%B0%D0%BA,%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8%2C%20%D1%81%D1%80%D0%B0%D0%B7%D1%83%20%D0%B6%D0%B5%20%D1%83%D0%B2%D0%B8%D0%B4%D0%B5%D1%82%D0%B5%20%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82.

Por que a lógica do bloco executar PowerShell funciona de forma diferente em comparação com o PowerShell embutido?#

Pergunta: Por que a lógica do bloco executar PowerShell funciona de forma diferente em comparação com o PowerShell embutido? E como usá-lo corretamente nesse caso. Estou tentando usar uma função – a saída correta deve ser False. Ao chamar essa função através do bloco PowerShell, ele retorna True (no segundo bloco).

A função é declarada aqui:

Resposta:

Use seus blocos para tais fins. É importante entender que tudo o que você escreve é executado dentro da função, pois cada bloco é uma função. Como resultado, tudo o que você atribuir a essa função será suas variáveis locais. Se você usar seu código, deve desativar o processamento de variáveis. Atualmente, todas as variáveis que você escreveu são convertidas em variáveis locais do script, especificamente dessa classe de diagrama.

O bloco “Execução de código Python” não funciona#

Pergunta: O que fazer se houver um problema ao usar o bloco “Execução de código Python”?

Resposta:

A ordem das ações é a seguinte:

1) Feche o Designer.

2) Exclua a pasta Library da pasta do projeto.

3) Baixe e atualize o Designer.

4) Certifique-se de que você tenha a versão do Python x64.

5) Verifique se a versão do Python não é superior a 3.12.

Erro “Seletor não encontrado”#

Pergunta: Ao automatizar um programa, há uma tarefa: inserir texto no campo de filtro. Estou usando o bloco “Pressionar teclas”, o seletor identifica o campo de texto e o destaca, mas ao depurar o robô ocorre o erro “Seletor não encontrado”. Por favor, me diga o que pode ser feito nesse caso?

Resposta:

Provavelmente, isso está relacionado ao fato de que, ao pressionar o botão “Depurar”, você torna a janela do Designer ativa, e ao clicar – o aplicativo novamente. Tente primeiro encontrar o ID do processo necessário e escrevê-lo no bloco de entrada de texto, assim você não precisará clicar no campo de filtro. Também é possível que o próprio clique e o início da edição no elemento mudem a árvore do seletor desse elemento. Por exemplo, pode aparecer uma barra extra ou até mesmo um campo de edição que não existia antes (ou você o viu na interface, mas tecnicamente não era um campo de edição até que você clicasse nele). Consequentemente, os seletores do elemento "já clicado" e "ainda não clicado" são diferentes. Tente gravar o seletor do elemento passivo, no qual você ainda não clicou e no qual o foco de entrada não está.

Qual pode ser a causa do erro ao extrair um intervalo da tabela, se uma variável igual a 1 for usada?#

Pergunta: É necessário recortar a tabela (extrair um intervalo), mas se no campo a coluna número=1 – funciona. Se lá a variável=1 – gera um erro. Qual pode ser o problema? A variável é obtida da atividade "verificar a existência de valor". A conversão adicional “_tonumber” não ajuda.

Resposta:

Nesse caso, a variável tem o tipo double. Ao especificar o indexador da coluna, você pode indicar uma string ou um número int32. Se uma variável do tipo double for especificada, o Framework tentará convertê-la para o tipo necessário. Como só podemos ter dois tipos, ele escolhe o mais apropriado sem perda de dados, que é a string (double => string). Como resultado, o Framework tenta indexar a coluna com "1", e não pelo número. Quando você força a conversão para o tipo [int], o Framework elimina todas as ambiguidades. Portanto, deve-se escrever [int]$DocCol, ou seja, converter o valor para um número int32.

É possível executar um script completo no Sherpa RPA, e não um script PowerShell de uma linha?#

Pergunta: É possível executar um script completo no Sherpa RPA, e não um script PowerShell de uma linha?

Resposta:

Sim, é possível, para isso é necessário usar o bloco “Executar expressão PowerShell”, desativar o processamento de variáveis nele, usando as constantes #StopRefactoring e #StartRefactoring da seguinte forma:

Insira o código dentro delas, mas depois, para entrada ou saída de valores das variáveis já fora dessas constantes, é necessário atribuir variáveis locais às variáveis do script.

Falha na codificação de caracteres****Pergunta: o que fazer se houver um problema de codificação de caracteres? Na codificação no computador, a codificação é Windows1251 e tudo está OK, mas no servidor, neste mesmo arquivo, nesta mesma codificação - falha.#

Resposta:

A falha na codificação de caracteres pode estar relacionada à codificação para versões russas do Microsoft Windows. Se você encontrar esse problema, tente fazer o seguinte:

Acesse as configurações de região no seu computador (Configurações => Hora e idioma => Região => Configurações adicionais => Padrões regionais => Avançado => Tela de boas-vindas e contas de novos usuários).

Na janela que se abre, marque as opções “Tela de boas-vindas e contas do sistema” e “Novas contas de usuários”.

Depois disso, o idioma da interface para a tela de boas-vindas e novas contas de usuários será alterado para “Russo” e o problema de falha na codificação será resolvido.

Como ignorar o número após a palavra "form" no id do campo de busca na página da web 1C ao atualizar a página?#

Pergunta: Há um problema, na página da web 1C, o id no div do campo de busca muda ao atualizar a página. Existe alguma maneira de ignorar o número após a palavra "form" e continuar a definir o seletor?

Por exemplo: INPUT[id='form1(?)_ВыходныеИзделияКоманднаяПанельВыходныеИзделияСтрокаПоиска_i0']

Resposta:

Aqui estão algumas abordagens que podem ajudá-lo a resolver esse problema:

  1. Uso de correspondência parcial de ID: Você pode usar um seletor que procura elementos por parte de seu ID. Por exemplo, se o ID sempre começa com "form", você pode usar o seletor INPUT[id^='form'], que encontrará todos os elementos cujo ID começa com "form".
    Existem outros tipos de substituições, mais detalhes aqui.
  2. Uso de atributos: Se o elemento tiver outros atributos que não mudam, você pode usá-los para criar um seletor mais estável. Por exemplo, se o campo de busca tiver um atributo class, você pode usar o seletor INPUT[class='your-class-name'].
  3. Índices: Se houver vários elementos na página com os mesmos atributos, você pode usar um índice para selecionar o elemento desejado.
  4. Uso de conteúdo de texto: Se o elemento tiver conteúdo de texto, você pode usá-lo para criar um seletor.
  5. Uso de elementos pai: Se o elemento tiver um pai único, você pode usá-lo para criar um seletor. Por exemplo, DIV[class='parent-class'] > INPUT[id^='form'].