Árvore de páginas

Reestruturação do controle de saldos dos cubos do módulo SIGAPCO

Linha de Produto:

Microsiga Protheus

Segmento:

Serviços

Módulo:

SIGAPCO - Planejamento e Controle Orçamentário

Função:

Pcoa300 / Pcoa310

Situação/Requisito:

Reestruturação do controle de saldos dos cubos do módulo SIGAPCO e Reprocessamento de Lançamentos

Solução/Implementação:

Reestruturação do controle de saldos dos cubos do módulo SIGAPCO  e Reprocessamento de Lançamentos

Após aplicação do patch deste chamado o controle de saldos será somente pela tabela de saldos diários (AKT) não mais atualizando a tabela de saldos mensais (AKS) por motivo de performance. Todas as rotinas que trabalham com saldos foram adequadas para trabalhar com unica tabela de saldos diários (AKT), sendo que para usuário final a funcionalidade do sistema continua exatamente como sempre não afetando os programas padrões do módulo SIGAPCO.
As customizações que utilizavam a tabela AKS-Saldos Mensais deverão ser adequadas para somente ler a tabela AKT-Saldos Diários uma vez que a mensal será descontinuada.

Executar o compatiblizador de base de dados U_UPDPCO para criação do campo "Analitico" (AKT_ANALIT) na tabela de saldos diários que indicara se chave gravada é analítica.

Criado também o parâmetro "MV_PCOPROC" com conteúdo "" (em branco) onde poderá indicar o processo que esta preparado para no reprocessamento de lançamentos (PCOA310) executar com procedure, sendo que a inclusão e validação do registro será por ponto de entrada.

É recomendável que seja excluído os registros da tabela AKS - Saldos Mensais uma vez que esta não será mais utilizada e também que seja reprocessado os saldos, pois o campo "Analitico" (AKT_ANALIT) será populado pela rotina de reprocessamento de saldos. Solicitamos cautela com este procedimento pois dependendo do volume de movimentos este processamento poderá demorar muitas horas, então verificar previamente a viabilidade da aplicação do patch com esta funcionalidade.

Esclarecemos que tende a melhorar tempo de resposta de todas integrações, pois a partir da aplicação deste patch teremos menor numero de gravações das tabelas de saldos e semáforo da chave do cubo tende a ser liberado mais rapidamente.

Recomendamos para os testes de homologação do pacotes seguir os seguintes procedimentos:

  • Aplicar patch do pacote
  • Rodar compatibilizador de base do módulo SIGAPCO - U_UPDPCO
  • Reinstalar pacote 13 de procedure via configurador - p11_13.sps
  • Após estes procedimentos reprocessar os cubos gerenciais pela rotina pcoa300, mas fazer os testes de forma gradativa, por exemplo, reprocessar somente 5 dias, depois 10, 15, 30 dias, depois partir para 2 meses e assim por diante.

Na rotina de reprocessamento de cubos implementado uma verificação dos movimentos orçamentários x Saldos Diários para indicar se cubo esta integro. Esta verificação ocorre sempre ao sair da rotina de reprocessamento de cubos, independentemente de confirmar ou cancelar o reprocessamento, uma vez que os movimentos devem ser refletidos na tabela de saldo diário.

No reprocessamento de lançamento implementado, a condição de executar a inclusão dos movimentos orçamentários via procedure, sendo que a alternativa a macro execução do ponto de lançamento será via ponto de entrada que deve retornar um script em linguagem de procedure nos bancos de dados SQLSERVER, ORACLE, DB2 ou INFORMIX.

veja documentação do ponto de entrada PCOA3105 no link TDN:

DT_Ponto_entrada_PCOA3105_inclusao_movimentos_orcamentarios_por_procedure

No reprocessamento de lançamento implementado também a condição de executar por customização a rotina, para tanto utilizar o exemplo de chamada abaixo:

#INCLUDE "PROTHEUS.CH"

USER FUNCTION PRCPCOA310()

LOCAL APAR1

LOCAL APAR2

APAR1 := {.T., CTOD("01/01/14"), CTOD("31/12/14"), " ", .F., .F. }

APAR2 := {}

PCOA310( 2, "000082", "01", APAR1, APAR2 )

RETURN

 

Síntaxe : PCOA310( nOpc, cCodProcesso, cItemProcesso, Array Parametros 1, Array Parametros 2 )

nOpc = 2 – Reprocessar

cCodProcesso = "000082" - Processo de Contabilização

cItemProcesso = "01" - Contabilização - Itens

Array Parametros 1:

Posicao 1 (Logico) = .T. - Excluir itens dos movimentos orçamentarios (AKD) referente ao processo indicado

Posicao 2 (Data) = CtoD("01/01/14") - Periodo inicial para reprocessamento dos lançamentos e exclusao dos movimentos orçamentarios

Posicao 3 (Data) = CtoD("31/01/14") - Periodo finall para reprocessamento dos lançamentos e exclusao dos movimentos orçamentarios

Posicao 4 (Caracter) = " " - Filtro na tabela Origem (neste exemplo CT2)

Posicao 5 (Logico) = .F. - Visualizar Lançamentos processados (em caso de procedure independente da resposta será considerado .F.)

Posicao 6 (Logico) = .F. - Atualiza saldos apos reprocessamento de lançamentos

Array Parametros 2:

Posicao 1 (Caracter) = " " - Filtro adicional na tabela de movimentos orçamentários (AKD) utilizado para exclusão dos lançamentos

Chamados relacionados:

TVTMDP

Reestruturação do controle de saldos dos cubos do módulo SIGAPCO

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Serviços

Módulo:

SIGAPCO - Planejamento e Controle Orçamentário

Rotina:

Rotina

Nome Técnico

PCOA300

Reprocessamento de Cubos

Rotina(s) envolvida(s)

Nome Técnico

PCOA122.PRW Revisoes do Orçamento
PCOA190.PRWCadastro de Cubos
PCOA193.PRWCadastro de Cubos
PCOA300.PRWReprocessamento de Cubos
PCOA301.PRWReprocessamento de Cubos Multi
PCOC310.PRWConsulta Cubos Mensal
PCOC331.PRWConsulta Saldos por Cubo
PCOC341.PRWConsulta Saldos dos Cubos por Periodo
PCOC351.PRWConsulta Visao Saldo do Cubo
PCOC361.PRWConsulta Visao Saldo do Cubo por Periodo
PCOR300.PRWRelatório Balancete
PCOR310.PRWDemonstrativo de Saldos
PCOR320.PRWDemonstrativo de Saldos por Periodo
PCOR500.PRWRelatório Cubos Comparativos Balancete
PCOR510.PRWRelatório Cubos Comparativos Demonstrativos de Saldos
PCOR520.PRWRelatório Cubos Comparativos Demonstrativo Por Períodos
PCOR521.PRWRelatório Cubos Comparativos Demonstrativo Por Período Resumido Modelo 2
PCOXCUB.PRWRotina generica saldos dos cubos por query
PCOXSLD.PRWRotina generica saldos dos cubos por chave
PCOA310.PRWReprocessamento de lançamentos

Cadastros Iniciais:

Cadastro de Contas Orçamentarias

Cadastro de Classes Orçamentarias

Cadastros de Tipos de Saldos

Cadastro de Operaçoes

Cadastro de Cubos

Chamados Relacionados

TVTMDP

País(es):

Todos

Banco(s) de Dados:

Todos

Tabelas Utilizadas:

AKT - Saldos Diarios

Sistema(s) Operacional(is):

Todos

Descrição

Reestruturação do controle de saldos dos cubos do módulo SIGAPCO 

Após aplicação do patch deste chamado o controle de saldos será somente pela tabela de saldos diários (AKT) não mais atualizando a tabela de saldos mensais (AKS) por motivo de performance. Todas as rotinas que trabalham com saldos foram adequadas para trabalhar com unica tabela de saldos diários (AKT), sendo que para usuário final as funcionalidades do sistema continuam exatamente como sempre foram, não afetando os programas padrões do módulo SIGAPCO.
As customizações que utilizavam a tabela AKS-Saldos Mensais deverão ser adequadas para somente ler a tabela AKT-Saldos Diários uma vez que a mensal será descontinuada.

Executar o compatiblizador de base de dados U_UPDPCO para criação do campo "Analitico" (AKT_ANALIT) na tabela de saldos diários que indicara se chave gravada é analítica.

Criado também o parâmetro "MV_PCOPROC" com conteúdo "" (em branco) onde poderá ser indicado o processo que esta preparado para no reprocessamento de lançamentos (PCOA310) executar com procedure, sendo que a inclusão e validação do registro será por ponto de entrada.

É recomendável que seja excluído os registros da tabela AKS - Saldos Mensais uma vez que esta não será mais utilizada e também que seja reprocessado os saldos, pois o campo "Analitico" (AKT_ANALIT) será populado pela rotina de reprocessamento de saldos. Solicitamos cautela com este procedimento pois dependendo do volume de movimentos este processamento poderá demorar muitas horas, então verificar previamente a viabilidade da aplicação do patch com esta funcionalidade.

Esclarecemos que tende a melhorar tempo de resposta de todas integrações, pois a partir da aplicação deste patch teremos menor numero de gravações das tabelas de saldos e semáforo da chave do cubo tende a ser liberado mais rapidamente.

Somente instalar a pacote de procedure p11_13;sps após rodar o compatilizador da base de dados U_UPDPCO, pois estas procedures alimentarão novo campo "Analitico" criado na tabela de movimentos diários.

No reprocessamento de lançamento implementado, a condição de executar a inclusão dos movimentos orçamentários via procedure, sendo que a alternativa a macro execução do ponto de lançamento será via ponto de entrada que deve retornar um script em linguagem de procedure nos bancos de dados SQLSERVER, ORACLE, DB2 ou INFORMIX.

veja documentação do ponto de entrada PCOA3105 no link TDN:

DT_Ponto_entrada_PCOA3105_inclusao_movimentos_orcamentarios_por_procedure

No reprocessamento de lançamento implementado também a condição de executar por customização a rotina, para tanto utilizar o exemplo de chamada abaixo:

#INCLUDE "PROTHEUS.CH"

USER FUNCTION PRCPCOA310()

LOCAL APAR1

LOCAL APAR2

APAR1 := {.T., CTOD("01/01/14"), CTOD("31/12/14"), " ", .F., .F. }

APAR2 := {}

PCOA310( 2, "000082", "01", APAR1, APAR2 )

RETURN

 

Síntaxe : PCOA310( nOpc, cCodProcesso, cItemProcesso, Array Parametros 1, Array Parametros 2 )

nOpc = 2 – Reprocessar

cCodProcesso = "000082" - Processo de Contabilização

cItemProcesso = "01" - Contabilização - Itens

Array Parametros 1:

Posicao 1 (Logico) = .T. - Excluir itens dos movimentos orçamentarios (AKD) referente ao processo indicado

Posicao 2 (Data) = CtoD("01/01/14") - Periodo inicial para reprocessamento dos lançamentos e exclusao dos movimentos orçamentarios

Posicao 3 (Data) = CtoD("31/01/14") - Periodo finall para reprocessamento dos lançamentos e exclusao dos movimentos orçamentarios

Posicao 4 (Caracter) = " " - Filtro na tabela Origem (neste exemplo CT2)

Posicao 5 (Logico) = .F. - Visualizar Lançamentos processados (em caso de procedure independente da resposta será considerado .F.)

Posicao 6 (Logico) = .F. - Atualiza saldos apos reprocessamento de lançamentos

Array Parametros 2:

Posicao 1 (Caracter) = " " - Filtro adicional na tabela de movimentos orçamentários (AKD) utilizado para exclusão dos lançamentos

Importante

(Apenas para Microsiga Protheus, versões anteriores à versão 12)

Antes de executar o compatibilizador U_UPDPCO é imprescindível:

  • Realizar o backup da base de dados do produto que será executado o compatibilizador (diretório PROTHEUS_DATA\DATA, se versão 10, ou \PROTHEUS11_DATA\DATA, se versão 11) e dos dicionários de dados SXs (diretório PROTHEUS_DATA_SYSTEM, se versão 10, ou \PROTHEUS11_DATA\SYSTEM, se versão  11).
  • Os diretórios acima mencionados correspondem à instalação padrão do Protheus, portanto, devem ser alterados conforme o produto instalado na empresa.
  • Essa rotina deve ser executada em modo exclusivo, ou seja, nenhum usuário deve estar utilizando o sistema.
  • Se os dicionários de dados possuírem índices personalizados (criados pelo usuário), antes de executar o compatibilizador, certifique-se de que estão identificados pelo nickname. Caso o compatibilizador necessite criar índices, irá adicioná-los a partir da ordem original instalada pelo Protheus, o que poderá sobrescrever índices personalizados, caso não estejam identificados pelo nickname.
  • O compatibilizador deve ser executado com a Integridade Referencial desativada*.

 

Atenção

O procedimento a seguir deve ser realizado por um profissional   qualificado como Administrador de Banco de Dados (DBA) ou equivalente!

A ativação indevida da Integridade Referencial pode alterar   drasticamente o relacionamento entre tabelas no banco de dados. Portanto,   antes de utilizá-la, observe atentamente os procedimentos a seguir:

  1. No   Configurador (SIGACFG), veja se a empresa utiliza Integridade   Referencial, selecionando a opção Integridade/Verificação   (APCFG60A).
  2. Se não   há Integridade Referencial ativa,   são relacionadas em uma nova janela todas as empresas e filiais cadastradas   para o sistema e nenhuma delas estará selecionada. Neste caso, E SOMENTE NESTE, não é necessário   qualquer outro procedimento de ativação   ou desativação de integridade, basta finalizar a verificação e aplicar   normalmente o compatibilizador, conforme instruções.
  3.  Se há Integridade Referencial ativa   em todas as empresas e filiais, é   exibida uma mensagem na janela Verificação   de relacionamento entre tabelas. Confirme a mensagem para que a   verificação seja concluída, ou;
  4.  Se   há Integridade Referencial ativa   em uma ou mais empresas, que não   na sua totalidade, são relacionadas em uma nova janela todas as empresas e   filiais cadastradas para o sistema e, somente, a(s) que possui(em)   integridade está(arão) selecionada(s). Anote qual(is) empresa(s) e/ou   filial(is) possui(em) a integridade ativada e reserve esta anotação para   posterior consulta na reativação (ou ainda, contate nosso Help Desk Framework   para informações quanto a um arquivo que contém essa informação).
  5. Nestes   casos descritos nos itens “iii” ou   “iv”, E SOMENTE NESTES CASOS, é necessário desativar tal integridade, selecionando a opção Integridade/ Desativar (APCFG60D).
  6.  Quando desativada a Integridade Referencial,   execute o compatibilizador, conforme instruções.
  7. Aplicado o compatibilizador, a Integridade   Referencial deve ser reativada, SE E   SOMENTE SE tiver sido desativada, através da opção Integridade/Ativar (APCFG60). Para isso, tenha em mãos as   informações da(s) empresa(s) e/ou filial(is) que possuía(m) ativação da   integridade, selecione-a(s) novamente e confirme a ativação.

 

Contate o Help Desk Framework EM CASO DE DÚVIDAS!

 

  1. Em Microsiga Protheus TOTVS Smart Client (se versão 10), digite o U_UPDPCO no campo Programa Inicial. Descreva se o compatibilizador deve ter uma data específica ou superior para que a atualização nos dicionários seja efetuada corretamente. Importante: Para a correta atualização do dicionário de dados, certifique-se que a data do compatibilizador seja igual ou superior a 05/08/2016.
  2. Clique em OK para continuar.
  3. Após a confirmação é exibida uma tela para a seleção da empresa em que o dicionário de dados será modificado ou é apresentada a janela para seleção do compatibilizador. Selecione o programa xxxx().
  4. Ao confirmar é exibida uma mensagem de advertência sobre o backup e a necessidade de sua execução em modo exclusivo.
    1. Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
      É apresentada uma mensagem explicativa na tela.
    2. Em seguida, é exibida a janela Atualização concluída com o histórico (log) de todas as atualizações processadas. Nesse log de atualização são apresentados somente os campos atualizados pelo programa. O compatibilizador cria os campos que ainda não existem no dicionário de dados.
    3. Clique em Gravar para salvar o histórico (log) apresentado.
    4. Clique em OK para encerrar o processamento.

 

Descreva se há algum procedimento necessário após a aplicação do compatibilizador.

Atualizações do Compatibilizador

(Apenas para Microsiga Protheus, versões anteriores à versão 12)

1.  Criação ou Alteração (mantenha somente a instrução correspondente) de Campos no arquivo SX3 – Campos:

  • Tabela AKT - Mov. Diários Cubo Gerencial

 

Campo

AKT_ANALIT

Tipo

C

Tamanho

1

Decimal

0

Título

Chv.Analit. 

Descrição

Chave Analitica          

Nível

1

Usado

Sim

Obrigatório

Não

Browse

Não

Help

Indica se chave é analítica.

 

Importante:

O tamanho dos campos que possuem grupo pode variar conforme ambiente em uso.

7.  Criação ou Alteração de Parâmetros no arquivo SX6 – Parâmetros:

Nome da Variável

MV_PCOPROC

Tipo

C

Descrição

Processos de lancamentos que pode ser executadas  por procedure (processo/item).

Valor Padrão

 

Procedimento para Configuração

(Estes procedimentos devem ser feitos quando for necessário configurar parâmetros e/ou  rotinas no menu).

 

CONFIGURAÇÃO DE PARÂMETROS

 

  1. No Configurador (SIGACFG), acesse Ambientes/Cadastros/Parâmetros (CFGX017). Crie/configure o parâmetro a seguir:

Itens/Pastas

Descrição

Nome:

 MV_PCOTHRD

Tipo:

N

Cont. Por.:

2

Descrição:

 Numero de Threads utilizadas no reprocessamento do  saldos dos cubos.

 

CONFIGURAÇÃO DE MENUS

 

2.  No Configurador (SIGACFG), acesse Ambientes/Cadastro/Menu (CFGX013). Informe a nova opção de menu do informe o nome do módulo, conforme instruções a seguir:

Menu

Miscelanea

Submenu

Reprocessamento

Nome da Rotina

Cubos Multi-thread Por Periodos

Programa

PCOA301

Módulo

SIGAPCO

Tipo

PCOA301()

 

 

Procedimento para Utilização

       1.            No módulo de Planejamento e Controle Orçamentário (SIGAPCO), acesse Miscelânea / Reprocessamento  / Cubos Multi-thread Por Periodos (PCOA301).

       2.            Preencha os parâmetros na pasta Perguntas e Confirme

       3.            Na pasta Informações pressione o botão Executar.

     

 

 

Descrição

O ponto entrada PCOA3105 permite a inclusão de movimentos orçamentários utilizando linguagem de procedure dos bancos de dados SQLSERVER, ORACLE, DB2 e INFORMIX e funcionará como a transação para o processo de de inclusão do lançamento como alternativa a macro execução dos pontos de lançamentos. Para utilizar esta funcionalidade deverá o parâmetro MV_PCOPROC estar criado com conteúdo código do processo e item.

Esclarecemos que se utilizado esta funcionalidade todas as validações para o lançamento deverá ser efetuado via customização por esse ponto de entrada.

Os parâmetros passados ao ponto de entrada, são os seguintes:

  • ParamIxb[1]  - Código do processo de lançamento
  • ParamIxb[2]  - Item do processo de lançamento
  • ParamIxb[3]  - Parâmetros informados na entrada da rotina
  • ParamIxb[4]  - Tabela de origem
  • ParamIxb[5]  - Nome da procedure de item do lote (AKD_ID)

Ponto de Entrada

Descrição:

O ponto_entrada_PCOA3105 permite a inclusão de movimentos orçamentários utilizando linguagem de procedure dos bancos de dados SQLSERVER, ORACLE, DB2 e INFORMIX.

O exemplo abaixo se refere ao processo 000082 - Contabilização Itens e deve ser retrabalhado para atendimento das necessidades do cliente.

Localização:

Miscelanea / Reprocessamento / Lançamentos

Eventos:

Reprocessamento de lançamentos

Programa Fonte:

PCOA310

Função:

A310Proced

Retorno:

Nome

Tipo

Descrição

Obrigatório

 cPE3105

C

Script de procedure para inclusão dos movimentos orçamentários (AKD)

Sim

 

Exemplo:

#include "Protheus.ch"

User Function PCOA3105()

Local cProcesso := ParamIxb[1] //Codigo do processo de lancto
Local cItem := ParamIxb[2] //item do processo de lancto
Local aRet := ParamIxb[3] //parametros informados
Local cAliasEntid := ParamIxb[4] //entidade de origem
Local __cProcId := ParamIxb[5] //nome da procedure de item do lote (AKD_ID)

Local cCposAKD
Local cVarsAKD

Local cTipoDB := Upper(Alltrim(TCGetDB()))
Local lOracle := "ORACLE" $ cTipoDB
Local lPostgres := "POSTGRES" $ cTipoDB
Local lDB2 := "DB2" $ cTipoDB
Local lInformix := "INFORMIX" $ cTipoDB
Local cOpConcat := If( lOracle .Or. lPostgres .Or. lDB2 .Or. lInformix, " || ", " + " )

//----------------------------------------------------------------------------------------------------------------//
// VARIAVEIS DAS ENTIDADES DE ORIGEM SAO PRECEDIDAS DE @+TIPO
// EXEMPLO CAMPO CT2_DATA --> VARIAVEL @cCT2_DATA
//
// VARIAVEIS CARACTERS QUE PODEM SER UTILIZADAS POIS SAO PARAMETRO DA PROCEDURE
// @IN_ENTIDA - ENTIDADE ORIGEM
// @IN_PROCES - CODIGO DO PROCESSO DE LANCAMENTO
// @IN_ITEMPR - ITEM DO PROCESSO DE LANCAMENTO
// @IN_NUMLOTE - NUMERO DO LOTE
// @IN_DATAINI - DATA INICIAL
// @IN_DATAFIM - DATA FINAL
//
// variavel @cId recebe proximo item do lote
// A CADA INSERT DEVE SE COLOCAR A CHAMADA DA PROCEDURE PARA PROXIMO ITEM DO LOTE AKD_ID
// cPE3105 +=" EXEC "+__cProcID+"_"+cEmpAnt+" @IN_NUMLOTE, @cId OutPut "+CRLF
//
// SE POSSUIR 2 INSERTs NO SEGUNDO DEVE INCREMENTAR VARIAVEL @iRecno
// cPE3105 += " select @iRecno = IsNull(Max( R_E_C_N_O_ ), 0 ) from "+RetSqlName("AKD") + CRLF
// cPE3105 += " select @iRecno = @iRecno + 1 "+ CRLF
//
// variavel inteira @nLinCount - controla numero de linhas por transacao MV_PCOLIMI
// SE POSSUIR 2 INSERTs NO SEGUNDO DEVE INCREMENTAR VARIAVEL @nLinCount quando for partida dobrada
// cQuery += " Select @nLinCount = @nLinCount + 1 "+ CRLF

//

//SEMPRE QUE UTILIZAR INSERT DEVE COLOCAR A DIRETIVA TRATARECNO antes do begin tran e colocar FIMTRATARECNO Apos commit tran

//cPE3105 += " ##TRATARECNO @iRecno\ "+ CRLF
//cPE3105 += " begin tran"+CRLF

//

//INSERT.........

//cPE3105 += " commit tran"+CRLF
//cPE3105 += " ##FIMTRATARECNO "+ CRLF

//----------------------------------------------------------------------------------------------------------------//

cPE3105 :=""
cPE3105 +=" select @cId = ' '"+CRLF

cPE3105 +=" if @IN_PROCES = '000082' begin "+CRLF

cCposAKD := "AKD_FILIAL,AKD_STATUS,AKD_LOTE,AKD_ID,AKD_DATA,AKD_CO,AKD_CLASSE,AKD_OPER,AKD_TIPO,AKD_TPSALD,AKD_HIST,AKD_IDREF,AKD_PROCES,AKD_CHAVE,AKD_ITEM,AKD_SEQ,AKD_USER,AKD_COSUP,AKD_VALOR1,AKD_VALOR2,AKD_VALOR3,AKD_VALOR4,AKD_VALOR5,AKD_CODPLA,AKD_VERSAO,AKD_CC,AKD_ITCTB,AKD_CLVLR,AKD_LCTBLQ,AKD_UNIORC,AKD_FILORI,D_E_L_E_T_,R_E_C_N_O_,R_E_C_D_E_L_"
//variaveis debito
cVarsAKD := "@cFil_AKD,'1' ,@IN_NUMLOTE,@cId,@cCT2_DATA,"+IF(cTipoDB$"MSSQL7","RTRIM","TRIM")+"(@cCT2_DEBITO),'000001',' ','2','RE','CONTABILIDADE DEBITO PARA AKD',' ' ,@IN_PROCES,@cCT2_FILIAL"+cOpConcat+"@cCT2_DATA"+cOpConcat+"@cCT2_LOTE"+cOpConcat+"@cCT2_SBLOTE"+cOpConcat+"@cCT2_DOC"+cOpConcat+"@cCT2_LINHA"+cOpConcat+"@cCT2_TPSALD"+cOpConcat+"@cCT2_EMPORI"+cOpConcat+"@cCT2_FILORI"+cOpConcat+"@cCT2_MOEDLC,@IN_ITEMPR,'01','"+__cUserId+"',' ',@nCT2_VALOR,0,0,0,0,' ',' ',@cCT2_CCD,@cCT2_ITEMD,@cCT2_CLVLDB,' ',' ','"+cFilAnt+"',' ',@iRecno,0"

cPE3105 +=" if @cCT2_DC = '3' OR @cCT2_DC = '1' begin "+CRLF

cPE3105 += " select @iRecno = IsNull(Max( R_E_C_N_O_ ), 0 ) from "+RetSqlName("AKD") + CRLF
cPE3105 += " select @iRecno = @iRecno + 1 "+ CRLF

cPE3105 +=" EXEC "+__cProcID+"_"+cEmpAnt+" @IN_NUMLOTE, @cId OutPut "+CRLF

cPE3105 += " ##TRATARECNO @iRecno\ "+ CRLF
cPE3105 += " begin tran"+CRLF

cPE3105 += " INSERT INTO "+RetSqlName("AKD") +" ("+cCposAKD+")"+ CRLF
cPE3105 += " VALUES ("+cVarsAKD+")" + CRLF
cPE3105 += " commit tran"+CRLF
cPE3105 += " ##FIMTRATARECNO "+ CRLF
cPE3105 += " end "+ CRLF //finaliza if @cCT2_DC

cPE3105 +=" if @cCT2_DC = '3' OR @cCT2_DC = '2' begin "+CRLF

cPE3105 += " if @cCT2_DC = '3' begin Select @nLinCount = @nLinCount + 1 end "+ CRLF

cPE3105 += " select @iRecno = IsNull(Max( R_E_C_N_O_ ), 0 ) from "+RetSqlName("AKD") + CRLF
cPE3105 += " select @iRecno = @iRecno + 1 "+ CRLF

cPE3105 +=" EXEC "+__cProcID+"_"+cEmpAnt+" @IN_NUMLOTE, @cId OutPut "+CRLF

//variaveis credito
cVarsAKD := "@cFil_AKD,'1' ,@IN_NUMLOTE,@cId,@cCT2_DATA,"+IF(cTipoDB$"MSSQL7","RTRIM","TRIM")+"(@cCT2_CREDIT),'000001',' ','1','RE','CONTABILIDADE CREDITO PARA AKD',' ' ,@IN_PROCES,@cCT2_FILIAL"+cOpConcat+"@cCT2_DATA"+cOpConcat+"@cCT2_LOTE"+cOpConcat+"@cCT2_SBLOTE"+cOpConcat+"@cCT2_DOC"+cOpConcat+"@cCT2_LINHA"+cOpConcat+"@cCT2_TPSALD"+cOpConcat+"@cCT2_EMPORI"+cOpConcat+"@cCT2_FILORI"+cOpConcat+"@cCT2_MOEDLC,@IN_ITEMPR,'01','"+__cUserId+"',' ',@nCT2_VALOR,0,0,0,0,' ',' ',@cCT2_CCC,@cCT2_ITEMC,@cCT2_CLVLCR,' ',' ','"+cFilAnt+"',' ',@iRecno,0"

cPE3105 += " ##TRATARECNO @iRecno\ "+ CRLF
cPE3105 += " begin tran"+CRLF

cPE3105 += " INSERT INTO "+RetSqlName("AKD") +" ("+cCposAKD+")"+ CRLF
cPE3105 += " VALUES ("+cVarsAKD+")" + CRLF
cPE3105 += " commit tran"+CRLF
cPE3105 += " ##FIMTRATARECNO "+ CRLF

cPE3105 += " end "+ CRLF //finaliza if @cCT2_DC
cPE3105 += " end"+ CRLF //finaliza if @IN_PROCES = '000082'

Return(cPe3105)