01. DADOS GERAIS
Produto: |
TOTVS Backoffice
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Serviços |
Módulo: | TOTVS Backoffice (Linha Protheus) - Planejamento e Controle Orçamentário (SIGAPCO)
|
Função: | PCOSINCCO |
País: | Brasil |
Ticket: | Interno |
Requisito/Story/Issue | DSERCTR1-46829 |
02. DESCRIÇÃO
O ponto de entrada PCOSINC01 permite customizar a sincronização do cadastro de contas orçamentárias no módulo SIGAPCO com o plano de contas contábeis, de acordo com uma regra específica definida pelo usuário. Quando o parâmetro MV_PCOSINC
é configurado com o valor “2”, a rotina de sincronismo (PCOA010) realiza uma carga inicial das contas orçamentárias (tabela AK5) com base nas contas contábeis gerenciais (tabela CT1).
03. DEMAIS INFORMAÇÕES
Manipulação de PE no sistema
If ExistBlock( "PCOSINC01" ) ExecBlock("PCOSINC01",.F.,.F., {SuperGetMV("MV_PCOSINC",.T.,"1"), "CT1", 2, .T.}) EndIf
Exemplo de PE
#include 'rwmake.ch' User Function PCOSinc01() Local aArea := GetArea() Local cSinc := ParamIxb[1] Local cAlias := ParamIxb[2] Local nOpc := ParamIxb[3] Local lSinc := ParamIxb[4] // Forca sincronismo entre os cadastros Local cFilCT1 := '' If cSinc == '2' .And. cAlias == 'CT1' If nOpc == 1 .Or. nOpc == 2 // 1- Inclusao , 2- Alteracao // Inclui ou altera conta orçamentária (AK5) // a partir da conta contábil (CT1) If lSinc cFilCT1 := xFilial('CT1') CT1->(dbSetOrder(3)) CT1->(dbSeek(cFilCT1)) ProcRegua(CT1->(LastRec())) Do While CT1->(!Eof() .And. cFilCT1==CT1_FILIAL) IncProc() PCOPrcSinc() // Grava tabela AK5 CT1->(dbSkip()) EndDo Else PCOPrcSinc() // Grava tabela AK5 EndIf ElseIf nOpc == 3 // 3 - Exclusao // Exclui a conta orçamentária após excluir a conta contábil relacionada dbSelectArea('AK5') dbSetOrder(1) MsSeek(xFilial()+PadR(CT1->CT1_CONTA,Len(AK5->AK5_CODIGO))) RecLock('AK5',.F.,.T.) dbDelete() MsUnlock() ElseIf nOpc == 4 // Verificacao periodica de sincronismo dbSelectArea('CT1') dbSetOrder(3) // Faz a verificacao da regra de contas analiticas (CT1->CT1_CLASSE == '2') e que // comecem com '11' (SubStr(CT1->CT1_CONTA,1,2) == '11') da funcao PCOPrcSinc(), // para evitar carga da tabela AK5 toda vez que entrar no PCO. dbSeek(xFilial()+'2'+'11'+Replicate('z',Len(CT1->CT1_CONTA)-2),.T.) dbSkip(-1) If !Bof() .And. !Eof() dbSelectArea('AK5') dbSetOrder(1) If !MsSeek(xFilial()+PadR(CT1->CT1_CONTA,Len(AK5->AK5_CODIGO))) Processa({||ExecBlock('PCOSinc01',.F.,.F.,{cSinc,cAlias,2,.T.}) },'Verificando sincronização do Plano de Contas. Aguarde...') Endif EndIf EndIf EndIf RestArea(aArea) Return // Atualiza as contas orcamentarias a partir da tabela de contas contabeis Static Function PCOPrcSinc() If CT1->CT1_CLASSE == '2' .And. SubStr(CT1->CT1_CONTA,1,2) == '11' // Soh inclui ou atualiza se for uma conta analitica e com prefixo '11' dbSelectArea('AK5') dbSetOrder(1) If MsSeek(xFilial()+PadR(CT1->CT1_CONTA,Len(AK5->AK5_CODIGO))) RecLock('AK5',.F.) Else RecLock('AK5',.T.) EndIf AK5->AK5_FILIAL := xFilial('AK5') AK5->AK5_CODIGO := CT1->CT1_CONTA AK5->AK5_DESCRI := CT1->CT1_DESC01 AK5->AK5_TIPO := CT1->CT1_CLASSE AK5->AK5_DEBCRE := CT1->CT1_NORMAL AK5->AK5_DTINC := MsDate() AK5->AK5_DTINI := CT1->CT1_DTEXIS AK5->AK5_MSBLQL := CT1->CT1_BLOQ MsUnlock() EndIf Return
Importante !!
- Observa-se que a utilização do PE e os impactos dele no sistema são de responsabilidade do cliente.
- Os exemplos utilizados nessa documentação são apenas para fins de demonstração, cada cliente deve verificar qual comportamento deseja realizar de acordo com o escopo do ponto de entrada.
04. ASSUNTOS RELACIONADOS
- Não se aplica.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas