Vídeo Aula – AdvPL 011 – Gravação de Registros via MsExecAuto

Olá pessoal…

Na vídeo aula de hoje, vou falar um pouco sobre gravação de registros rotinas automáticas (MsExecAuto) e Controle de transações.



Abaixo o código fonte utilizado para os testes:

Se quiser fazer o download desse código ou do conteúdo mostrado na vídeo aula, acesse nosso GitHub pelo link github.com/dan-atilio/AdvPL (Exemplos > Vídeo Aulas > 011 – Gravação de Registros via MsExecAuto).

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

14 Responses

  1. Diego Sousa disse:

    Parabéns pelo vídeo, ficou bom. Geralmente não ensinam sobre os campos obrigatórios no Execauto e no início quebramos a cabeça.

  2. Anizio Souza disse:

    Bom dia Dan_Atilio. Seu post é antigo, mas pra mim foi muito útil. Estou com uma dúvida e se voce puder me responder agradeço. Segue: Há possibilidade de criar um msexecauto entre empresas? No meu caso seria a rotina FINA100 – Transferencia.

    Valeu!!!

    • Dan_Atilio disse:

      Boa noite Anizio, tudo bem?

      Não entendi muito bem, você quer rodar a FINA100 para todas as empresas? Filiais?

      Se sim, você pode criar uma variável com as empresas / filiais (ou usar rotinas padrão, como a FWAllFilial), e depois alterar as variáveis cEmpAnt e cFilAnt (respectivamente Empresa e Filial), lembrando de tomar cuidado de sempre fazer um backup dessas variáveis (pois são variáveis públicas do Protheus).

      Abaixo um pequeno exemplo:

      Espero ter ajudado.
      Um grande abraço.

  3. Shava disse:

    Que tal Daniel tengo un problema con la msexecauto de la mata 265, me manda error en la fecha y no se porque si asi es como debe ser, el error es el siguiente
    (argument #0 error, expected D-C, function dtoc on MSLOGITENS(MATXFUNB.PRX))
    La linea la traigo asi:
    Aadd(_aItem2, {{“DB_ITEM” ,”0001″ ,NIL},{“DB_LOCALIZ” ,aWBrowse1[nDA][6] ,NIL},{“DB_DATA” ,ddatabase ,NIL},;
    {“DB_QUANT” ,Val(aWBrowse1[nDA][7]) ,NIL}})//,{“DB_DOC” ,cDocu ,NIL}})
    Agradeceria tu ayuda

    • Dan_Atilio disse:

      Boa noite Shava, tudo bem?
      Rapaz, que estranho, ele está dizendo que esperava um tipo Data e recebeu um Caracter.
      Tente primeiramente alterar no seu fonte o dDataBase para Date().
      Caso o erro continue, por favor, me envie o error log completo para eu dar uma olhada.
      Um grande abraço.

  4. Shava disse:

    Que tal Daniel, tengo la Imagen del Error, podrías proporcionarme tu correo para enviarte el Archivo (Imagen), Saludos

  5. Armando Lima disse:

    Olá amigo!
    me ajuda numa dúvida?

    Dá pra usar o MSExecAuto em uma rotina customizada? Pra explicar, essa rotina usa um MBrowse para gerir uma determinada tabela, então conta com AxInclui, AxAltera, AxExclui, etc… Por exemplo ao incluir, abre a interface com os campos (e seus diversos gatilhos) que salva o registro após clicar em Confirmar.

    O que eu penso em fazer é alimentar um array com diversos registros e incluir por lote (automaticamente, de uma só vez). Então a ideia é colocar num laço e mandar cada linha desse array para ser incluído. O mais importante é aproveitar a estrutura de gatilhos já configurado por trás dessa rotina, então enviando os dados, deve-se incluí-lo considerando as interações dos gatilhos. Assim como funciona com o MSExecAuto, entrentanto no meu caso a rotina é customizada.

    Alguma ideia?

    Grato!

  6. Jorge disse:

    Boa tarde Daniel, tudo bem?
    Como faço para identificar quais rotinas possuem Execauto ou FWMVCRotAuto?

    Exemplo : JURA162 ou JURA095.

    Muito Obrigado.

    Atenciosamente,
    Jorge Miguel

  7. Alexandre AS disse:

    Muito bom rapaz! Parabéns pela iniciativa e muito obrigado!

Deixe uma resposta

Terminal de Informação