Tempo aproximado para leitura:00:02:00 min
Dúvida
Através da rotina automática ATFA010 como realizar a alteração?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL – Todas versões
Solução
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.
Exemplo
#Include 'Protheus.ch'
#include "TbiConn.ch"
User Function MyATFA010()//
Local aItens := {}
// Array com os dados a serem enviados pela MsExecAuto() para gravacao automatica dos itens do ativo
Local aDadosAuto := {}
// Array com os dados a serem enviados pela MsExecAuto() para gravacao automatica da capa do bem
Local aCab := {}
// Determina se as mensagens de help devem ser direcionadas para o arq. de log
Private lMsHelpAuto := .f.
// Determina se houve alguma inconsistencia na execucao da rotina
Private lMsErroAuto := .f.
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"
aCab := { {'N1_FILIAL' ,'01' ,NIL},;
{'N1_CBASE' ,'0000000005' ,NIL},;
{'N1_ITEM' ,'0001' ,NIL},;
{'N1_QUANTD' , 10 ,NIL},;
{'N1_AQUISIC' ,dDataBase ,NIL},;
{'N1_DESCRIC' ,'TESTE COM A ROTINA AUTOMATICA ATFA010 01' ,NIL},;
{'N1_CHAPA' ,'000005' ,NIL}}
//array com os dados a serem enviados pela MsExecAuto() para gravacao automatica do item tipo 01
aAdd(aItens,{ {'N3_TIPO' ,'01' ,NIL},;
{'N3_HISTOR' ,"TESTE COM A ROTINA AUTOMATICA 0000000001" ,NIL},;
{'N3_TPSALDO' ,'1' ,NIL},;
{'N3_TPDEPR' ,'1' ,NIL},;
{'N3_CCONTAB' ,'00000000000000000008' ,NIL},;
{'N3_VORIG1' ,1000 ,NIL},;
{'N3_VORIG2' ,0.39999 ,NIL},;
{'N3_VORIG3' ,3000 ,NIL},;
{'N3_VMXDEPR' ,0 ,NIL},;
{'N3_VLSALV1' ,0 ,NIL},;
{'N3_PERDEPR' ,0 ,NIL},;
{'N3_PRODMES' ,0 ,NIL},;
{'N3_PRODANO' ,0 ,NIL},;
{'N3_DINDEPR' ,dDataBase ,NIL},;
{"LINPOS","N3_TIPO" ,'01'},;
{"AUTDELETA","N" ,Nil}})
//array com os dados a serem enviados pela MsExecAuto() para gravacao automatica do item tipo 10
aAdd(aItens,{ {'N3_TIPO' ,'10' ,NIL},;
{'N3_HISTOR' ,"TESTE COM A ROTINA AUTOMATICA 0000000001" ,NIL},;
{'N3_TPSALDO' ,'1' ,NIL},;
{'N3_TPDEPR' ,'1' ,NIL},;
{'N3_CCONTAB' ,'00000000000000000008' ,NIL},;
{'N3_VORIG1' ,10000 ,NIL},;
{'N3_VORIG2' ,0.39999 ,NIL},;
{'N3_VORIG3' ,30000 ,NIL},;
{'N3_VMXDEPR' ,0 ,NIL},;
{'N3_VLSALV1' ,0 ,NIL},;
{'N3_PERDEPR' ,0 ,NIL},;
{'N3_PRODMES' ,0 ,NIL},;
{'N3_PRODANO' ,0 ,NIL},;
{'N3_DINDEPR' ,dDataBase ,NIL},;
{"LINPOS","N3_TIPO" ,'10' },;
{"AUTDELETA","N" ,Nil}})
ConOut("Inicio")
MSExecAuto( {|X,Y,Z| ATFA010(X,Y,Z)} ,aCab ,aItens, 4)
If !lMsErroAuto
ConOut(OemToAnsi("Incluido com sucesso! "))
Else
ConOut(OemToAnsi("Erro na inclusao!"))
MostraErro()
EndIf
ConOut(OemToAnsi("Fim : ")+Time())
RESET ENVIRONMENT
Return
Saiba mais
ADV0029 Rotina automática ATFA010
0 Comentários