
Script SAP PM é uma rotina que repete, de forma automática, os passos que um usuário faria no SAP GUI em transações de manutenção, como exportar a lista de ordens da IW38 ou lançar confirmações na IW41. O recurso por trás é o SAP GUI Scripting, que grava as ações da tela em VBScript e permite rodá-las de novo pelo próprio SAP ou por uma macro no Excel. Funciona bem para tarefas de leitura e baixo volume. Para gravar dados em massa, costuma haver caminho mais seguro.
O ponto de partida é entender o que o módulo já oferece. O guia sobre o que é o SAP PM mostra o fluxo da nota à ordem e as transações envolvidas. Muitas rotinas que as equipes tentam automatizar por script já têm uma transação coletiva, um relatório com variante ou uma BAPI padrão.
O que é um script no SAP PM
O SAP GUI Scripting é uma interface de automação do cliente SAP GUI para Windows. Com ela, um programa externo se conecta a uma sessão aberta e manipula os mesmos campos, botões e tabelas que o usuário vê. O script não acessa o banco de dados nem contorna regras: ele age com o usuário logado, com as autorizações desse usuário e com as validações da transação.
Na manutenção, três formatos aparecem com frequência:
- Arquivo .vbs gravado: o próprio SAP GUI grava a sequência de telas e salva o script, que pode ser executado de novo pelo mesmo gravador.
- Macro no Excel (VBA): o código gravado é colado em uma macro, que lê linhas da planilha e preenche a transação linha a linha, ou lê uma lista do SAP e grava na planilha.
- Robô de RPA: uma ferramenta de automação orquestra a mesma interação de tela, com fila de itens, credencial gerenciada e registro de exceções.
Nos três casos, a automação depende da tela. Se o layout, a variante, o idioma ou a versão do SAP GUI mudarem, o script pode clicar no lugar errado ou parar no meio.
Como habilitar o SAP GUI Scripting
O scripting precisa estar liberado no servidor e no cliente. A liberação no servidor é tarefa da equipe Basis e segue a política de segurança da empresa.
- No servidor: o parâmetro de perfil
sapgui/user_scripting, consultado e alterado pela transação RZ11, habilita o recurso. Parâmetros complementares restringem o uso, comosapgui/user_scripting_per_user, que exige autorização específica por usuário, esapgui/user_scripting_set_readonly, que limita o script a leitura. - No SAP GUI: em Opções, na área de Acessibilidade e Scripting, marque a opção de habilitar scripting. Mantenha ativos os avisos de quando um script se conecta ao SAP GUI ou abre uma conexão, para que o usuário saiba que há automação agindo na sessão.
- No usuário: o script herda as autorizações de quem está logado. Se o usuário não pode confirmar uma ordem de outro centro de trabalho, o script também não pode.
O guia de segurança do SAP GUI Scripting detalha os parâmetros de servidor e as opções do cliente. Vale ler com a equipe Basis antes de pedir a liberação.
Como gravar e executar um script
O gravador fica no menu de personalização do layout local, acessível pelo ícone da barra de ferramentas ou pelo atalho Alt+F12, na opção de gravação e reprodução de script. O fluxo básico é este:
- Abra a gravação, informe o nome do arquivo e inicie.
- Execute a transação uma vez, do jeito exato que será repetido, por exemplo IW38 com a variante da programação semanal.
- Pare a gravação e abra o arquivo .vbs em um editor de texto para conferir cada passo.
O início de um script gravado costuma ter esta forma, que conecta à sessão aberta e chama a transação:
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
Set connection = application.Children(0)
Set session = connection.Children(0)
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nIW38"
session.findById("wnd[0]").sendVKey 0
Cada linha seguinte localiza um campo pelo identificador da tela e preenche um valor ou aciona uma tecla. Para rodar a partir do Excel, o mesmo código entra em uma macro VBA, com um laço sobre as linhas da planilha. É aqui que a maior parte dos problemas nasce: o laço não sabe se a gravação anterior deu certo, a menos que o código leia a mensagem da barra de status depois de cada item.
Usos comuns na manutenção e a alternativa padrão
Antes de automatizar uma tarefa por tela, confira se o SAP PM já resolve com uma transação coletiva, um relatório com variante ou uma interface de programação. A tabela abaixo reúne os pedidos mais frequentes das equipes de PCM.
| Tarefa | Transação usada no script | Alternativa a avaliar primeiro |
|---|---|---|
| Exportar a carteira de ordens para a programação | IW38 ou IW39 com exportação para planilha | Variante e layout salvos, exportação padrão da lista e job em segundo plano com a variante |
| Lançar horas de várias ordens | IW41, uma confirmação por vez | Confirmação coletiva na IW44 ou na IW48, conforme a versão e a configuração |
| Registrar leituras de inspeção | IK11, um documento por ponto | Entrada coletiva de documentos de medição, como a IK22, ou captura no campo |
| Abrir notas ou ordens em lote | IW21 ou IW31 repetidas | BAPIs de nota e ordem, como BAPI_ALM_NOTIF_CREATE e BAPI_ALM_ORDER_MAINTAIN, chamadas por integração |
| Alterar campos de muitos equipamentos | IE02 repetida | Alteração em massa pela transação MASS, quando o objeto e o campo são suportados |
| Criar confirmações a partir de outro sistema | IW41 por robô | BAPI_ALM_CONF_CREATE com retorno por registro, validada pela equipe SAP |
Disponibilidade, nomes e comportamento dessas transações e interfaces variam por release e configuração. A equipe SAP confirma o que está liberado no ambiente antes de qualquer desenho.
Onde o script costuma falhar
O script de leitura quase sempre é tolerável. O risco cresce quando ele passa a gravar documentos, porque confirmação, medição e ordem mexem em custo, status, histórico e indicadores. As falhas mais comuns são estas:
- Confirmação duplicada: o laço é interrompido, alguém roda a planilha de novo desde a primeira linha e as horas entram duas vezes na mesma operação.
- Janela inesperada: um aviso de autorização, de bloqueio da ordem por outro usuário ou de campo obrigatório aparece, e o script segue preenchendo a tela errada.
- Seleção desatualizada: a variante da IW38 muda, o filtro de status deixa de incluir ordens liberadas e ninguém percebe que a extração encolheu.
- Senha no código: macros que fazem login guardam usuário e senha em texto aberto na planilha ou no .vbs.
- Dono único: a rotina vive no computador do planejador que a criou. Quando ele sai de férias, o processo para ou roda sem conferência.
- Dado reconstruído: horas lançadas no fim do turno a partir de papel chegam ao SAP com atraso e estimadas, o que distorce MTTR, backlog e custo por ativo.
O último ponto é o mais caro e o menos visível. Um script rápido não corrige um apontamento que já nasceu impreciso. O artigo sobre apontamento tardio mostra como esse atraso contamina os indicadores.
Quando trocar o script por BAPI ou integração
A decisão depende de volume, frequência, criticidade do dado e necessidade de rodar sem alguém olhando a tela. Como regra prática:
- Script assistido: tarefa de leitura ou de baixo volume, executada por um usuário identificado que acompanha o resultado, em telas estáveis.
- Transação coletiva padrão: lançamentos em lote feitos pela própria equipe, quando a IW44, a IW48 ou a entrada coletiva de medições atendem ao processo.
- BAPI ou serviço: gravação recorrente de confirmações, notas ou ordens a partir de outro sistema, com retorno de mensagem por registro e proteção contra duplicidade.
- Integração de campo: quando o problema real é o dado chegar tarde ou incompleto. Nesse caso, a solução é registrar no momento da execução, e não automatizar a digitação posterior.
Qualquer caminho que grave dados precisa de logs revisáveis. O guia sobre log de integração SAP PM mostra como confirmar que cada registro chegou ao documento correto.
Checklist antes de colocar um script em produção
- A rotina está documentada: transações, variante, campos lidos e gravados, dono e data da última revisão.
- O script roda com usuário individual. Nenhuma senha fica no código ou na planilha.
- Cada linha processada guarda a chave de origem, a mensagem do SAP e o número do documento gerado.
- Antes de gravar, o script confere se aquela chave já foi processada, para permitir retomar de onde parou.
- Qualquer janela inesperada interrompe a execução em vez de seguir adiante.
- O resultado é conferido contra a lista do SAP, por exemplo a IW47 para confirmações, e não contra a própria planilha.
- O teste foi feito em ambiente de qualidade, com um lote pequeno, antes de rodar em produção.
- Existe um plano para quando a tela ou a versão do SAP GUI mudar.
Como isso aparece no SAP PM e no PM Run
Boa parte dos scripts de manutenção existe para compensar um fluxo de papel: o técnico anota no campo, alguém digita depois e o script acelera a digitação. A alternativa é o dado nascer no SAP a partir do campo. No SAP PM, isso significa a confirmação por operação na IW41, os documentos de medição nos pontos de medição e a nota com catálogo de causa e sintoma, todos ligados à ordem de manutenção.
O PM Run Mobilidade leva esses registros ao técnico no celular, online ou offline. O técnico confirma a operação, aponta horas, preenche o checklist do texto longo, registra medições lendo o QR code do ponto e cria notas com os catálogos do SAP. Ao sincronizar, os dados seguem pela integração para o SAP, que continua como sistema de registro. No PCM, o PM Run Planejamento organiza programação, capacidade e alocação sobre as ordens do SAP, sem planilha paralela.
Os cases publicados mostram o efeito em operações que já usavam SAP. Na planta avaliada da Citrosuco, a confirmação de ordens chegou a 95%. Na Rivelli, o tempo gasto com tarefas manuais caiu 50%. São resultados de contextos específicos, não metas universais.
Perguntas frequentes sobre scripts no SAP PM
Como habilitar o script no SAP?
A equipe Basis ativa o parâmetro sapgui/user_scripting pela RZ11, conforme a política de segurança, e o usuário marca a opção de habilitar scripting nas opções do SAP GUI, em Acessibilidade e Scripting. Sem as duas liberações, o gravador não funciona.
Onde fica o gravador de scripts do SAP GUI?
No menu de personalização do layout local, aberto pelo atalho Alt+F12, na opção de gravação e reprodução de script. O arquivo gerado é um .vbs que pode ser editado e executado de novo.
Script SAP é seguro?
O script usa o usuário logado e respeita as autorizações e validações da transação. O risco está no uso: senha gravada em arquivo, lote repetido, tela inesperada e falta de conferência. Por isso muitas empresas liberam o recurso só para leitura ou para usuários autorizados.
Qual a diferença entre script e BAPI?
O script controla a tela do SAP GUI como se fosse o usuário. A BAPI é uma interface de programação que cria ou altera o objeto de negócio diretamente, com mensagens de retorno por registro. Para gravação recorrente e em volume, a BAPI ou uma integração é o caminho mais estável.
Dá para confirmar várias ordens de uma vez sem script?
Sim. O SAP PM tem transações de confirmação coletiva, como a IW44 e a IW48, conforme a versão e a configuração. Quando o volume vem do campo, registrar a confirmação no momento da execução evita a digitação em lote.
Para tirar a digitação posterior do fluxo, conheça o PM Run Mobilidade, que registra confirmações, medições e notas no campo e devolve os dados ao SAP PM.
