O artigo apresenta exemplos de uso do Execauto ATFA060, no Protheus Ativo Fixo, para transferências contábeis, físicas, físicas parciais e com nota fiscal, destacando parâmetros, campos necessários e tratamento de erros. Na transferência contábil, cada tipo de ativo deve ser processado separadamente.
Dúvida
Exemplo de Execauto (Rotina Automática) - Transferência de Ativos
Ambiente
Protheus – Ativo Fixo – A partir da versão 11.80
Solução
Exemplo de utilização da rotina automática ATFA060 - Transferência de Ativos
User Function MyATFA060()
Local aDadosAuto := {} // Array com os dados a serem enviados pela MsExecAuto() para gravação automática.
Local aParamAuto := {}
Private lMsHelpAuto := .F. // Determina se as mensagens de help devem ser direcionadas para o arq. de log.
Private lMsErroAuto := .F. // Determina se houve alguma inconsistência na execução da rotina em relação aos parâmetros informados
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ O exemplo abaixo foi considerado passando somente dados de conta contábil e centro de custo, caso ³
//³ necessário passar os campos referentes a itens contábeis e classes de valores. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dDatabase := cTod("08/02/2010")
aDadosAuto:= { {'N3_FILIAL' ,ALLTRIM(xfilial("SN3")),Nil},; // Código da filial
{'N3_CBASE' , "0000000002" , Nil},; // Código base do ativo
{'N3_ITEM' , "0001" , Nil},; // Item sequencial do código base do ativo
{'N3_TIPO' , "10" , Nil},; // Tipo do Ativo
{'N4_DATA' , dDatabase , Nil},; // Data de aquisição do ativo
{'N3_CCUSTO' , "123" , Nil},; // Centro de Custo de Despesa
{'N3_CCONTAB' , "123" , Nil},; // Conta Contábil
{'N3_CCORREC' , "123" , Nil},; // Conta de Correção do Bem
{'N3_CDEPREC' , "123" , Nil},; // Conta Despesa Depreciação
{'N3_CCDEPR' , "123" , Nil},; // Conta Depreciação Acumulada
{'N3_CDESP' , "123" , Nil},; // Conta Correção Depreciação
{'N3_CUSTBEM' , "123" , Nil},; // Centro de Custo da Conta do Bem
{'N3_CCCORR' , "123" , Nil},; // Centro Custo Correção Monetária
{'N3_CCDESP' , "123" , Nil},; // Centro Custo Despesa Depreciação
{'N3_CCCDEP' , "123" , Nil},; // Centro Custo Despesa Acumulada
{'N3_CCCDES' , "123" , Nil},; // Centro Custo Correção Depreciação
{'N1_GRUPO' , "GR01" , Nil},; // Código do Grupo do Bem
{'N1_LOCAL' , "LOCAL" , Nil},; // Localização do Bem
{'N1_NFISCAL' , "NF001" , Nil},; // Número da NF
{'N1_NSERIE' , "SERIE" , Nil},; // Série da NF
{'N1_TAXAPAD' , "999999" , Nil},; // Código da Taxa Padrão
{'TPN_CTRAB' , "CT01 " , Nil},; // Centro de Trabalho do Bem, utilizado somente quando integrado ao SIGAMNT
{'TPN_POSCON' , "150" , Nil},; // Primeiro Contador do Bem, utilizado somente quando integrado ao SIGAMNT
{'TPN_POSCO2' , "100" , Nil}} // Segundo Contador do Bem, utilizado somente quando integrado ao SIGAMNT
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Caso deseje passar valores para os campos, Grupo, Local, NF/Série Taxa padrão, considerar ³
//³ como no exemplo acima utilizando os campos correspondentes da tabela SN1. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// Parâmetros das perguntas da rotina atfa060
aAdd( aParamAuto, {"MV_PAR01", 1} ) //Pergunta 01 - Contabiliza ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR02", 2} ) //Pergunta 02 - Mostra Lanc Contab ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR03", 2} ) //Pergunta 03 - Aglut Lançamentos ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR04", 2} ) //Pergunta 04 - Botão Filtrar ? 1 = Sim ; 2 = Não
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// O quarto parâmetro pode ser configurado com os seguintes estados.
//.T. = Espelhar.
//.F. = Atualizar.
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
MSExecAuto({|x, y, w, z| AtfA060(x, y, w, z)},aDadosAuto, 4 ,aParamAuto, .F.)
If lMsErroAuto
lRetorno := .F.
MostraErro()
Else
lRetorno:=.T.
EndIf
Return |
Importante
Na transferência contábil, deverá ser feito a chamada do Execauto de cada tipo de ativo separado, pois a execução automática é preparada para realizar a transferência de um tipo de ativo por vez.
#Include 'Protheus.ch'
#Include 'Protheus.ch'
#Include 'tbiconn.ch'
User Function MyATFA060()
Local aDadosAuto := {} // Array com os dados á serem enviados pela MsExecAuto() para gravação automática.
Private lMsHelpAuto := .F. // Determina se as mensagens de help devem ser direcionadas para o arq. de log.
Private lMsErroAuto := .F. // Determina se houve alguma inconsistência na execução da rotina em relação aos
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ O exemplo abaixo foi considerado passando somente dados de conta contabil e centro de custo, caso ³
//³ necessário passar os campos referentes a itens contábeis e classes de valores. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dDatabase := cTod("08/02/2010")
aDadosAuto:= {{'N3_CBASE' , "TRANSF " , Nil},; // Código base do ativo
{'N3_ITEM' , "001 " , Nil},; // Item sequencial do código bas do ativo
{'N3_TIPO' , "10" , Nil},; // Tipo do Ativo
{'N1_FILIAL' , "D MG 02 " , Nil},; // Filial de Destino do Ativo
{'N4_DATA' , dDatabase , Nil},; // Data de aquisição do ativo
{'N3_CCUSTO' , " " , Nil},; // Centro de Custo de Despesa
{'N3_CCONTAB' , "101010100 " , Nil},; // Conta Contabil
{'N3_CCORREC' , " " , Nil},; // Conta de Correcao do Bem
{'N3_CDEPREC' , "201010100 " , Nil},; // Conta Despesa Depreciação
{'N3_CCDEPR' , "101010300 " , Nil},; // Conta Depreciação Acumulada
{'N3_CDESP' , " " , Nil},; // Conta Correção Depreciação
{'N3_CUSTBEM' , " " , Nil},; // Centro de Custo da Conta do Bem
{'N3_CCCORR' , " " , Nil},; // Centro Custo Correção Monetária
{'N3_CCDESP' , " " , Nil},; // Centro Custo Despesa Depreciação
{'N3_CCCDEP' , " " , Nil},; // Centro Custo Despesa Acumulada
{'N3_CCCDES' , " " , Nil},; // Centro Custo Correção Depreciacão
{'N1_GRUPO' , " " , Nil},; // Código do Grupo do Bem
{'N1_LOCAL' , " " , Nil},; // Localizacao do Bem
{'N1_NFISCAL' , " " , Nil},; // Numero da NF
{'N1_NSERIE' , " " , Nil},; // Serie da NF
{'N1_TAXAPAD' , " " , Nil}} // Codigo da Taxa Padrao
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Caso deseje passar valores para os campos, Grupo, Local, NF/Serie Taxa padrao, considerar ³
//³ como no exemplo acima utilizando os campos correspondentes da tabela SN1. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// Parâmetros das perguntas da rotina atfa060
aAdd( aParamAuto, {"MV_PAR01", 1} ) //Pergunta 01 - Contabiliza ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR02", 2} ) //Pergunta 02 - Mostra Lanc Contab ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR03", 2} ) //Pergunta 03 - Aglut Lançamentos ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR04", 2} ) //Pergunta 04 - Botão Filtrar ? 1 = Sim ; 2 = Não
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// O quarto parâmetro pode ser configurado com os seguintes estados.
//.T. = Espelhar.
//.F. = Atualizar.
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
MSExecAuto({|x, y, w, z| AtfA060(x, y, w, z)},aDadosAuto, 4, aParamAuto , .F.)
If lMsErroAuto
lRetorno := .F.
MostraErro()
Else
lRetorno:=.T.
EndIf
Return |
#Include 'Protheus.ch'
#Include 'Protheus.ch'
#Include 'tbiconn.ch'
User Function MyATFA060()
Local aDadosAuto := {} // Array com os dados á serem enviados pela MsExecAuto() para gravação automática.
Local aParamAuto := {}
Private lMsHelpAuto := .F. // Determina se as mensagens de help devem ser direcionadas para o arq. de log.
Private lMsErroAuto := .F. // Determina se houve alguma inconsistência na execução da rotina em relação aos
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ O exemplo abaixo foi considerado passando somente dados de conta contabil e centro de custo, caso ³
//³ necessário passar os campos referentes a itens contábeis e classes de valores. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01 ' TABLES 'SN1','SN3','SN4','FNR' MODULO 'ATF'
dDatabase := cTod("02/10/2023")
aDadosAuto:= {{'N3_CBASE' , "TRANSF6 " , Nil},; // Código base do ativo
{'N3_ITEM' , "001 " , Nil},; // Item sequencial do código bas do ativo
{'N3_TIPO' , "10" , Nil},; // Tipo do Ativo
{'N1_FILIAL' , "D MG 02 " , Nil},; // Filial de Destino do Ativo
{'N1_QUANTD' , 4 , Nil},; // Quantidade destino
{'N4_DATA' , dDatabase , Nil},; // Data de aquisição do ativo
{'N3_CCUSTO' , " " , Nil},; // Centro de Custo de Despesa
{'N3_CCONTAB' , "101010100 " , Nil},; // Conta Contabil
{'N3_CCORREC' , " " , Nil},; // Conta de Correcao do Bem
{'N3_CDEPREC' , "201010100 " , Nil},; // Conta Despesa Depreciação
{'N3_CCDEPR' , " " , Nil},; // Conta Depreciação Acumulada
{'N3_CDESP' , " " , Nil},; // Conta Correção Depreciação
{'N3_CUSTBEM' , " " , Nil},; // Centro de Custo da Conta do Bem
{'N3_CCCORR' , " " , Nil},; // Centro Custo Correção Monetária
{'N3_CCDESP' , " " , Nil},; // Centro Custo Despesa Depreciação
{'N3_CCCDEP' , " " , Nil},; // Centro Custo Despesa Acumulada
{'N3_CCCDES' , " " , Nil},; // Centro Custo Correção Depreciacão
{'N1_GRUPO' , " " , Nil},; // Código do Grupo do Bem
{'N1_LOCAL' , " " , Nil},; // Localizacao do Bem
{'N1_NFISCAL' , " " , Nil},; // Numero da NF
{'N1_NSERIE' , " " , Nil},; // Serie da NF
{'N1_TAXAPAD' , " " , Nil} } // Codigo da Taxa Padrao
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Caso deseje passar valores para os campos, Grupo, Local, NF/Serie Taxa padrao, considerar ³
//³ como no exemplo acima utilizando os campos correspondentes da tabela SN1. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// Parâmetros das perguntas da rotina atfa060
aAdd( aParamAuto, {"MV_PAR01", 1} ) //Pergunta 01 - Contabiliza ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR02", 2} ) //Pergunta 02 - Mostra Lanc Contab ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR03", 2} ) //Pergunta 03 - Aglut Lançamentos ? 1 = Sim ; 2 = Não
aAdd( aParamAuto, {"MV_PAR04", 2} ) //Pergunta 04 - Botão Filtrar ? 1 = Sim ; 2 = Não
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// O quarto parâmetro pode ser configurado com os seguintes estados.
//.T. = Espelhar.
//.F. = Atualizar.
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
MSExecAuto({|x, y, w, z| AtfA060(x, y, w, z)},aDadosAuto, 4, aParamAuto , .F.)
If lMsErroAuto
lRetorno := .F.
MostraErro()
Else
lRetorno:=.T.
EndIf
Return |
#include 'Protheus.ch'
#include 'tbiconn.ch'
User Function MyATFA060()
Local aDadosAuto := {} // Array com os dados á serem enviados pela MsExecAuto() para gravação automática.
Local aParamAuto := {}
Local lRetorno := .T.
Private lMsHelpAuto := .F. // Determina se as mensagens de help devem ser direcionadas para o arq. de log.
Private lMsErroAuto := .F. // Determina se houve alguma inconsistência na execução da rotina em relação aos
dDatabase := cTod("31/01/2017")
aDadosAuto:= {{'N1_FILIAL' , "M SP 02 " , Nil},; // Filial de Destino do Ativo
{'N3_CBASE' , "ATFTRNS005" , Nil},; // Código base do ativo
{'N4_DATA' , dDatabase , Nil},; // Data de aquisição do ativo
{'N3_ITEM' , "0002" , Nil},; // Item sequencial do código bas do ativo
{'N3_TIPO' , "01" , Nil},; // Tipo do Ativo
{'N3_CCUSTO' , " " , Nil},; // Centro de Custo de Despesa
{'N3_CCONTAB' , "33301 " , Nil},; // Conta Contabil
{'N3_CCORREC' , " " , Nil},; // Conta de Correcao do Bem
{'N3_CDEPREC' , " " , Nil},; // Conta Despesa Depreciação
{'N3_CCDEPR' , " " , Nil},; // Conta Depreciação Acumulada
{'N3_CDESP' , " " , Nil},; // Conta Correção Depreciação
{'N3_CUSTBEM' , " " , Nil},; // Centro de Custo da Conta do Bem
{'N3_CCCORR' , " " , Nil},; // Centro Custo Correção Monetária
{'N3_CCDESP' , " " , Nil},; // Centro Custo Despesa Depreciação
{'N3_CCCDEP' , " " , Nil},; // Centro Custo Despesa Acumulada
{'N3_CCCDES' , " " , Nil},; // Centro Custo Correção Depreciacão
{'N1_GRUPO' , " " , Nil},; // Código do Grupo do Bem
{'N1_LOCAL' , " " , Nil},; // Localizacao do Bem
{'FNR_GERNF' , "1" , Nil},; // 1 = GERA NF
{'N1_NSERIE' , "001" , Nil},; // Serie da NF
{'FN9_CLSNF' , "2" , Nil},; // 1- A CLASSIFICAR 2- CLASSIFICADA
{'FN9_TESSAI' , "523" , Nil},; // TES SAIDA
{'FN9_TESENT' , "023" , Nil},; // TES ENTRADA
{'FN9_VALNF' , 9000 , Nil},; // Valor NF
{'FN9_TPFRET' , "S" , Nil}} // Tipo de Frete = S - Sem Frete
MSExecAuto({|x, y, w, z| AtfA060(x, y, w, z)},aDadosAuto, 4, aParamAuto , .F.)
If lMsErroAuto
lRetorno := .F.
MostraErro()
EndIf
Return lRetorno |
Saiba mais:
Rotina Automática ATFA060 - Transferência do Ativos
0 Comentários