Nesse vídeo demonstraremos a utilização da função MsExecAuto, que serve para executar automaticamente alguma rotina do ERP, dessa forma incluindo, alterando ou excluindo informações.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe360 Executa uma rotina de forma automática @type Function @author Atilio @since 26/03/2023 @see https://tdn.totvs.com/pages/releaseview.action?pageId=566489232 @obs Função MsExecAuto Parâmetros + Bloco de código que será executado + Parâmetros (1 a 15) que serão passados na rotina Retorno Função não tem Retorno **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe360() Local aArea := FWGetArea() Local aDados := {} Local lAutomatico := IsBlind() Local cPastaErro := '\x_logs\' Local cNomeErro := '' Local cTextoErro := '' Local aLogErro := {} Local nLinhaErro := 0 Private lMsErroAuto := .F. //Se for automático sem tela, declara outras variáveis para não exibir a tela If lAutomatico Private lMSHelpAuto := .T. Private lAutoErrNoFile := .T. EndIf //Adiciona os campos aAdd(aDados, {"B1_COD", "F0001", Nil}) aAdd(aDados, {"B1_DESC", "Teste", Nil}) aAdd(aDados, {"B1_TIPO", "PA", Nil}) aAdd(aDados, {"B1_UM", "KG", Nil}) aAdd(aDados, {"B1_LOCPAD", "01", Nil}) aAdd(aDados, {"B1_GRUPO", "G001", Nil}) //Chama a inclusão MsExecAuto({|x, y| MATA010(x, y)}, aDados, 3) //Se houve erro, mostra a mensagem If lMsErroAuto //Se for automático, irá gravar o log dentro da Protheus Data If lAutomatico cPastaErro := '\x_logs\' cNomeErro := 'erro_sb1_' + dToS(Date()) + '_' + StrTran(Time(), ':', '-') + '.txt' //Se a pasta de erro não existir, cria ela If ! ExistDir(cPastaErro) MakeDir(cPastaErro) EndIf //Pegando log do ExecAuto, percorrendo e incrementando o texto aLogErro := GetAutoGRLog() For nLinhaErro := 1 To Len(aLogErro) cTextoErro += aLogErro[nLinhaErro] + CRLF Next //Criando o arquivo txt e incrementa o log MemoWrite(cPastaErro + cNomeErro, cTextoErro) //Senão, exibe a tela de erro Else MostraErro() EndIf Else FWAlertSuccess("Produto incluido com sucesso", "Sucesso no ExecAuto") EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.