Dúvida
Como realizar Alteração ou Exclusão na ExecAuto da rotina OMSA010
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80
Solução
Para Alteração e exclusão de um item da rotina automática deve-se utilizar LINPOS e AUTDELETA
Quando existir a necessidade de alterar um item especifico da Getdados, existem dois campos que podem ser utilizados, os campos são: LINPOS e AUTDELETA. O primeiro deve ser utilizado para localizar o item do aCols que sofrerá alteração, o segundo instruí a rotina automática para deletar a linha. Caso não seja utilizado o LINPOS esta função irá reconstruir todo o aCols.
#include 'protheus.ch'
#include 'parmtype.ch'
#INCLUDE "TBICONN.CH"
user function EOSA010()
local aCab := {}
local aItem := {}
local nOpc := 4
local i
local cCodTab := "007"
local cNomeTab := "TESTE2 "
local cHoraDe := "00:00"
local cHoraAte := "23:59"
local cTpHorario := "1"
local cTabAtiv := "1"
local cItem := "0003"
local cProduto := "TB0000000000001"
local nPrcVen := 22
local nPrcVen2 := 20
local cAtivo := "1"
local aItens :={}
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01'
aAdd(aCab, {"DA0_CODTAB" , cCodTab , NIL})
aAdd(aCab, {"DA0_DESCRI" , cNomeTab , NIL})
aAdd(aCab, {"DA0_DATDE" , dDatabase , NIL})
aAdd(aCab, {"DA0_HORADE" , cHoraDe , NIL})
aAdd(aCab, {"DA0_TPHORA" , cTpHorario, NIL})
aAdd(aCab, {"DA0_ATIVO" , cTabAtiv , NIL})
//aItem:={}
aAdd(aItem,{ {"DA1_ITEM" , cItem , NIL},;
{"DA1_CODPRO" , cProduto , NIL},;
{"DA1_PRCVEN" , nPrcVen , NIL}})
// Para incluir um unico item não é necessario os itens LINPOS e AUTDELETA usa-se somente na Alteração ou exclusão
{"LINPOS","DA1_ITEM" ,'0001'},;
{"AUTDELETA","N" ,Nil}})
//aadd(aItens, aItem)
//aItem:={}
/* aAdd(aItem,{ {"DA1_ITEM" , "0004" , NIL},;
{"DA1_CODPRO" , "TB0000000000002" , NIL},;
{"DA1_PRCVEN" ,nPrcVen2 , NIL}})
// Para excluir um unico item é os itens LINPOS e AUTDELETA sendo que o Autdeleta receberá o valor "N"
//{"LINPOS","DA1_ITEM" ,'0002'},;
//{"AUTDELETA","S" ,Nil}})*/
//aadd(aItens, aItem)
Omsa010(aCab,aItem,nOpc)
If lMsErroAuto
DisarmTransaction()
Mostraerro()
Else
conout("ALterado com sucesso.")
EndIf
RESET ENVIRONMENT
Return(.T.)
Obs Verifique nOpc := 4 - Alteração / 3 - Inclusão
Saiba Mais
OMSA010 rotina automática da tabela de preços
4 Comentários