Os sistemas de macros sao muito utilizados para testes de stress de aplicativos, por exemplo para saber quantas pessoas conectadas e trabalhando simultaniamente um ERP suporta ou para efetuar pequenas cargas de dados, muito util na fase de implantacao para carga de configuracoes como o cadastro de cidades, estados, etc. Estas ferramentas em geral funcionam como as macros dos editores de texto, voce inicia a gravacao no software que vai capturar suas acoes e depois utiliza o sistema que se quer dar carga ou efetuar o teste de stress para gravar as acoes. Depois de gravado salva-se um script com os passos a serem seguidos ao serem executados e se substitui os dados imputados por variaveis de arquivos de texto. Ao ser executado o script substitui a variavel por uma a uma das linhas do arquivo de texto. As melhores ferramentas permitem que seja configurado um numero de conexoes para serem executadas em paralelo, os dados a serem utilizadas nas telas e opcoes para retirar tempos de inatividade para uma execucao mais rapida. O ponto fraco destas ferramentas e o tempo utilizado para dar a carga porque como ele vai trabalhar como se uma pessoa estivesse digitando os dados, o tempo de paginar as telas pode inviabilizar cargas maiores, um outro ponto negativo e que em algumas ferramentas principalmente as que marcam a entrada dos dados por tempo e nao pelo posicionamento na tela pode acontecer do dado ser imputado em campo errado e travar ou entrar com dados inconsistentes, se voce ja teve contato com a ferramenta DataLoad da Oracle sabe o que e passar horas olhando a tela do DataLoad para abortar caso ele se perdesse nos ponteiros. Existem varias ferramentas deste tipo no mercado, a Oracle historicamente no seu servico de suporte metalink disponibilizava scripts corretivos para o LoadRunner da HP e os scripts mais novos ela esta disponibilizando para o sistema OpenScript que e da Oracle mesmo. Especificamente para o SAP utilizei o SuperMacro e o BDC que e um programa BAPI que carrega a partir de planilhas excel, o interessante e que ele poderia carregar em background agilizando o processo. Segue exemplo de comando que atribui letra do alfabeto em sequencia que aparece, usei para criar a legenda fiscal de Notas Fiscais utilizando sub-selects no lugar dos tradicionais programas com loops para montar a legenda. A partir de uma lista de notas e valores quaisquer para classificacao, ele ordena e classifica atribuindo as letras do alfabeto.Exemplo:create table TMP_ANDRE( NF VARCHAR2(10),CL VARCHAR2(10));insert into TMP_ANDRE (NF, CL)values ('1', 'x');insert into TMP_ANDRE (NF, CL)values ('1', 'y');insert into TMP_ANDRE (NF, CL)values ('1', 'k');insert into TMP_ANDRE (NF, CL)values ('1', 'x');insert into TMP_ANDRE (NF, CL)values ('1', 'y');insert into TMP_ANDRE (NF, CL)values ('2', 'x');insert into TMP_ANDRE (NF, CL)values ('2', 'x');insert into TMP_ANDRE (NF, CL)values ('2', 'e');insert into TMP_ANDRE (NF, CL)values ('2', 'r');commit;-- registros incluidos.select * from tmp_andre;-- para entender esse comando pega a segunda letra, depois vou substituir a segunda letra pelo rownum que e a posicao da lista.select substr('ABCDEFGHIJKLMNOPQRSTUVWXYZ',2,1) from dual;-- essa sera a lista da classificacao, o primeiro valor sera atribuido o