CONTEÚDO
- Visão Geral
- Exemplo de utilização
- Tabelas utilizadas
01. VISÃO GERAL
Implementação da rotina automática (ExecAuto) na rotina de cadastro de valores futuros (GPEA110)
Na chamada da Função GPEA110 devem ser passados os parâmetros
- nOpcAuto - Indica a operação que será realizada, 3 - Inclusão, 4 - Alteração; 5 - Exclusão
- aCab - Array com as informações para posicionar no funcionário
- aItens - Array com os lançamentos
Para informações sobre a estrutura do array aItens consulte a página http://tdn.totvs.com/x/bv1n
02. EXEMPLO DE UTILIZAÇÃO
Exemplo de inclusão
#Include 'Protheus.ch' User Function Teste_Exec() Local aCab := {} Local aItem := {} Local aItens:= {} Local aLog := {} Private lMsErroAuto := .F. Aadd(aCab, {"RA_FILIAL" , "D MG 01 ",NIL}) Aadd(aCab, {"RA_MAT" , "000001" ,NIL}) Aadd(aItem,{ "RK_PD" , "963" ,nil}) Aadd(aItem,{ "RK_DOCUMEN" , "999999" ,nil}) Aadd(aItem,{ "RK_VALORTO" , 5555.55 ,nil}) Aadd(aItem,{ "RK_PARCELA" , 4 ,nil}) aAdd(aItens,aItem) MSExecAuto({|a, b, c| GPEA110(a, b, c) }, 3, aCab, aItens) If !lMsErroAuto ConOut("**** Incluido com sucesso! ****") Else aLog := getAutoGrLog() MostraErro() ConOut("Erro na Alteracao!") EndIf Return aLog
Exemplo de Exclusão/Alteração
#INCLUDE 'Protheus.ch' #INCLUDE 'TBICONN.CH' #Include 'FWMVCDef.ch' #DEFINE CRLF Chr(13)+Chr(10) User Function GPEA110_Exec() Local aCab := {} Local aItem := {} Local aItens := {} Local aLog := {} Local lOk := .T. Local cMat := "000001" Local cPd := "001" Local cCcusto := "000000001" Local cProces := "00001" Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GPE" TABLES "SRK" SRK->(DBSETORDER( 1 )) //RK_FILIAL+RK_MAT+RK_PD+RK_CC+RK_PROCES If !SRK->(DBSEEK( xFilial("SRK") + cMat + cPd + cCcusto + cProces )) // Verifica se a verba existe lOk := .F. Alert("Não foi encontrado registro") ENDIF If lOk aAdd(aCab, {"RA_FILIAL" , "D MG 01 ",NIL}) aAdd(aCab, {"RA_MAT" , "000001" ,NIL}) // Para INCLUSÃO de um linha NOVA em um registro que já possua Lançamentos: não utilizar o LINPOS // Para ALTERAÇÃO de uma linha EXISTENTE: somente LINPOS e os campos que sofrerão alteração aAdd(aItem,{"LINPOS" , "RK_PD" , '001'}) aAdd(aItem,{"RK_VALORTO", 15 , nil}) aAdd(aItens,aItem) aItem := {} // Para EXCLUSÃO: É necessário utilizar LINPOS e AUTDELETA aAdd(aItem,{"LINPOS" , "RK_PD+RK_DOCUMEN" , '001','000003' }) // É possível utilizar qualquer campo ou combinação de campos que identifique o registro que se deseja alterar/excluir aAdd(aItem,{"AUTDELETA" , "S" , Nil }) //SOMENTE PARA EXCLUSÃO aAdd(aItens,aItem) MSExecAuto({|a, b, c| GPEA110(a, b, c) }, 5, aCab, aItens) //Utilize a opção 4 para Alterar e 5 para Excluir If !lMsErroAuto ConOut("**** Incluído com sucesso! ****") Else aLog := getAutoGrLog() MostraErro() ConOut("Erro na Alteracao!") EndIf ENDIF Return aLog
03. TABELAS UTILIZADAS
- SRK - Movimento de Valores Futuros
- SRA - Funcionários
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas