Especificação de Requisitos | ||
Projeto/Versão: MEX12.0/TOTVS Microsiga Protheus V12.0 | Requisito/Módulo: 001511/SIGACTB | |
Sub-Requisito/Função: 151104/Manutenção de fórmulas | Tarefa/Chamado: 00000B.05.01 | |
País: Todos | Data Especificação: 04/12/13 | |
Rotinas Envolvidas | ||
Rotina | Tipo de Operação | Opção de Menu |
CTBA093 – Manut. Fórmulas | Criação | Atualizações->Cadastros->Entidades-> Manut. Fórmulas |
Estratégia de Desenvolvimento e liberação | |
Produto | Microsiga Protheus – Contabilidade |
Release que está sendo desenvolvido | 11.90 |
Possui Réplica? | ( )Sim (X)Não |
Qual versão? | Não aplica |
Objetivo
Criar uma rotina que permita o registro de fórmulas para serem utilizadas na opção de Lançamentos Padronizados.
Definição da Regra de Negócio
Esta opção permitirá o registro de uma configuração simples ou de uma configuração mais complexa de instruções que serão utilizadas na configuração na opção dos Lançamentos Padronizados. A primeira chamaremos Configuração Rápida e a segunda Formulação.
Ao ingressar nessa opção apresentará o browse dos dados de fórmulas existentes (tabela CWK, tela PROTÓTIPO01). Com as opções Incluir, Alterar, Visualizar, Excluir, Consulta e as padrão.
Botão Incluir
Ao ingressar nessa opção visualizará uma tela com duas abas ( PROTÓTIPO02), uma que permita realizar o registro de fórmulas simples e outra que permitirá registrar fórmulas mais complexas.
Aba de Configuração Rápida
Os dados que serão solicitados são:
Código (cwk_codfor) – Código alocado pelo usuário para identificar a fórmula. Obrigatório
Descrição (CWK_desc) – Nome curto que descreve a funcionalidade da fórmula.
Grupo (cwk_grupo) – Código do grupo ao qual pertence a formula, pode selecionar da consulta padrão da tabela genérica CZ (tabela sx5). Obrigatório
Desc. Grupo (x5_descri) – Descrição do grupo. Virtual.
Tipo (cwk_tipo) - Pode selecionar entre, Conta/C. Custo/Item contábil/Cl. Valor/Valor fixo ou Fórmula (isso indica limpeza dos demais campos descritos a seguir).
Ao sair desse campo limpará os dados dos seguintes campos, exceto o que seja do Tipo selecionado. Enviará uma mensagem de advertência ao usuário ao detectar que tem informação em algum outro campo que não seja o selecionado, antes de continuar com a exclusão. Se a resposta do usuário for afirmativa, procederá a realizar a limpeza, de outra forma, deixará o Tipo selecionado, e não limpará campo nenhum.
Tipo de dado (CWK tipdat) .- Pode selecionar entre _Numérico, Caráter ou Data. Refere-se ao tipo de resultado que determinará a fórmula ao ser utilizada na opção de Lançamento padrão ou na de Mnemônicos.
Config. Rápida (fórmula valor) |
Valor (CWK_valor) – Será ativada somente se o campo Tipo for Valor. Permitirá o registro de qualquer tipo de dado ou fórmula advpl (validar que a sintaxe advpl seja correta, verificar a função de Lançamentos padronizados para ver como e feita essa validação).
Cond. Lançamento (CWK_conasi) – Será ativado somente se o campo Tipo for Valor.
Aqui o usuário registrará uma fórmula que retorne true ou false, pois se o resultado de sua execução for true, o conteúdo do campo valor será o resultado da execução da fórmula.
Deve ser validado um código ADVPL registrado que seja válido (verificar a rotina de Lançamentos padronizados para ver como é feita essa validação).
Config. Rápida (constantes) |
Conta Cont. (CWK_cuenta) – Será ativado somente se o campo Tipo for Conta. Pode selecionar os valores da consulta específica CWKTIP.
Se o usuário digitar diretamente valores no campo, verificará se este valor existe no catálogo de contas contáveis (ct2), mas, se o início do campo for M{_}, então verificará se existe o mnemônico (tabela cwj).
C. de Custos (CWK_cc) – Será ativado somente se o campo Tipo for C. Custo e o preenchimento deste campo for obrigatório. Pode selecionar os valores da consulta específica CWKTIP.
Se o usuário digita diretamente valores no campo, verificará se este valor existe no catálogo de centro de custos (ctt), mas, se o início do campo for M_, então verificará se existe o mnemônico (tabela cwj).
Item contábil (CWK_itectb) – Será ativado somente se o campo Tipo for Item Contábil, e o preenchimento deste campo for obrigatório. Pode selecionar os valores da consulta específica CWKTIP.
Se o usuário digita diretamente valores no campo, verificará se este valor existe no catálogo de itens contábeis (ctd), mas, se o início do campo for M_, então verificará se existe o mnemônico (tabela cwj).
Cl. Valor (CWK_clvalo) – Será ativado somente se o campo Cl. Valor, e o preenchimento deste campo for obrigatório. Pode selecionar os valores da consulta específica CWKTIP.
Se o usuário digita diretamente valores no campo, verificará se este valor existe no catálogo de classe valor (cth), mas, se o início do campo for M_, então verificará se existe o mnemônico (tabela cwj).
Ajuda (CWK_help)– Permitirá registrar uma breve explicação do que faz a fórmula.
Ao selecionar Confirmar, será realizada a tradução da formula ADVPL considerando o seguinte:
- Se o tipo de dado incluído (cwk_tipo) for Conta/C. Custo/Item contábil/Cl. Valor verificará se houve algum mnemônico entre os dados selecionados, em caso afirmativo, devem ser traduzidos para o campo ou tabela correspondentes da linguagem ADVPL, segundo seja o caso. Ou seja:
- Se for um mnemônico do tipo campo (cwj_tipdat='1'), então o valor cwj_campo será salvo em cwk_advpl.
- Se for um mnemônico do tipo tabela (cwj_tipdat='2'), então o valor de cwj_tabela será salvo em cwk_advpl.
- Se o mnemônico de tipo Fórmula (cwj_tipdat='3'), procura o valor de cwj_datvin no catálogo de fórmulas (cwk, cwk_codfor) o valor contido em cwk_advpl será salvo em cwk_advpl.
- Se o mnemônico de tipo Função (cwj_tipdat='4'), procura o valor de cwj_datvin no catálogo de funções (cwn, cwn_codfun) o valor contido em cwn_advpl será salvo em cwk_advpl.
- Se o mnemônico de tipo Função de usuário (cwj_tipdat='5'), o valor contido no campo cwj_funrpo será salvo em mcwk_advpl.
- Se o mnemônico de tipo valor (cwj_tipdat='6'), o valor contido no campo cwj_valor será salvo em cwk_advpl.
Se não tem mnemônicos, salvará o valor editado diretamente no campo cwk_advpl.
- Se o tipo de dado incluído (cwk_tipo) for Valor fixo, concatenará o conteúdo da Cond. Lançamento (campo wck_conasi) ao Valor (campo cwk_valor) mas com a sintaxe de um IF. Deixando como segue:
"IF ("Cond. Lançamento", "Valor")"
O resultado será salvo no campo cwk_advpl.
Essas mesmas ações serão executadas quando seja utilizado o botão Gerar Fórmula e o resultado da tradução possa ser visualizada no primeiro campo da aba com o Código Fórmula.
Uma vez realizada a tradução, salvará a informação correspondente na tabela de fórmulas (CWK).
Aba de Formulação
Os dados que visualizará são ( protótipo03):
Fórmula (CWK_advpl) – Este dado será atualizado ao salvar a fórmula ou ao selecionar o botão Gerar Fórmula, sempre e quando exista informação em getdados inferior ou dados nos campos Conta/C. Custo/Item contábil/Cl. Valor/Valor da aba de Catálogo. Apenas será visualizada.
Os dados no getdados:
A edição do getdados somente será válida se o dado tipo da aba do Catálogo for de tipo Fórmula.
Seq. (cwl_sec) – Número de sequência, e será alocado pelo usuário. Indicará a sequência na qual será executada a fórmula. Dado obrigatório e sem repetição.
Operador (cwl_oper).- Exibirá um listbox fixo com os códigos dos operadores (dependendo do idioma exibirá diferentes descrições do operador), de acordo com o seguinte (operadores válidos):
CÓD | CÓDIGO DO OPERADOR | Tipo | OPERANDO 1 | TIPO DE OPERANDO 1 | OPERADOR 2 | TIPO DE OPERANDO 2 |
| Sintaxe 2 |
01 | SOMA | A | O | N | O | N | OP1 + OP2 | |
02 | SUBTRAI | A | O | N | O | N | OP1 - OP2 | |
03 | MULTIPLICA | A | O | N | O | N | OP1 * OP2 | |
04 | DIVIDE | A | O | N | O | N | OP1 / OP2 | |
05 | PORCENTAGEM | A | O | N | O | N | (OP1/100) * OP2 | |
06 | TIPOCÂMBIO | A | O | D | O | N | RECMOEDA(CTOD(OP1),OP2) | |
07 | SE-MAIOR | Condição | O | C,D,N | O | TIPO 1 | OP1>OP2 | IF (OP1>OP2 |
08 | SE-MENOR | Condição | O | C,D,N | O | TIPO 1 | OP1<OP2 | IF (OP1<OP2 |
09 | SE-DIFERENTE | Condição | O | C,D,N | O | TIPO 1 | OP1<>OP2 | IF ( OP1<>OP2 |
10 | SE-CONTEÚDO | Condição | O | C | O | C | OP1 $ OP2 | IF (OP1 $ OP2 |
11 | SE-INICIAEM | Condição | O | C | O | C | AT(OP2,OP1)==1 | IF (AT(OP2,OP1)==1 |
12 | SE-VAZIO | Condição | O | C,D | V | EMPTY(OP1) | IF (EMPTY(OP1) | |
13 | SE-ENCONTROU | Condição | O | TABELA | O | CAMPO | OP1->(DBSEEK(XFILIAL('OP1')+OP2) | IF (OP1->(DBSEEK(XFILIAL('OP1')+OP2) |
14 | SE-FUNÇÃO | Condição | O | C | V | FUNNAME()=OP1 | IF (FUNNAME()=OP1 | |
15 | SE-IGUAL | Condição | O | C,D,N | O | TIPO1 | OP1==OP2 | IF ( OP1==OP2 |
16 | CONVERTE-TEXTO | S | O | N | V | STR(OP1) | ||
17 | CONVERTE-VALOR | S | O | C | V | VAL(OP2) | ||
18 | REMOVE-ESPAÇOS | S | O | C | V | ALLTRIM(OP2) | ||
19 | FILIAL | D | O | TABELA | V | XFILIAL(OP1) | ||
20 | CONTEÚDO-PARÂMETRO | D | O | C | V | GETMV("OP1") | ||
21 | ARREDONDA | N | O | N | O | N | ROUND(OP1,OP2) | |
22 | RESÍDUO | N | O | N | O | N | MOD(OP1 , OP2) | |
23 | TRUNCA | N | O | N | O | N | ROUND(OP1,OP2) | |
24 | LEE-SB1 | T | O | C | O | C | POSICIONE("SB1",1,OP1,OP2) | |
25 | LÊ-SED | T | O | C | O | C | POSICIONE("SED",1,OP1,OP2) | |
26 | LÊ-SF4 | T | O | C | O | C | POSICIONE("SF4",1,OP1,OP2) | |
27 | LÊ-SA2 | T | O | C | O | C | POSICIONE("SA2",1,OP1,OP2) | |
28 | LÊ-SA1 | T | O | C | O | C | POSICIONE("SA1",1,OP1,OP2) | |
29 | LÊ-SBM | T | O | C | O | C | POSICIONE("SBM",1,OP1,OP2) | |
30 | RETORNO | R | O | C,D,N | V | OP1 | ||
31 | CONCATENA | S | 0 | C | 0 | C | OP1+OP2 |
Acordo de operadores
Operando 1 (cwl_oper1) .- Somente pode ser editado se o Operador não está vazio. Este campo pode aceitar mnemônicos (reconhecidos por que iniciam em M{_}, mnemônicos concatenados pelo sinal +), valores numéricos ou caracteres (os quais devem ir entre virgulas para serem identificados.
Pode selecionar os mnemônicos da consulta específica CWJFOR.
Depois de registrar o valor pré-validará que se trata de qualquer um dos três tipos referidos:
- Se inicia com aspas, verificará o seu fechamento e será validado.
- Verificar se existe no cadastro de mnemônicos (CWJ), caso contrário validar que seja numérico.
- Se não for numérico e não existir como mnemônico não é um operando válido.
Se o tipo de dado do operando é uma Fórmula (cwj_tipdat='3'), verificar que a formula associada ao mnemónico (cwj_datvin) não seja a mesma que aquela que está sendo registrada (cwj_datvin<>m->cwk_codfor).
Depois verificará o tipo de dado que pode aceitar neste campo, de acordo com o operador selecionado (ver acordo anterior na coluna 4).
Operando 2 (cwl_oper2).- Somente será editável se o Operador não está vazio e a coluna 5 do acordo do operador tem um OU.
Terá as mesmas pré-validações que tem o operador 1, e a validação do tipo de dado que pode aceitar, será de acordo com o operador selecionado (ver acordo anterior na coluna 6).
Conjunção (cwl_conjun).- Somente será ativado se o Operador é de tipo condição, e somente permitirá selecionar entre OU e E.
Quebra a Sec (cwl_selsec).- Somente será ativado se o Operador é de Condição e o campo de Conjunção está vazio. Somente permitirá colocar numéricos. É o caminho que tomará a condição se for verdadeira.
Expressão (cwl_expres).- Permitirá gerar uma expressão aritmética utilizando operadores e mnemônicos, ao selecionar a consulta específica CTB931, abrirá uma tela que permite construir a expressão (ao sair deste campo validará que a expressão tenha sintaxe ADVPL correta) verifique o protótipo05. Somente permitirá a edição se todos os campos anteriores estão vazios.
Em cada linha deve validar que a sintaxe seja correta, de acordo com o Operador (a sintaxe está localizada num acordo em rotinas do Protheus em código duro), verificando informação como, se o tipo de dado que aceita o operador é válido ou se este é um dado obrigatório, etc.
Ao descer da linha deve demonstrar nos campos Descrição Operando 1/Descrição Operando 2, a descrição do mnemônico selecionado em cada um, mas somente se o operando é um mnemônico, do contrário, a descrição deve ficar em branco.
Os campos descrição operando1/Descrição Operando 2 devem ser criadas em tempo de execução e não salva o seu conteúdo na BD.
Nota técnica: Criar uma rotina de validação de sintaxe por cada operador, a mesma que será utilizada para a validação por linha.
Se não é correto, enviará ao usuário a mensagem correspondente e não permitirá avançar nem salvar com o erro.
Ao Confirmar, realizar as seguintes ações:
- Ordenará por consecutivo (cwl_sec).
- Traduzirá a formulação do código ADVPL (criar a rotina CTB93GEN() que realizará esta ação), mas o resultado dessa tradução será salvo no campo cwk_advpl.
- Uma vez obtida a informação do código ADVPL, deve validar a sintaxe, baseada na função Ctb080Form(), que é a mesma que atualmente utiliza a rotina de Lançamentos padrão.
- Extrair todas as tabelas utilizadas na construção da fórmula
Se a fórmula for validada corretamente, salvará os campos correspondentes nas tabelas cwk e cwl, no campo cwk_advpl salvará no código advpl resultante do ponto anterior no campo cwk_foreje salvará a instrução EjeFor e o código da fórmula, por exemplo: EjeFor("FOR001").
Salvará as tabelas utilizadas na formulação (sem repetir a tabela) na tabela de relação de fórmulas x tabelas (CWQ). Não deve levar em conta aquelas utilizadas no alias das instruções Posicione.
Botão Alterar
Ao acessar esta opção visualizará uma tela com duas abas (protótipo02) e só poderá utilizá-la se o usuário está posicionado em uma formula. Do contrário deve enviar a mensagem "Não tem dados a modificar".
Todos os dados podem ser alterados, exceto o código da fórmula (cwk_codofor), e os demais dados terão a mesma funcionalidade descrita para o botão Incluir.
Ao salvar a informação, verificar se algum Lançamento padrão utiliza a fórmula em questão: Selecionar todos os registros da relação de Lançamento padronizados x Fórmula (tabela cwm), que contenham o código da fórmula (cwk_codfor=cwm_codfor). Se encontra registros, perguntar ao usuário "Existem Lançamentos padronizados utilizando esta fórmula, se salva a informação atualizará os Lançamentos envolvidos. Prosseguir?".
Se for afirmativa a resposta, salvar, em caso contrário cancelar a operação.
Botão Excluir
Ao acessar esta opção visualizará uma tela com duas abas (prototipo02) e só poderá utilizá-la se o usuário está posicionado em uma formula. Do contrário deve enviar a mensagem "Não tem dados a excluir".
Quando o usuário clicar em Confirmar, verificar se algum Lançamento padrão utiliza a fórmula em questão, isto é Selecionar todos os registros da relação de Lançamentos padronizados x Fórmula (tabla cwm), que contenham o código da fórmula (cwk_codfor=cwm_codfor). Se encontra registros, enviará ao usuário o aviso "Existem Lançamentos padronizados utilizando esta fórmula, e não pode ser excluída". Se não encontra registros, perguntará ao usuário "Excluir a fórmula?", se for afirmativa, procederá a eliminá-la, do contrário retornará ao browse.
Botão Consultar
Ao acessar esta opção, é visualizado o cabeçalho da fórmula e uma getdados com os lançamentos padronizados que estão utilizando a fórmula ( protótipo 04).
Selecionar todos os registros da relação de Lançamentos padronizados x Fórmula (tabla cwm), que contenham o código da formula (cwk_codfor=cwm_codfor) e relacionar as coincidências com a tabela de Lançamentos (tabela ct5, ct5_lanpad=cwm_lanpad e ct5_sequen=cwm_sequen).
O cabeçalho visualizará os dados:
Código (CWK_codofor) – Código alocado pelo usuário para identificar a fórmula.
Descrição (CWK_desc) – Nome resumido que descreve a funcionalidade da fórmula.
Grupo (CWK_grupo) – Código do grupo ao qual pertence a fórmula.
Desc. Grupo (x5_descri) – Descrição do grupo.
Fórmula (CWK_advpl) – Fórmula em ADVPL.
No detalhamento visualizará os dados:
Cód Lanç Pad. (ct5_lanpad) Código do lançamento padrão, Sequencial (ct5_sequen), Status (ct5_status), Descrição (ct5_desc), Tipo Lançamento (ct5_dc) , todos os campos Cta. Cargo (ct5_debito) , Cta. Abono (ct5_credit) , C. Custos CRG (ct5_ccd), C. Custo Abn (ct5_ccc), Item Cargo (ct5_itemd), Item Abono (ct5_itemc), Cl. Vlr. Crg. (ct5_clvldb), Cl. Vlr. Abn. (ct5_clvlcr), Outr. Inf. Crg (ct5_ativde), Outr. Inf. Abn (ct5_ativcr) e os campos de valores(ct5_vlr01.. ct5_vlr05), Lanç. Moedas (ct5_moedas) .
Consulta CWJFOR.- Mnemônicos
Será criada a consulta padronizadaCWJFOR, onde serão visualizadas as colunas:
- Mnemônico (cwj_codmne)
- Descrição (cwj_descri)
- Tipo Dado (cwj_tipdat)
- Grupo (cwj_grupo)
- Tabela (cwj_tabla)
- Campo (cwj_campo)
- Dado vinculado (cwj_datvin)
- Função RPO (vwj_funrpo)
- Valor fixo (cwj_valor)
Filtrar a informação para que só apresente os registros que são do tipo que necessita o operador (segundo o acordo dos operadores).
Por exemplo: se o operador é SOMA, o operando deve ser do tipo Numérico, então os mnemônicos que apresente serão do tipo Numérico (apresentará os mnemônicos do tipo Campo, Fórmula, Função ou Valor cujo retorno seja numérico, para o primeiro validar cwj_campo no sx3 e obter x3_tipo=N, para a fórmula procurar no cadastro de fórmulas e que o tipo de esta seja numérico (cwk_tipdat=Numérico), para a função cwj_tipdat=1. Criar a função CTB093FIL, a qual terá os diferentes filtros do acordo com o tipo de dados requerido.
CÓDIGO DO OPERADOR | TIPO DE OPERANDO 1 | TIPO DE OPERANDO 2 |
SOMA | N | N |
SUBTRAI | N | N |
MULTIPLICA | N | N |
DIVIDE | N | N |
PORCENTAGEM | N | N |
TIPOCÂMBIO | D | N |
SE-MAIOR | C,D,N | Igual ao tipo Operador 1 |
SE-MENOR | C,D,N | Igual ao tipo Operador 1 |
SE-DIFERENTE | C,D,N | Igual ao tipo Operador 1 |
SE-CONTEÚDO | C | C |
SE-INICIAEM | C | C |
SE-VAZIO | C,D | |
SE-ENCONTROU | TABELA | CAMPO |
SE-FUNÇÃO | C | |
SE-IGUAL | C,D,N | Igual ao tipo Operador 1 |
CONVERTE-TEXTO | N | |
CONVERTE-VALOR | C | |
REMOVE-ESPAÇOS | C | |
FILIAL | TABELA | |
CONTEÚDO-PARÂMETRO | C | |
ARREDONDA | N | N |
RESIDUO | N | N |
TRUNCA | N | N |
LÉ-SB1 | C | C |
LÉ-SED | C | C |
LÊ-SF4 | C | C |
LÊ-SA2 | C | C |
LÊ-SA1 | C | C |
LÊ-SBM | C | C |
RETORNO | C,D,N | |
CONCATENA | C | C |
Retornará o valor do código do mnemônico selecionado (cwj_codmne).
Consulta CWKTIP.- Seleção de dado
Será criada a consulta específica CWKTIP, se o campo CWK_CUENTA é de onde se está executando, então apresentará a tela:
Somente um dos campos deve ser preenchido.
O campo Conta, terá associada a consulta padrão CT2, e ao sair do campo verificará que o dato digitado exista no catálogo de contas. Este campo só será editável si o outro estiver vazio.
O campo de Mnemónico, terá associada a consulta padrão CWJ, e ao sair do campo verificará que o dado digitado exista no catálogo de mnemônicos. Este campo só será editável se o outro estiver vazio.
Se o campo CWK_CC é de onde está sendo executado, então apresentará a tela:
Somente um dos campos deve ser preenchido.
O campo Centro de custo, terá associada a consulta padrão CTT, e ao sair do campo verificará que o dado digitado exista no catálogo de centros de custo. Este campo só será editável se o outro estiver vazio.
O campo de Mnemónico, terá associada a consulta padrão CWJ, e ao sair do campo verificará que o dado digitado exista no catálogo de mnemônicos. Este campo só será editável se o outro estiver vazio.
Se o campo CWK_ITECTB é de onde está sendo executado, então apresentará a tela:
Somente um dos campos deve ser preenchido.
O campo Item contábil, terá associada a consulta padrão CTD, e ao sair do campo verificará que o dado digitado exista no catálogo de Item contábil. Este campo só será editável se o outro estiver vazio.
O campo de Mnemónico, terá associada a consulta padrão CWJ, e ao sair do campo verificará que o dado digitado exista no catálogo de mnemônicos. Este campo só será editável se o outro estiver vazio.
Se o campo CWK_CLVALO é de onde está sendo executando, então apresentará a tela:
Somente um dos campos deve ser preenchido.
O campo Classe valor, terá associada a consulta padrão CTH, e ao sair do campo verificará que o dado digitado exista no catálogo de Classe valor. Este campo só será editável se o outro estiver vazio.
O campo de Mnemónico, terá associada a consulta padrão CWJ, e ao sair do campo verificará que o dado digitado exista no catálogo de mnemônicos. Este campo só será editável se o outro estiver vazio.
Retornará o valor digitado.
Operadores Válidos
[Retorno
#regreso6] | ||||
Operador | Uso | |||
Espanhol | Português | Inglês | ||
SUMA | SOMA | ADD | Soma operando1 y operando2. | |
Operador | Uso | |||
Espanhol | Português | Inglês | ||
SUBTRAI | SUBTRACT | Subtrai operando 1 e operando 2. |
Operador | Uso | |||
Espanhol | Português | Inglês | ||
MULTIPLICA | MULTIPLY | Multiplica operando 1 e operando 2. | ||
Operador | Uso | |||
Espanhol | Português | Inglês | ||
DIVIDE | DIVIDE | Divide operando 1 e operando 2. Onde operando 1 é o dividendo y o Operando 2 é o divisor. |
Operador | Uso | ||
Espanhol | Português | Inglês | |
PORCENTAGEM | MODULUS | Obtém a porcentagem do Operando 1 sobre o Operando 2. | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
TIPOCÂMBIO | EXCHANGE | Obtém o valor da moeda (operador2) numa data determinada (operador1). |
Operador | Uso | ||
Espanhol | Português | Inglês | |
SE-IGUAL | IF-EQUAL | Compara o valor de um mnemônico com outro, se cumpre a condição de que são IGUAIS, deve indicar com uma sequência PARA ONDE SEGUE ESTE PROCEDIMENTO, AO NAO SER CUMPRIDA A CONDIÇÃO DE IGUALDADE, a sequência de instruções continua. | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
SE-MAIOR | IF-GREATERTHAN | Compara o valor de um mnemônico com outro, se cumpre a condição de que o valor do mnemônico se encontra em O |
Operador | Uso | ||
Espanhol | Português | Inglês | |
SE-MENOR | IF-LESSTHAN | Compara o valor de um mnemônico com outro, se cumpre a condição de que o valor do mnemônico se encontra em O | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
SE-DIFERENTE | IF-NOTEQUAL | Compara o valor de um mnemônico com outro, se cumpre a condição de que são DIFERENTES, deve indicar com uma sequência PARA ONDE SEGUE ESTE PROCEDIMENTO, AO NAO SER CUMPRIDA A CONDIÇÃO, a sequência de instruções continua. |
Operador | Uso | |||
Espanhol | Português | Inglês | ||
SE-CONTEÚDO | IF-CONTENT | Se o mnemônico contido no Operando 1 CONTEM parte do valor contido no operando 2, se cumpre a condição, deve indicar com uma sequência PARA ONDE SEGUE ESTE PROCEDIMENTO, AO NAO SER CUMPRIDA A CONDIÇÃO, a sequência de instruções continua. | ||
Operador | Uso | |||
Espanhol | Português | Inglês | ||
SE-INICIAEM | IF-BEGIN | Se o mnemônico contido no Operador 1 INICIA com o valor contido no Operando2, se cumpre a condição, deve indicar com uma sequência PARA ONDE SEGUE ESTE PROCEDIMENTO, AO NAO SER CUMPRIDA A CONDIÇÃO, a sequência de instruções continua. |
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
SE-VAZIO | IF-EMPTY | Indica se o operando 1 está vazio. | |||
Espanhol | Português | Inglês | |||
SE-ENCONTROU | IF-FOUND | Se encontra na tabela contida no Operador 1, o valor contido no operador2 | |||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
CONVERTE-VALOR | VALUE | Converte em VALOR NUMÉRICO o conteúdo do Operando 1 | |||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
REMOVE-ESPAÇOS | DELETE-SPACES | Remove os espaços à esquerda e direita do mnemônico contido no Operando 2 (ALLTRIM) |
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
FILIAL | Devolve ao Resultado a filial do mnemônico contido no Operando 2 | ||||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
CONTEÚDO-PARÂMETRO | FIND-PARAMETER | Este operador lê a tabela de Parâmetros. | |||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
REDONDEA | ROUND | Arredonda o valor do Operando1 em | |||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
RESIDUO | Este operador tem a mesma função que o "MOD" de uma calculadora. Divide dois mnemônicos, onde operando 1 é o dividendo e o Operando 2 é o divisor. | ||||
Operador | Uso | ||||
Espanhol | Português | Inglês | |||
TRUNCA | TRUNC | Tira a parte decimal do valor de um mnemônico que se encontra no Operando 2 e deixa a parte inteira em outro mnemônico. | |||
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÊ-SBM | READ-SBM | Obtém informação da tabela de Grupo de produtos (SBM). | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÉ-SB1 | READ-SB1 | Obtém informação da tabela de Produtos (SB1). |
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÊ-SED | READ-SED | Obtém informação da tabela de Modalidades (SED). | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÊ-SF4 | READ-SF4 | Obtém informação da tabela de TES (SF4). |
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÊ-SA2 | READ-SA2 | Obtém informação da tabela de Fornecedores (SA2). | |
Operador | Uso | ||
Espanhol | Português | Inglês | |
LÊ-SA1 | READ-SA1 | Obtém informação da tabela de Clientes (SA1). |
Espanhol | Português | Inglês | Uso |
SE-FUNÇÃO | Verifica se o nome de uma função de ADVPL existe no RPO |
Tabelas utilizadas
- CT2.-Contas contábeis
- CTT.-Centro de custos
- CTD.- Item contábil
- CTH.-Classe valor
- CT5.- Lançamentos padronizados
- CWJ.-Mnemônicos
- CWK.-Fórmulas cabeçalho
- CWL.-Detalhe da fórmula
- CWM.-Fórmulas por lançamento padrão
- CWP.- Tabelas x fórmula
- SX5.-Tabelas genéricas
Protótipo de Telas
Protótipo 01 Retornar
Protótipo 02 Retornar
Protótipo 03 Retornar
Protótipo 04 Retornar
Protótipo 05 Retornar
Consulta CTB931 (Rotina CTB93EXPR)
Expressão a retornar.- É um campo tipo memo que o usuário poderá editar, ou ir formando a expressão com as ferramentas mostradas a seguir. Ao selecionar OK, será a expressão retornada ao getdados da fórmula.
Operadores.- Pode selecionar entre:
Operador |
+
|
Ao sair deste campo, o operador selecionado será enviado ao campo memo onde está sendo formada a expressão.
Grupo.- O usuário pode digitar o código do grupo ou selecioná-lo da tabela cz das tabelas genéricas (sx5). Se verificará que seja um código válido. Ao sair deste campo filtrará a informação dos mnemônicos (CWJ), somente das tabelas (CWJ_tabla) do grupo selecionado (CWJ_grupo). Também limpar o campo Ajuda e Mnemônico.
Descrição.- Nome do grupo, somente será visualizada (x5_descri).
Tabela.- Será exibido o código da tabela e descrição (CWJ_tabla, CWH_descri) segundo o código do Grupo selecionado no campo anterior. Ao sair deste campo filtrará a informação dos mnemônicos (CWJ), visualizando somente os campos da tabela selecionada. Também limpar o campo Ajuda.
Mnemônico.- Código e descrição (CWJ_codmne, CWJ_desc) do mnemônico segundo a tabela selecionada. Ao sair deste campo preencherá os dados correspondentes no campo Ajuda.
Ajuda.- Exibir a ajuda do campo selecionado (CWJ_help). Como título nome do campo (CWJ_campo) e da tabela (CWJ_tabla), depois a ajuda (CWJ_help), depois como subtítulo de Validação o tipo e tamanho segundo a informação do campo contido na tabela sx3.
Botão Adicionar.- Adicionará o mnemônico selecionado.
Botão Limpar.- Limpará todo o conteúdo do campo memo.
Botão OK.- Enviará a expressão do campo memo ao getdados da fórmula.
Botão Anular.- Não enviará a expressão respeitando o conteúdo da expressão do getdados da formula.
Regras de Integridade
Indicado na regra de negócio.
Release Notes
Módulo | SIGACTB / PROTHEUS |
Função | Manutenção ao catálogo de fórmulas para Lançamentos padronizados |
Descrição de Função | Permite criar a formulação (que será utilizada para Lançamentos padronizados), de forma más amigável para o usuário. |
Fluxo do processo
Diagrama de Entidade e Relacionamento
Dicionário de Dados
Dicionário de Dados.
| ||||||||||||||||||||||||||||||||||||||
Campo | Tipo | Tam. | Dec. | Título | Descrição | |||||||||||||||||||||||||||||||||
CWK_FILIAL | C | Filial | ||||||||||||||||||||||||||||||||||||
CWK_CODFOR | C | 15 | Código |
| ||||||||||||||||||||||||||||||||||
CWK_GRUPO | C | 6 | Grupo |
| ||||||||||||||||||||||||||||||||||
CWK_TIPO | C | 1 | Tipo |
| ||||||||||||||||||||||||||||||||||
CWK_TIPDAT | C | 1 | Tipo de dado |
| ||||||||||||||||||||||||||||||||||
CWK_VALOR | C | 50 | Valor |
| ||||||||||||||||||||||||||||||||||
CWK_CONASI | C | 40 | Cond. Lançamento |
| ||||||||||||||||||||||||||||||||||
CWK_CUENTA | C | 20 | Conta Cont |
| ||||||||||||||||||||||||||||||||||
CWK_CC | C | 16 | C. de Custo |
| ||||||||||||||||||||||||||||||||||
CWK_ITECTB | C | 16 | Item contábil |
| ||||||||||||||||||||||||||||||||||
CWK_CLVALO | C | 16 | Cl. Valor |
| ||||||||||||||||||||||||||||||||||
CWK_HELP | MEMO | Ajuda |
| |||||||||||||||||||||||||||||||||||
CWK_ADVPL | MEMO | ADVPL |
| |||||||||||||||||||||||||||||||||||
CWK_FOREJE | C | 30 | Executável |
| ||||||||||||||||||||||||||||||||||
CWK_DESGPO | C | 20 | Desc. Grupo |
|
Índices: CWK_FILIAL+CWK_CODFOR
| |||||||||||||||||||||||||||||||
Campo | Tipo | Tam. | Dec. | Título | Descrição | ||||||||||||||||||||||||||
CWL_FILIAL | C | Filial | |||||||||||||||||||||||||||||
CWL_CODFOR | C | 15 | Código |
| |||||||||||||||||||||||||||
CWL_SEC | C | 6 | Seq. |
| |||||||||||||||||||||||||||
CWL_OPER | C | 02 | Operador |
| |||||||||||||||||||||||||||
CWL_OPER1 | C | 37 | Operador 1 |
| |||||||||||||||||||||||||||
CWL_OPER2 | C | 37 | Operador 2 |
| |||||||||||||||||||||||||||
CWL_CONJUN | C | 1 | Conjunção |
| |||||||||||||||||||||||||||
CWL_SELSEC | C | 6 | Quebra a Sec. |
| |||||||||||||||||||||||||||
CWL_EXPRES | C | 200 | Expressão ADVPL |
|
Índices: 1. CWL_FILIAL+CWL_CODFOR+CWL_SEC
2. CWL_FILIAL +CWL_OPER1
3. CWL_FILIAL+CWL_OPER2
| |||||||||||||||||||||||
Campo | Tipo | Tam. | Dec. | Título | Descrição | ||||||||||||||||||
CWQ_FILIAL | C | Filial | |||||||||||||||||||||
CWQ_CODFOR | C | 15 | Código |
| |||||||||||||||||||
CWQ_TABLA | C | 3 | Alias da tabela |
|
Índices: CWQ_FILIAL+CWQ_CODFOR+CWQ_TABLA
CWQ_FILIAL+CWQ_TABLA+ CWQ_CODFOR
| |||||||||||||||||||||||
Campo | Tipo | Tam. | Dec. | Título | Descrição | ||||||||||||||||||
CWM_FILIAL | C | Filial | |||||||||||||||||||||
CWM_CODFOR | C | 15 | Código |
| |||||||||||||||||||
CWM_LANPAD | C | 3 | Lançamento Padrão |
| |||||||||||||||||||
CWM_SEQUEN | C | 3 | Item do Lançamento Padrão |
|
Índices: CWM_FILIAL+CWM_CODFOR+CWM_LANPAD+CWM_SEQUEN
CWM_FILIAL+ CWM_LANPAD+ CWM_CODFOR
Grupo de Perguntas
Não aplica
Tabelas genéricas (sx5)
CZ.- Grupos ou Módulos | |
X5_CHAVE | X5_DESCSPA |
000001 | SIGACTB |
000002 | SIGAFAT |
000003 | SIGACOM |
000004 | SIGAPCP |
000005 | SIGAGPE |
Consulta Padrão
CWJ.- Mnemônicos
CWJFOR.- Consulta específica de mnemônicos
CWJTIP.- Consulta específica de tipo de dado
CZ.- Consulta padrão de Grupos Tabela SX5
CTB931.- Consulta específica para formar expressões.
CWJ001.-Consulta padrão Mnemônicos
Parâmetros
Não aplica
Estrutura de Menu
No módulo Configurador (SIGACFG) acessar a Ambiente/Cadastros/Menu (CFGX013). Informe a nova opção do menu do SIGACTB (Contabilidade Gerencial) conforme as instruções a seguir:
Menu | Contabilidade Gerencial |
Submenu | Atualizações>Cadastros>Entidades> Manut. Fórmulas |
Nome da Rotina | Manut. Fórmulas |
Programa | CTBA093 |
Módulo | SIGACTB |
Tipo | Função Protheus |