Árvore de páginas

Rotina Automática ATFA010 Alteração 

Produto:

Protheus

Versões:

Todas

Ocorrência:

EXECAUTO ATFA010 NA ALTERAÇÂO

Ambiente:

P11-P12

Passo a passo:

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

 

Obs.: é necessário criar uma condição para inclusão e alteração pois o exemplo acima atende somente a Alteração.

Observações:

http://tdn.totvs.com/display/public/mp/MsGetDAuto

Rotina Automática ATFA010 - Atualização de Ativos Imobilizados