Sie sind auf Seite 1von 103

V01R00P00

Apresentação

Bem-vindo usuário dos produtos Softway S.A.

Este manual contém orientações para a utilização das


funcionalidades nas Classes Softway, fornecendo as melhores
práticas de desenvolvimento das customizações nos produtos da
Softway e proporcionando a você a possibilidade de aprender ou
aprimorar-se.

Estamos à disposição para ajudá-lo no que for necessário.

Atenciosamente,
Equipe Softway
Guia de Customizações – Desenvolvimento
V01R00P00, terça-feira, 13 de julho de 2010.

© 2010 Softway S.A.

Todos os direitos reservados. Nenhum trecho deste material poderá ser reproduzido, em qualquer forma (gráfica,
eletrônica, fotocópia etc), sem a permissão escrita da Softway S.A.
Produtos referenciados neste documento são marcas registradas de seus respectivos proprietários.

Contato
R. Conceição, 233 Cj. 604 - Centro - Campinas - SP
CEP: 13010-050
Tel.: +55 (19) 3344 9200
Fax.: +55 (19) 3344 9240
Índice

Capítulo I Introdução 6

Capítulo II User Exits 10


1 Definições
................................................................................................................................... 10
2 Exemplos
................................................................................................................................... 12
3 Dicas
...................................................................................................................................
e Sugestões 17
4 Outros
...................................................................................................................................
Exemplos de Utilização 17

Capítulo III Campos Extras 22


1 Definições
................................................................................................................................... 22
2 Exemplos
................................................................................................................................... 22
3 Dicas
...................................................................................................................................
e Sugestões 29

Capítulo IV Views Dinâmicas 32


1 Definições
................................................................................................................................... 32
2 Exemplos
................................................................................................................................... 35
3 Compilação
...................................................................................................................................
e Teste 38
4 Controle
...................................................................................................................................
de Acesso 38
5 Consulta
................................................................................................................................... 39
6 Cubos
................................................................................................................................... 40
7 Dicas
...................................................................................................................................
e Sugestões 46

Capítulo V Relatório Excel 50


1 Exemplos
................................................................................................................................... 51

Capítulo VI Formulários Customizados 56


1 Dicas
...................................................................................................................................
e Sugestões 58

Capítulo VII Módulo de Cálculo 62


1 Entidades
...................................................................................................................................
e Variáveis 62
2 Condições
...................................................................................................................................
Múltiplas 64
3 Fórmulas
................................................................................................................................... 65

Capítulo VIII Simulação 82

Capítulo IX Comportamento Componente 98


Capítulo
I
Introdução 6

1 Introdução
Um dos principais objetivos desse guia é orientar o usuário sobre a utilização das funcionalidades nas Classes Softw ay,
apresentando as melhores formas de desenvolver as Customizações dos Produtos. Uma delas é torná-lo o mais isolado possível do
core do produto. Por isso, é importante considerar as seguintes diretrizes quando for identificada a necessidade de customizar uma
funcionalidade do sistema:

1. Verificar se estas Funcionalidades das Classes podem ser utilizadas para evitar que o Produto seja Customizado,
principalmente funcionalidades que possuem grande probabilidade de sofrer alterações legais, muito complexas e com
muitas dependências;
2. Se não for possível solucionar as necessidades do cliente com as Funcionalidades das Classes, é importante que a
Gerência do Produtos seja envolvida, para auxiliar na definição da solução do GAP;
3. A Customização deve ser o último recurso e deve ser solicitada se realmente não tiver outra solução.

O menu Softcomex representa as funcionalidades genéricas de todos os sistemas da Softw ay, integrando as informações
em uma única base de dados, além de informações de acesso e configurações de segurança. Por conta disso, alterações nos
dados desse menu representam alterações nas informações de todos os sistemas Softw ay que estiverem integrados.
Com o objetivo de minimizar o desenvolvimento de customizações nos aplicativos e o tempo para o atendimento às
requisições de mudança no sistema solicitadas pelos clientes, a Softw ay desenvolveu algumas funcionalidades no submenu
Configuração de Customizações. São elas: User Exits; Campos Extras e View s.

© 2010 Softway S.A.


Capítulo
II
User Exits 10

2 User Exits

2.1 Definições
As classes de formulário SW e tabelas SW foram modificadas para permitir intervenções em eventos modificando seu
comportamento normal, o que chamamos de User Exit. Nestes eventos pode-se incluir novas regras de negócio, novas
codificações ou mesmo chamar outros programas. Para cada User Exit criado pode-se declarar quantas atividades forem
necessárias.
Acesse Softcom ex > Configuração de Custom izações > User Exits.

Para consultar um User Exit cadastrado, clicar sobre o nome do item que aparece no campo "Cadastrados".

Para cadastrar um novo User Exit clicar no botão

A seguir, a descrição dos campos:


Cadastrados: apresenta os itens cadastrados;

© 2010 Softway S.A.


11 Guia de Customizações – Desenvolvimento

ID: é gerado automaticamente;


Sistem a: nome do sistema onde a mensagem deve aparecer;
Entidade (form ulário ou tabela): definir o nome do formulário, pode ser utilizado o botão Spy, para capturar o nome
do formulário basta clicar sobre o CTRL;
Evento: definir qual será o evento que chamará a mensagem. Até o momento foram criados os seguintes eventos:
Pré-abertura de formulários: É executado no momento da sincronização com a classe, dentro da função cf_Create.
Neste momento não buscou nenhuma informação pertinente, é o momento ideal para customizar uma substituição
de formulário, fechando o atual e criando outro, ou exibir mensagens ou notificações para os usuários.
Pós-fechamento de formulários: É executado no momento da destruição do formulário, dentro da mensagem
SAM_Destroy. Neste momento os locks já foram liberados e a conexão do formulário já foi desfeita, é o momento
oportuno para rodar algum pós-processamento.
Pré-Gravação de Inclusão: É executado no momento do click no botão de gravação numa operação de Inclusão.
Qualquer atividade poderá influenciar na transação de gravação, e se falhar cancelará a gravação. Neste momento
ainda não foi inserida qualquer informação, é o ponto ideal para fazer algum pré-processamento de gravação.
Pré-Gravação de Alteração: É executado no momento do click no botão de gravação numa operação de alteração.
Qualquer atividade poderá influenciar na transação de gravação, e se falhar cancelará a gravação. Neste momento
ainda não foi alterada qualquer informação, é o ponto ideal para fazer algum pré-processamento.
Pós-Gravação de Inclusão: É executado antes do commit no processo de gravação de uma inclusão. Qualquer
atividade neste evento poderá influenciar na transação de gravação, se falhar cancelará a gravação. É o momento
ideal para fazer complementação de informações e/ou algum pós-processamento antes do commit.
Pós-Gravação de Alteração: É executado antes do commit no processo de gravação de uma alteração. Qualquer
atividade neste evento poderá influenciar na transação de alteração, se falhar cancelará a gravação. É o momento
ideal para fazer complementação de informações e/ou algum pós-processamento antes do commit.
Form ou Table Pré-Validate: É executado antes do Validate original do formulário ou de cada linha da tabela. Este
evento pode interromper a gravação se utilizada a rotina de validate (gf_ValidateClass) ou atualizada a variável
interna m_b_Validate para FALSE. É o momento ideal para fazer complementação de validações.
Atividades:
Definir o Tipo de Atividade, que podem ser 3:
Comando SqlWindow s: Neste tipo de atividade pode-se chamar funções do Centura/SqlWindow s.
PLSQL: Neste tipo de atividade pode-se declarar um bloco anônimo de PLSQL.
Programa Externo: Neste tipo de atividade pode-se chamar qualquer programa externo.
Definir o Conteúdo Atividade de acordo com o tipo de atividade escolhida.

Para gravar as informações do novo cadastro, clicar no botão

© 2010 Softway S.A.


User Exits 12

2.2 Exemplos
Exemplo de exibição de mensagem na abertura de formulário (frm_SX_Usuarios)

Para cadastramento é necessário informar:


Sistema (lista de sistemas cadastrados);
Entidade: neste caso frm_SX_Usuarios;
Evento: neste caso será “Form Pré-Abertura”;
Criar a atividade do tipo “Comando SqlWindow s” com o seguinte código para exibição de mensagem:
SalMessageBox('Olá, você está entrando no cadastro de usuários',‘Welcom e',MB_IconExclam ation)
Ao abrir o formulário de usuários aparecerá:

Exemplo de abertura de programa externo

Impedir a abertura de um formulário e através da chamada de um programa, por exemplo, o Notepad.

© 2010 Softway S.A.


13 Guia de Customizações – Desenvolvimento

Para cadastramento é necessário informar:


Sistema (lista de sistemas cadastrados);
Entidade (formulário ou tabela): neste caso frm_SX_Grupos;
Evento, que neste caso será “Form Pré-Abertura”;
Criar a atividade do tipo “Comando SqlWindow s” com o seguinte código para impedir a abertura do formulário original:
SalDestroyWindow (hWndForm )
Criar a atividade do tipo “Programa Externo” para abrir o Notepad: notepad [SqlDatabase]
Ao abrir o formulário de usuários aparecerá a tela do notepad. Ao encerrar o notepad, voltará o foco ao MDI do
sistema.

Exemplo de modificação de layout


Alterar as casas decimais do campo peso líquido do formulário de Produtos.

© 2010 Softway S.A.


User Exits 14

Para cadastramento é necessário informar:


Sistema (lista de sistemas cadastrados);
Entidade (formulário ou tabela): neste caso frm_SX_Produtos;
Evento, que neste caso será “Form Pré-Abertura”;
Criar a atividade do tipo “Comando SqlWindow s” com o seguinte código para alterar a formatação do campo:
SalFm tSetPicture(frm _SX_Produtos.df_PESO_LIQUIDO
SalNum berToChar(15) || '#0' ||
SalNum berToChar(2) || '00' || SalNum berToChar(16))

Este comando modificará o campo para apenas duas casas decimais, ao invés de cinco, que era o padrão. Note que:
SalNum berToChar(15) é um identificador de início de número;
SalNum berToChar(1) é o separador de milhar;
SalNum berToChar(2) é o separador de decimal;
SalNum berToChar(16) é o identificador de final de número;

Observação:
Esta notação é utilizada para que a troca ocorra normalmente mesmo que a máquina esteja com o formato de
número inglês (virgula e ponto invertidos).

Ao abrir o formulário e as informações serem preenchidas na tela, o campo de Peso Líquido terá a quantidade de
casas decimais modificadas

Modificando a posição com mais duas atividades:


SalGetWindow Loc ( frm _SX_Produtos.df_PESO_LIQUIDO, gv_n_UserExit[0], gv_n_UserExit[1] )
SalSetWindow Loc ( frm _SX_Produtos.df_PESO_LIQUIDO, gv_n_UserExit[0]-1, gv_n_UserExit[1] )

© 2010 Softway S.A.


15 Guia de Customizações – Desenvolvimento

Sumir com o campo com mais uma atividade:


SalHideWindow AndLabel( frm _SX_Produtos.df_PESO_LIQUIDO )

Exemplo de Validação

Incluir uma nova validação no cadastro de países sob o campo de descrição:

Para cadastramento é necessário informar:


Sistema (lista de sistemas cadastrados);
Entidade (formulário ou tabela): neste caso frm_SX_Paises;
Evento, que neste caso será “Form ou Table Pré-Validate”;
Criar a atividade do tipo “Comando SqlWindow s” com o seguinte código para incluir um novo Validate:
gf_ValidateClass(frm _SX_Paises.df_DESC_PAIS, frm _SX_Paises.df_DESC_PAIS = STRING_Null,
gf_ML_GetLabel('Descrição do país não pode ser nula'))
Resultado:

© 2010 Softway S.A.


User Exits 16

Exemplo de Execução de Bloco PLSQL

Incluir uma rotina para inserir um registro em uma tabela de notificação, indicando que um novo produto foi incluído no sistema:

Para cadastramento é necessário informar:


Sistema (lista de sistemas cadastrados)
Entidade (formulário ou tabela): neste caso frm_SX_Produtos
Evento, que neste caso será “Form Pós-Gravação Inclusão”
Criar a atividade do tipo “PLSQL” com o seguinte bloco de PLSQL anônimo:

begin
insert into log_notificacao_produto (id_produto, operacao)
values ( :frm_SX_Produtos.w p_CH_ID_PRODUTO, 'I');
end;

© 2010 Softway S.A.


17 Guia de Customizações – Desenvolvimento

2.3 Dicas e Sugestões


Vetores internos:
Caso seja necessário utilizar valores de uma atividade em outra, é possível utilizar os vetores para armazenar
informações temporárias. Temos três vetores para isso:
Numérico: gv_n_UserExit[*]
Texto: gv_s_UserExit[*]
Data: gv_dt_UserExit[*]

Exemplo:
Set gv_n_UserExit[0] = frm_Teste.df_ValorII + frm_Teste.df_ValorBase
Set gv_n_UserExit[1] = gv_n_UserExit[0] * frm_Teste.df_AliqIPI / 100
Set frm_Teste.df_ValorIPI = gv_n_UserExit[1]

Neste exemplo criamos 3 atividades para realizar um cálculo e usamos o vetor numérico para transferir valores entre as
atividades.

Condição:
Existe uma rotina para criar atividades condicionadas, possibilitando ter um fluxo de execução diferente.

gf_UserExit_IF( <condição>, <comando true>, <comando false> )

Exemplos:
Mensagem de validação diferente:
gf_UserExit_IF( frm_Teste.df_Tipo = ‘A’,
‘gf_ValidateClass(frm_Teste.df_Desc, frm_Teste.df_Desc=STRING_Null,
“Descrição do Ativo não pode ser nula”)’,
‘gf_ValidateClass(frm_Teste.df_Desc, frm_Teste.df_Desc=STRING_Null,
“Descrição do Passivo não pode ser nula”)’)

Mensagem caso o usuário não tenha permissão:


gf_UserExit_IF( gv_c_Login.TemDireito(DIR_Teste,OP_Alteracao), ‘STRING_Null’,
‘SalMessageBox(“Você não possui permissão de alteração”,”Atenção”,0)’)

Cham ada de Program a Externo:


Note que podemos passar qualquer valor, de qualquer variável interna do Centura, para os comandos, é só estar entre
colchetes.

Notepad.exe [SqlDatabase]

Neste exemplo o notepad tentará abrir um arquivo com o nome interno da conexão, que neste exemplo é ORACLE.

Precauções:
A utilização de User Exits, referenciando item ou header, onera em tempo de execução a performance do sistema. Utilizar
a ferramenta com critério e atenção.

2.4 Outros Exemplos de Utilização


Validação para bloquear alteração dependendo de determ inada configuração de centura e banco.
Evento: Form ou Table Pré-Validate

1) Com ando SqlWindow s:


gf_UserExit_IF( frm_FaturasImportacao.w p_n_TipoOperacao = TO_Inclusao, 'set gv_n_UserExit[0] = 0', 'set
gv_n_UserExit[0] = 1')

2) PLSQL:
begin
:gv_s_UserExit[0] := '';
if :gv_n_UserExit[0] = 1 then

© 2010 Softway S.A.


User Exits 18

select FLEX_FIELD17
into :gv_s_UserExit[0]
from FATURAS_IMPORTACAO
w here ID_INVOICE = :frm_FaturasImportacao.w p_n_IDInvoice;
end if;
end;

3) Com ando SqlWindow s:


gf_ValidateClass(frm_FaturasImportacao.df_NumInvoice, gv_s_UserExit[0] = "Enviada", gf_ML_GetLabel("Não é
possível alterar a fatura Importação, pois a mesma já foi enviada ao SAP"))

Validação de alteração para exibir m ensagem dependendo de determ inada configuração de centura e banco.
Evento: Form Pós-Abertura

1) Com ando SqlWindow s:


gf_UserExit_IF( frm_FaturasImportacao.w p_n_TipoOperacao = TO_Inclusao, 'set gv_n_UserExit[0] = 0', 'set
gv_n_UserExit[0] = 1')

2) PLSQL:
begin
:gv_s_UserExit[0] := '';
if :gv_n_UserExit[0] = 1 then
select FLEX_FIELD17
into :gv_s_UserExit[0]
from FATURAS_IMPORTACAO
w here ID_INVOICE = :frm_FaturasImportacao.w p_n_IDInvoice;
end if;
end;

3) Com ando SqlWindow s:


gf_UserExit_IF( gv_s_UserExit[0] = 'Enviada', 'SalMessageBox( gf_ML_GetLabel("Fatura Importação já enviada ao
SAP!"), gf_ML_GetLabel("Atenção"), MB_IconExclamation )', 'STRING_Null')

© 2010 Softway S.A.


Capítulo
III
Campos Extras 22

3 Campos Extras
Enter topic text here.

3.1 Definições
A funcionalidade Campos Extras permite a inclusão de novos campos nos formulários dos clientes. Estes recursos estão
disponíveis para formulários e/ou tabelas em objetos específicos, das classes Custom:

Child_Table_Custom_SW
Column _Custom_SW

Estes recursos não foram disponibilizados automaticamente nos formulários, ou seja, para os formulários que necessitem
este tipo de recurso é necessário criar os objetos base.

3.2 Exemplos
Formulário de Cadastro de Países: NOME_CAPITAL da SFW_PAIS

Incluir os objetos de custom izações:

Tabelas para campos extras no formulário


Colunas para campos extras nas tabelas

© 2010 Softway S.A.


23 Guia de Customizações – Desenvolvimento

Definir a visualização da tabela Custom :

Sempre Visível: modifique o layout da tela e defina a posição que a tabela deverá ficar, inclusive se haverá uma
aba específica para ela ou não

Posicionamento Automático: Neste caso a tabela ficará invisível, posicionada na posição (0,0) do form. Ao abrir o
formulário, a tabela será posicionada na parte inferior, dinamicamente.

Criar cam po na base de dados (caso ainda não exista):

Novo Campo: NOME_CAPITAL

© 2010 Softway S.A.


Campos Extras 24

Registrar inform ação do cam po extra:

© 2010 Softway S.A.


25 Guia de Customizações – Desenvolvimento

A seguir, a descrição dos campos:


Cadastrados: Apresenta a lista com os campos cadastrados;
ID: é gerado automaticamente;
Sistema: definir em que sistema o campo será inserido;
Entidade (formulário ou tabela): definir a que entidade o campo pertencerá;

Área "Campos":
Índice: indicador numérico dos campos, deve ser obrigatoriamente maior ou igual a zero;
Tabela: em que tabela será inserida esse novo campo, exemplo: SFW_PAIS;
Campo: definir o nome do campo, exemplo. NOME_CAPITAL;
Label: título a ser apresentado para o campo, o campo não pode ser nulo, exemplo: Capital
Tipo: pode ser String, Number, Date e Long String, exemplo: string
Tipo de Campo: objeto de apresentação (Data Field, Combo, Check ou DlgPesquisa), campo não pode ser nulo,
exemplo: Data Field;
Tamanho: dever der maior ou igual à zero;
Formato: indicação de formato de entrada, por exemplo, dd/MM/yyyy para campos data. Não se aplica ao exemplo;
Máscara: indicação de máscara de digitação, por exemplo, 99/99/9999 para campos data. Não se aplica ao
exemplo;
Condição de erro: teste de validação, que indica quando o campo está inválido, exemplo: MyValue = STRING_Null;
Mensagem de Erro: mensagem de erro a ser exibida na validação, exemplo: Nome da Capital não pode ser nulo;
Link: cláusula w here de vinculação entre o select dinâmico que busca o campo e a chave primária da informação
básica da tela, não pode ser nulo, exemplo: COD_PAIS = frm_SX_Paises.df_COD_PAIS
Select Domínio / Dados: comando select para popular informações de combos ou pesquisa, ou dados fixos quando
se tratar de check box, não se aplica ao exemplo

Teste:

© 2010 Softway S.A.


Campos Extras 26

A seguir, a tela com campo extra:

Formulário de Cadastro de Países: FACULTATIVO da SFW_PAIS_FERIADO

Criar cam po na base de dados (caso ainda não exista):

Novo Campo: FACULTATIVO

© 2010 Softway S.A.


27 Guia de Customizações – Desenvolvimento

Registrar inform ação do cam po extra:

© 2010 Softway S.A.


Campos Extras 28

A seguir, a descrição dos campos:

Cadastrados: Apresenta a lista com os campos cadastrados;


ID: é gerado automaticamente;
Sistema: definir em que sistema o campo será inserido;
Entidade (formulário ou tabela): definir a que entidade o campo pertencerá;

Área "Campos":
Índice: indicador numérico dos campos, deve ser obrigatoriamente maior ou igual a zero;
Tabela: em que tabela será inserida esse novo campo, exemplo: SFW_PAIS_FERIADO;
Campo: definir o nome do campo, exemplo: FACULTATIVO;
Label: título a ser apresentado para o campo, o campo não pode ser nulo, exemplo: Pto. Facultativo
Tipo: pode ser String, Number, Date e Long String, exemplo: string
Tipo de Campo: objeto de apresentação (Data Field, Combo, Check ou DlgPesquisa), campo não pode ser nulo,
exemplo: Check;
Tamanho: dever der maior ou igual à zero;
Formato: indicação de formato de entrada, por exemplo, dd/MM/yyyy para campos data. Não se aplica ao exemplo;
Máscara: indicação de máscara de digitação, por exemplo, 99/99/9999 para campos data. Não se aplica ao
exemplo;
Condição de erro: teste de validação, que indica quando o campo está inválido. Não se aplica ao exemplo;
Mensagem de Erro: mensagem de erro a ser exibida na validação. Não se aplica ao exemplo;;
Link: cláusula w here de vinculação entre o select dinâmico que busca o campo e a chave primária da informação
básica da tela, não pode ser nulo, exemplo: COD_PAIS = :frm_SX_Paises.df_COD_PAIS and DATA_FERIADO = :
frm_SX_Paises.tbl_Feriados.col_DATA_FERIADO
Select Domínio / Dados: S/N

Teste:

© 2010 Softway S.A.


29 Guia de Customizações – Desenvolvimento

3.3 Dicas e Sugestões


Se for um sistema internacional, procure sempre utilizar a função gf_ML_GetLabel nos campos de Label e Mensagem de Erro,
para que os textos sejam traduzidos. Não esquecer de editar os arquivos de tradução da aplicação, posteriormente, colocando as
traduções das mensagens.
Precauções: A utilização de User Exits, referenciando item ou header, onera em tempo de execução a performance do
sistema. Utilizar a ferramenta com critério e atenção.

© 2010 Softway S.A.


Capítulo
IV
Views Dinâmicas 32

4 Views Dinâmicas
Enter topic text here.

4.1 Definições
View s é uma ferramenta que objetiva facilitar a extração de informações do banco de dados por meio de um assistente de
geração. Uma das principais necessidades de customização nos sistemas era permitir, a qualquer momento, criar uma consulta
nova para os clientes. E a partir desta consulta possibilitar extrair dados, relatórios, cubos etc.
A funcionalidade de View s Dinâmicas é composta por quatro blocos: Cadastro, Consulta, e Cubos.
Com essa funcionalidade, é possível minimizar a customização de relatórios e gerar dados de interface de saída, de forma
que o usuário possa obter os dados que necessita do sistema sem precisar de uma customização desenvolvida pela Softw ay.
Acesse SoftCom ex > Configuração de Custom izações > View s.

Para consultar as View s cadastradas, preencha um dos campos de consulta, e clique no botão Executa Consulta.

Na tela de filtro podem ser compilados todos os objetos criados e selecionados anteriormente, através do botão Com pila
Todos, e ainda gerar todos os scripts dos mesmos, pelo botão Gera Script Todos.

© 2010 Softway S.A.


33 Guia de Customizações – Desenvolvimento

Para cadastrar uma view , clicar no botão .

A tela de cadastro é composta por 2 abas, Definição e Testes, a primeira possui a estrutura da view , e a segunda serve para
compilação e teste.
A aba Definição possui a estrutura da View , o campo Nome Físico da View é gerado automaticamente, sempre iniciado com
“SFW_VW” (campo 01).
No campo Comentário / Descrição será descrito os detalhes da view para facilitar a identificação dos dados resultantes da
consulta (campo 02).
Para rastreabilidade, o campo Last update grava o nome, data e horário em que o cadastro foi alterado (campo 03).

O campo Tabelas é formado pelas seguintes colunas:

© 2010 Softway S.A.


Views Dinâmicas 34

Tabela: Nome da tabela do banco de dados a ser utilizada na View . Pode-se utilizar várias tabelas, mas só uma deverá
ser referenciada como principal (campo 04);
Apelido: Nome alternativo da tabela, é preenchido quando a mesma tabela é utilizada mais de uma vez (campo 07);
Vinculação: Exibe o nome da tabela vinculada (pai) ou o texto “PRINCIPAL” quando se tratar da tabela inicial ou única
(campo 08);
Cláusula Where: Cláusula de ligação entre as tabelas envolvidas numa view . Normalmente é gerada de forma
automática (campo 09);

A tabela Campos é formada pelas seguintes colunas:


Incluir: Indica quais campos farão parte da View (campo 10);
Ocultar: Indica quais os campos que não farão parte da resposta, mas as informações de filtro serão utilizadas na
montagem;
Tabela: Tabela mapeada (campo 11);
Campo: Campo referência (campo 12);
Label: Pode ser digitado um nome que será apresentado na coluna quando a View for consultada, é um apelido (campo
13);
Função Agrupamento: Caso haja a necessidade de agrupar informações com função por exemplo, a função deve ser
inserida neste campo, p. e. “sum(nvl(IPI,0))”;
Agrupar: Função para agrupamento de dados, tais como: AVG, COUNT, MAX, MIN, SUM. Atua diretamente sobre o
campo, por exemplo: “SUM” à “SUM(IPI)”. Quando utilizadas, o sistema irá solicitar o preenchimento do campo Label
(campo 14);
Função: Visa à manipulação dos dados via função do banco. Podem ser utilizadas funções do Oracle, como NVL,
DECODE, entre outras que não manipulem dados numéricos (neste caso usar o campo Agrupar), é necessário informar
os parâmetros das funções, que podem ser informações fixas, ou outros campos de tabela. Neste caso, as tabelas
devem ser selecionadas também. Não existem filtros para estas funções, o usuário deve digitar a função e os
parâmetros, caso haja. Pode-se utilizar função do banco, criada para o sistema, exemplo “fnc_nome_fantasia”. O
sistema exibe uma lista das funções previamente criadas, ou sinônimos de funções de outros sistemas (campo 15).

Para acionar o filtro, clique no botão no próprio campo. Se o nome da função for conhecido, pode-se digitar parte
do nome, e acionar o filtro, para agilizar a busca dos dados.
Filtro Where: Será utilizado para restringir os resultados da pesquisa. O sistema poderá filtrar dados numéricos e texto;
Filtro Having: Será utilizado para restringir os resultados de agrupamentos. O sistema poderá filtrar dados numéricos e
texto de acordo com os campos de agrupamento;
Valor Fixo: É utilizado para exibir dados que não estão relacionados com a tabela, porém necessitam ser exibidos na
view . Por exemplo, o texto “AAAA”. Para incluir, clique com o botão direito do mouse sobre a tabela “Campos”,
selecione a opção Incluir Item, e a tela abaixo será exibida (campo 17);
Quando utilizada a função de agrupamento, o sistema irá solicitar o preenchimento do campo Label (campo 13).

Selecione uma tabela qualquer (é necessário para construção da view , porém não irá interferir no resultado), e escolha a
opção "Valor Fixo". Na tela de seleção de dados, preencha os campos "Label" e "Valor Fixo", com os dados correspondentes.

© 2010 Softway S.A.


35 Guia de Customizações – Desenvolvimento

O botão Gerar Script é responsável pela geração dos scripts da View que foi cadastrada. Com a geração de scripts é
possível transferir o cadastro de view s de um determinado cliente para outras bases, desde que as tabelas e sinônimos estejam
iguais. É possível gerar o script de todas as view s cadastradas através da tela de filtro (campo 18).

4.2 Exemplos
Criação de Views Simples

No campo “tabela” (campo 04), quando selecionado a opção Incluir Item, é exibida a tela abaixo. Deve ser selecionada uma
tabela, onde denominaremos de “Tabela Pai”.

Observação:
Somente serão listadas para seleção tabelas do usuário do banco utilizado e sinônimos. Por exemplo, caso o
módulo utilizado seja ImportSys, somente tabelas e sinônimos do ImportSys serão listados e poderão ser utilizados.
Caso seja necessário dados de tabelas de outros sistemas que o ImportSys não possua acesso, será necessária a
criação de sinônimos.

Após a seleção da tabela, seus campos serão exibidos na tela principal. Deve ser escolhido ao menos um campo de tabela

© 2010 Softway S.A.


Views Dinâmicas 36

para que este cadastro seja salvo (campo 10). As colunas "tabela" (campo 11) e "campo" (campo 12) identificam a origem da
informação, essas colunas não permitem edição.
Selecione os campos necessários a sua view , informe detalhes como agrupamento, funções, filtros etc.

Em seguida, salve a View . Compile e visualize a resposta do Teste.

Criação de Views Complexas

View com tabelas (ligadas)

A inclusão da primeira tabela, sempre será denominada de “tabela principal”. Para a inclusão da segunda ou demais tabelas, é
necessário incluir uma linha, escolher o tipo “tabela vinculada”, selecionar uma tabela principal, e em seguida executar a consulta. O
sistema irá exibir as “tabelas vinculadas”, conforme figura abaixo. O sistema busca as “tabelas vinculadas” através das FKs e PKs
cadastradas anteriormente. Sendo assim, o sistema irá construir a cláusula “w here” automaticamente.

As view s podem ser criadas com qualquer quantidade de níveis (tabelas ligadas). Para utilizarmos duas ou mais vezes a
mesma tabela ou sinônimo, devemos utilizar o campo apelido para as tabelas que se repetem, e incluir labels nos campos que se
repetem e serão exibidos na view .

© 2010 Softway S.A.


37 Guia de Customizações – Desenvolvimento

View com tabelas (não ligadas)

As vezes nos deparamos com situações onde não existe a vinculação de PK e FK entre duas tabelas, mas precisamos
vinculá-las em nossa view . Para fazer isso devemos seguir os passos abaixo:
A inclusão da primeira tabela, sempre será denominada de “tabela principal”.
Para a inclusão da segunda ou demais tabelas sem relacionamento, é necessário incluir uma nova linha, selecionar a
opção “tabela principal”, e selecionar a tabela desejada. Neste ponto teremos duas tabelas principais.
Em seguida alterar manualmente a “vinculação”, preenchendo o nome da tabela principal, incluir manualmente as
cláusulas de relacionamento entre as tabelas, para não gerar produto cartesiano, conforme figura abaixo. Neste
exemplo, a cláusula “w here” foi cadastrada para relacionamento entre parceiros.

View com 3 ou m ais níveis de relacionam ento

A inclusão da primeira tabela, sempre será denominada de “tabela principal”. Para a inclusão da segunda selecionar a opção
“vinculada”, e selecionar a tabela desejada. Para a inclusão de mais um nível, escolher a tabela vinculada como principal, e adicionar
uma tabela vinculada. Conforme exemplo abaixo:
Tabela Principal (nível 1): Ordens_Importacao
Tabela Vinculada (nível 2): Itens_Ordem
Tabela vinculada (nível 3): Serial_Item_ordem (sub-item), observe que para a tabela a vinculação (principal) é a tabela
Itens_Ordem (nível 2).

Neste exemplo foram utilizadas tabelas que possuem ligação de PKs, porém a mesma construção pode ser elaborada
utilizando tabelas sem relacionamento, cadastrando os relacionamentos no campo de Cláusula Where.

Observação:
A mesma operação deve ser realizada para incluir 2 ou mais tabelas para o nível 2, ou 3 e assim por diante.

View s com tabelas repetidas

© 2010 Softway S.A.


Views Dinâmicas 38

Para utilizarmos duas ou mais vezes a mesma tabela ou sinônimo, devemos utilizar o campo “apelido” para as tabelas que se
repetem, e incluir “labels” nos campos que se repetem e serão exibidos na view . Conforme exemplo abaixo, para a fatura que têm
os parceiros: importador e exportador, foram incluídos apelidos e labels, além das “clausulas w here”, pois as tabelas não possuíam
relacionamento entre si.

4.3 Compilação e Teste


Após salvar o cadastro de view s, o teste pode ser executado clicando-se no botão Com pila e Executa.

O sistema irá testar a view verificando primeiramente os erros de sintaxe e construção, exibindo-os caso ocorram.
Caso o teste seja executado com sucesso, a view física será criada e os dados resultantes da pesquisa serão exibidos na
tabela de testes. O campo código exibirá a codificação gerada para a view .
Somente quando o botão Com pila e Executa for executado, e todos os erros corrigidos, a view será criada na base de
dados.

4.4 Controle de Acesso


Para que uma view seja utilizada nas consultas é necessário informar os grupos de usuários que terão permissão de utilizá-
la. Sem estas informações a view ficará indisponível.

© 2010 Softway S.A.


39 Guia de Customizações – Desenvolvimento

4.5 Consulta
No módulo SoftComex foi criada uma tela específica para consulta de view s. Permitindo construir inúmeras condições de
pesquisa.

Área "Condições":
View : apresenta as view s cadastradas;
Campo: Lista de campos da view ;

© 2010 Softway S.A.


Views Dinâmicas 40

Tipo: (D) Data, (S) String/Texto, (N) Numérico;


Condição: Lista de tipo de operação a ser avaliada;
Valor Texto: Texto a ser utilizado na condição em caso de campo String;
Valor Numérico: Número a ser utilizado na condição em caso de campo;
Valor Data: Data a ser utilizada na condição em caso de campo data.

Para consultar, clique no botão Executa Consulta.


Após a consulta, clique com o botão direito do mouse na tabela de resposta e selecione “Copiar Conteúdo da Tabela”.
Serão exibidas opções de exportação de dados.

Clique no botão para gravar as informações.


Outra alternativa é utilizar o recurso de “Relatório Excel” disponível também nesta tela de consulta.

4.6 Cubos
A partir de uma view , podemos criar cubos para pesquisas dinâmicas, bem semelhante aos cubos de Excel. Acesse
Softcom ex > View s > Cubos.

© 2010 Softway S.A.


41 Guia de Customizações – Desenvolvimento

A funcionalidade é composto por uma tela de filtro e uma de cadastro, além do View er do Cubo que permitirá a manipulação
dos dados.
Para criar um Cubo, clique no botão Novo na tela de Filtro. Na tela de cadastro, Aba “Cadastro”, entre com as informações do
Cubo.

A seguir, a descrição dos campos:


ID: Referência interna gerada automaticamente;
View s: Seleção da view a ser utilizada no Cubo;
Tipo de Cubo:
Público: Qualquer usuário que tiver acesso a View poderá visualizar o Cubo;
Pessoal: Somente o criador terá acesso ao Cubo;

Alterações na estrutura básica do Cubo só podem ser realizadas pelo criador.

A tabela Campos é formada pelas seguintes colunas:


Ordem: Ordenação numérica dos campos a serem utilizados no Cubo (automático);
Incluir: Flag que indica qual campo está presente no cubo;

© 2010 Softway S.A.


Views Dinâmicas 42

Campo: Nome do campo da view ;


Label Cubo: Permite colocar um apelido para um campo, assim é possível incluir mais de uma vez o mesmo campo
através do botão Fazer cópia de linha selecionada;
Tipo de coluna:
Fato: Dados numéricos a serem utilizados nas análises. Devem ser associados a uma operação (Função
Cubo), como soma, média, desvio etc;
Coluna: Quebras de dados na área de colunas do cubo;
Linha: Quebras de dados na área de linhas do cubo. O cubo sempre apresenta uma análise de informações no
conceito de “Linha x Coluna”;
Extra: Filtros de informação. Podem posteriormente serem colocados nas áreas de Coluna e Linha.
Função Banco: Permite entrar com uma função do oracle para manipular a informação, por exemplo: to_char
(DATA_INICIO,’yyyy’) para exibir apenas o Ano;
Função Cubo: Operações matemáticas sobre os campos de fato, como média (avg), soma (sum), máximo (max) etc.

A aba “Visualização” é utilizada apenas para consulta posterior a montagem do Cubo, é possível incluir várias opções de
filtros. O botão Visualizar Cubo abrirá o View er para manipular os dados.

© 2010 Softway S.A.


43 Guia de Customizações – Desenvolvimento

Todos os campos Extras (Filtros), Linhas e Colunas, podem ser recolocados em qualquer uma dessas áreas, a partir de um
Drag-and-drop. Apenas a Área de Análise não aceita esta operação. A cada modificação a Área de Análise é reconstruída e os
cálculos refeitos. As informações podem ser expandidas em caso de vários campos em linhas ou colunas.

© 2010 Softway S.A.


Views Dinâmicas 44

Podemos filtrar informações ou mudar a forma da apresentação de qualquer dado.

Para campos Fato podemos incluir novas apresentações, como percentuais, totalizadores etc.

© 2010 Softway S.A.


45 Guia de Customizações – Desenvolvimento

Na Área de Análise é possível gerar gráficos das informações, basta clicar nos ícones de gráfico.

© 2010 Softway S.A.


Views Dinâmicas 46

Está disponível na tela de view er três formas de exportar os dados:


XLS: Cria uma planilha Excel com a visão atual dos dados.
HTML: Cria uma página HTML com a visão atual dos dados.
CUB: Salva a estrutura de consulta atual num arquivo de cubo sem os dados, os dados serão re-consultados
novamente ao utilizar o arquivo.
A única forma de manter o visual montado no view er é utilizar o arquivo CUB, pois ao fechar a tela e mandar consultar
novamente o cubo, o visual padrão será carregado novamente. Para visualizar um arquivo CUB basta utilizar o botão Visualizar
arquivo CUB salvo na tela de filtro.

4.7 Dicas e Sugestões


Export Sys
Para a utilização dessa ferramenta, foi criada uma planilha (ExportSys_Funcao_Relatorios.xlsx) para auxiliar os analistas
funcionais e possíveis clientes a utilizar as funções existentes, auxiliando na extração sas informações mais comuns nos
relatórios.
Normalmente, para view s mais complexas, aconselha-se a criação de um objeto view , referenciando-o no cadastro de view
dinâmica como uma tabela do sistema.

© 2010 Softway S.A.


Capítulo
V
Relatório Excel 50

5 Relatório Excel
A funcionalidade de Relatório Excel permite montar planilhas XLS a partir de templates pré-definidos, ou seja, a funcionalidade
preenche com dados as células de uma planilha vazia, salvando o resultado final em outro arquivo.
É composto por duas Telas:

Tela de Exportação de Dados: é a tela que exibe as informações a serem exportadas para XLS.
Botão Gera Arquivo: Processa a criação do arquivo de saída.
Botão Configurações: Abre a Tela de Configuração.

Tela de Configuração: é a tela que permite configurar os dados de saída para exportação.

A seguir, a descrição dos campos:


Identificação do Relatório: Chave que identifica a configuração de impressão;
Arquivo de Template (Path Completo): caminho completo do arquivo a ser utilizado como base para a geração do
arquivo final com os dados;
Arquivo Destino (Path Completo): caminho completo do arquivo a ser gerado, caso esteja nulo a aplicação solicitará o
nome do arquivo ao salvar;
Linha inicial dos detalhes: linha da planilha onde os dados do tipo Detalhe vão começar a ser impressos;

© 2010 Softway S.A.


51 Guia de Customizações – Desenvolvimento

Tamanho do detalhe: quantidade de linhas que deverá ocupar cada detalhe;


Qtde. detalhes por página: quantos detalhes serão impressos em cada planilha. Ao exceder esta quantidade, uma nova
planilha será criada;
Célula contendo o número da página: Célula onde será impresso o número da página, lembrando que cada página será
uma planilha.

A seguir, a descrição dos campos da Área "Dados":


Nome do Dado: Coluna listada pelo select que montou a consulta;
Tipo do Dado:
CAB: Cabeçalho. Impresso em todas as páginas, precisa indicar a célula direta (por exemplo A1);
DET: Detalhe. Bloco de dados impresso em todas as páginas, precisa indicar apenas a coluna (com ou sem
deslocamento de linha, por exemplo A ou A+1);
ROD: Rodapé. Impresso em todas as páginas, precisa indicar a célula direta (por exemplo A43);
FIM: Fim de relatório. Só é impresso na última página, precisa indicar a célula direta (por exemplo A35);
QBR: Quebra de página. Campo que força a quebra de página por mudança de valor. Não necessita
informação de célula, pois não é impresso.

A seguir, a descrição dos campos da Área "Imagens"


Arquivo: Caminho completo do arquivo de imagem a ser inserido no XLS;
Célula Início: Célula que indica o canto superior esquerdo da figura;
Célula Fim: Célula que indica o canto inferior direito da figura.

Com o utilizar?

A funcionalidade é iniciada a partir da criação do formulário de Exportação:

SalCreateWindow ( frm_SX_RelatExcelExport, hWndMDI, <desabilitacao>,


<atualização>, <identificador>, <comando select>, <arquivo XLS destino>)

Caso não exista dados cadastrais do identificador informado, a tela de configuração será aberta automaticamente.

5.1 Exemplos
Montar um exemplo utilizando o dicionário de colunas do Oracle.
Numa tela de teste, criaremos um menu para chamar o “Relatório Excel”:

1o Passo:
No MDI de teste, criaremos um menu para chamar o “Relatório Excel”:

Ao executar a aplicação, a tela de exportação mostrará os dados e abrirá também a tela de configuração.

2o Passo:
Entrar com as informações de configuração de acordo com o arquivo de template a ser utilizado:

© 2010 Softway S.A.


Relatório Excel 52

3o Passo:
Testar.

© 2010 Softway S.A.


53 Guia de Customizações – Desenvolvimento

© 2010 Softway S.A.


Capítulo
VI
Formulários Customizados 56

6 Formulários Customizados
Um dos recursos que encontramos para customizar os produtos de forma externa, sem alterar o núcleo e sem ter que
recompilar ou fechar uma nova versão da aplicação, foi criar novos formulários a partir de uma Dynalib (biblioteca dinâmica- APD).
No Módulo SoftComex existe uma implementação vazia de uma biblioteca externa, chamada “SoftComexCustom.APD”. E no
menu principal do módulo existe a chamada para esta funcionalidade.

Sempre que houver a necessidade de criar uma customização para um determinado cliente, haverá necessidade de criar um
“SoftComexCustom.APD” específico para o cliente, seguindo as convenções estipuladas por CM (ver processo CMMI).
Para realizar esta operação é necessário criar uma cópia do arquivo “SoftComexCustom.APP” para a pasta específica do
cliente.

Este arquivo, o “SoftComexCustom.APP”, funcionará como um MDI para os formulários customizados.


Os formulários customizados deverão ser incluídos na sessão “Libraries” dele:

© 2010 Softway S.A.


57 Guia de Customizações – Desenvolvimento

Para disponibilizar o novo formulário no menu dinâmico de “Formulários Customizados” é necessário alterar a função
“gf_MenuCustom”.

1º Passo:
Criar a linha de entrada do menu informando o label a ser exibido no vetor s_Menu.

2º Passo:
Incluir o direito de acesso relativo ao formulário (se houver, caso não tenha informe TRUE) no vetor b_Menu. Se necessário
utilize rotina para impedir abertura de múltiplas instâncias.

3º Passo:

© 2010 Softway S.A.


Formulários Customizados 58

Informar a ação a ser executada quando o menu for selecionado. Neste caso, será a abertura do nosso formulário de teste.

4º Passo:
Compilar o programa gerando a biblioteca Dynalib (APD).

5º Passo:
Testar.
Copie o novo “SoftComexCustom.APD” sobre o original instalado e faça o teste a partir do .EXE da aplicação (não é possível
testar a partir do .APP, ocorre erro e fecha a aplicação ao acessar o menu de Formulários Customizados).

6.1 Dicas e Sugestões


Fazer os controles de direitos de acesso através de APLs específicas, isolando o controle da versão base.
Atentar-se que todo o formulário APD, não deve conter campos formatados, sua formatação deve ser feita no SAM_Create
de cada componente. Exemplo:

On SAM_Create
Call SalSendClassMessage( SAM_Create, w Param, lParam )
Call SalFmtSetPicture( hWndItem, "dd/MM/yyyy" )
Call SalFmtSetInputMask( hWndItem, "99/99/9999" )

Para novos formulários, não existentes na versão base, opte pela utilização dos formulários customizados (APD), pois não é
interessante formulários novos entrarem no MDI_Custom, pois neste caso, será necessário customizar o arquivo principal e o MDI
da versão base.

© 2010 Softway S.A.


Capítulo
VII
Módulo de Cálculo 62

7 Módulo de Cálculo
A idéia do Módulo de Cálculo partiu da Área de Projetos, que verificou como maior problema dos projetos de implantação a
configuração das fórmulas utilizadas nos módulos da SoftWay.
O Módulo de Cálculo foi construído de forma que o próprio Analista de Negócios tenha condições de dar manutenção em
fórmulas utilizadas em nossos sistemas.
É composto por duas estruturas fornecedoras de informação, Entidades e Condições Múltiplas, que fornecem dados para
efetuar os cálculos, e uma estrutura de ação, Fórmulas, que efetivamente registra o cálculo proposto:

7.1 Entidades e Variáveis


Uma Entidade é uma tabela virtual (view ) que pode ser manipulada através da aplicação, a maioria das informações que serão
necessárias numa fórmula precisa fazer parte de uma ou mais Entidades.

Na aba de Identificação temos os seguintes campos:


ID: Identificador interno gerado por sequence, o usuário não deve se preocupar com este código.
Nome: Nome da Entidade cadastrada, neste exemplo utilizaremos o nome IMP_PROCESSO para mapear uma entidade
com informações dos processos de importação do ImportSys.
Descrição: Campo que descreve a Entidade.
Referência: Tabela ou view da base de dados, neste caso estaremos mapeando a tabela PROCESSOS_IMPORTACAO
do ImportSys.
Campo chave: Identificador único de cada registro da view ou tabela, no caso da tabela PROCESSOS_IMPORTACAO
esta chave é o campo COD_PROCESSO.
Nesta aba estão disponíveis os recursos de geração de script, e o recurso de link entre entidades.
A Aba de Variáveis contém a lista de variáveis da Entidade, que nada mais é do que as informações da view virtual:

© 2010 Softway S.A.


63 Guia de Customizações – Desenvolvimento

A tabela Variáveis é constituída das seguintes colunas:


Nome da Variável: Nome que será utilizado nas fórmulas como representação da informação;
Descrição: Um descritivo básico sobre a que se refere esta variável;
Referência/Conteúdo: Conteúdo da variável, ou seja, a informação que se deseja utilizar. Pode referenciar campos da
tabela ou da view da Entidade, operações entre estes, funções da aplicação ou funções de select do oracle (nvl, trunc
etc.).
Para auxiliar no preenchimento das informações de cada variável, é possível utilizar um Assistente, que disponibiliza várias
consultas sobre objetos, funções, tabelas etc.:

Links entre Entidades

Na maioria das vezes em que a montagem de uma Entidade envolve mais de uma tabela, a preferência será montar uma view
física no banco de dados e referênciá-la na Entidade, mas em alguns casos, as Entidades já cadastradas se complementam, e é
possível interliga-las através do recurso de link entre Entidades :

© 2010 Softway S.A.


Módulo de Cálculo 64

O conceito é simples, criar a cláusula Where que liga a tabela ou view de uma entidade com a tabela ou view da outra
entidade a que se deseja vincular.

7.2 Condições Múltiplas


Muitos clientes possuem negociações muito variadas com seus fornecedores, o que exige uma série de condições para
percentuais de comissões etc., este é apenas um exemplo de situação onde pode-se utilizar as Condições Múltiplas. O mecanismo
de Condições Múltiplas permite configurar tabelas de retorno de valores baseados em até 20 condições de teste simultâneas,
podendo inclusive indicar domínios de informação para auxiliar no cadastramento dos dados.
O mecanismo é dividido em duas telas, a tela de configuração e a tela de manipulação de dados, ambas serão descritas a
seguir.

Configurações

A tela de Configuração de Condições Múltiplas permite criar as configurações das tabelas de condições, indicando os
campos que serão utilizados em cada tabela e seus respectivos domínios. Esta tela exige um certo conhecimento da base de
dados, portanto não é recomendada para usuários finais, normalmente será configurada por Analistas da Softw ay:

A seguir, a descrição dos campos:


ID: Identificador interno da tabela de condição, o usuário não precisa se preocupar com este código;
Nome do Identificador: Nome da tabela de condições, este nome será utilizado no meio das fórmulas para pesquisar
valores nesta tabela;
Valor de Retorno Default: Pode-se cadastrar um valor de retorno padrão para pesquisas que não encontram a
condição desejada;

A seguir, a descrição da área "Campos:


Coluna Campo: Campo de condição, assume valores de CONDICAO_01 a CONDICAO_20, portanto permite criar uma
tabela com até 20 campos de condições;
Coluna Label: Título do campo, será utilizado como título da tabela de manutenção de dados desta configuração, e
também no assistente de código para informar os dados necessários em cada pesquisa dentro das fórmulas;
Coluna Domínio Tabelas: Pode-se referenciar uma tabela ou view do banco de dados para servir como informação de
pesquisa para preenchimento do campo;

© 2010 Softway S.A.


65 Guia de Customizações – Desenvolvimento

Coluna Domínio Campo: Campo da tabela ou view a ser exibido na pesquisa;


Coluna Domínio Descrição: Campo da tabela ou view para auxiliar na pesquisa, normalmente será utilizado um campo
de descrição, por exemplo, o campo do domínio será o PART_NUMBER e o campo de Descrição será o
DESC_PRODUTO. O filtro também funciona para este campo. Não é obrigatório;
Coluna Inativo: Permite Inativar o campo, se for selecionado este campo não será mais utilizado nas pesquisas e
entrada de dados;
Coluna Referência Técnica Interna: Este campo serve para referências internas dos demais sistemas, é um campo livre
para conter informações necessárias aos demais sistemas, na maioria das vezes será utilizado para referenciar algum
objeto de tela, por este motivo existe um botão espião (Spy) que vasculha os objetos de tela do sistema e guarda a
informação selecionada nesta coluna. Não afeta a lógica das condições múltiplas, é apenas referencia interna para
construções especiais nos demais sistemas.
Esta tela possui o recurso de geração de scripts.

Manutenção de Dados

Esta é a tela do usuário, onde serão cadastrados e mantidos os dados das tabelas de configuração:

Nesta tela pode-se alterar o Valor de Retorno Default e cadastrar os valores das condições. As colunas da tabela de
condições serão exatamente os mesmos configurados na tela de configuração. Os campos que tiverem domínio cadastrado
permitirão a realização de pesquisas neste domínio:

Para cada condição cadastra-se um valor de retorno numérico, que será o retorno da pesquisa dentro de uma fórmula.

7.3 Fórmulas
Com as informações disponibilizadas nas Entidades, pode-se cadastrar fórmulas para calcular os mais diversos impostos e
tarifas utilizadas nos sistemas. Uma fórmula nada mais é do que uma seqüência de ações utilizando valores (variáveis das
entidades, tabelas de pesquisa, funções etc.) para se obter um valor final como resultado do cálculo.

© 2010 Softway S.A.


Módulo de Cálculo 66

Aba "Identificação / Entidade"

Nesta aba encontram-se as informações de cadastro da fórmula, seu nome, descrição e entidades envolvidas.

A seguir, a descrição dos campos:


ID: Identificador interno de cada fórmula, o usuário não deve se preocupar com este código;
Nome da Fórmula: Nome de referência da fórmula, que será utilizado nos sistemas para obtenção do cálculo da
fórmula;
Descrição da Fórmula: Descritivo da fórmula, o mais completo possível;
Entidade Principal: Entidade principal envolvida na fórmula;
Parâmetro: É o campo chave da Entidade principal, será o valor passado na chamada de cálculo desta fórmula;
Entidades vinculadas: Lista de demais entidades envolvidas na fórmula, só podem ser definidas entidades que
possuam link com a entidade principal.

Aba "Ações"

Nesta aba são cadastrados as ações da fórmula, o cálculo em si, o passo a passo para se obter o resultado.

© 2010 Softway S.A.


67 Guia de Customizações – Desenvolvimento

A seguir, a descrição dos campos Tabela de Ações (passos da fórmula):


Nome Resultado: Nome de variável interna da fórmula, não é obrigatório, se declarado conterá o resultado da ação.
Normalmente, apenas chamadas de procedures do oracle ou blocos de PL/SQL não terão retorno em variáveis;
Tipo: Tipo da variável, pode ser numérica (NUMBER), texto (VARCHAR2) ou data (DATE). O retono da ação precisa ter
o mesmo tipo da variável;
Ação / Cálculo: Código que define alguma ação, pode ser uma associação de valores a variáveis da fórmula, uma
operação matemática, uma chamada de função ou procedure do oracle, uma pesquisa de tabela interna ou condições
múltiplas, um bloco de PL/SQL etc;
Obs. Cálculo: Texto a ser utilizado na memória de cálculo da fórmula;
Valor de Resposta: Indica qual a variável interna da fórmula conterá o resultado final desta.
A ordem de execução dos passos é exatamente a ordem de visualização no cadastro.

Aba "Tabelas de Dados"

Existem situações onde as fórmulas precisam de tabelas de dados, para determinar faixas de valores e valor default.
Além do recurso de Condições Múltiplas descrito anteriormente, existe um recurso bem mais simples (limitado) que pode ser
declarado em cada fórmula, são as tabelas de dados.
Pode-se declarar várias tabelas, mas não é recomendado ter muitas condições, este recurso tem a função de resolver
problemas simples, por exemplo, todas as transportadoras trabalham com um único valor de comissão, mas apenas 2 operam de
forma diferente, dessa forma pode-se cadastrar apenas três registros numa tabela interna da fórmula, um para cada
transportadora e um Default (valor padrão). Nesta mesma situação, se houverem 20 ou mais transportadoras com condições
diferentes, é recomendado o uso do recurso de Condições Múltiplas, não sendo mais recomendado as Tabelas de Dados.

© 2010 Softway S.A.


Módulo de Cálculo 68

A seguir, a descrição dos campos:

Combo Tabela: Seleção das tabelas de dados da fórmula. O botão ao lado direito cria as tabelas.
Coluna Condição: Condição matemática de teste de valor (igual, maior, maior ou igual, menor, menou ou igual,
DEFAULT).
Coluna Valor Condição Number: Valor numérico para teste de condição.
Coluna Valor Condição String: Valor de texto para teste de condição.
Coluna Valor Condição Date: Valor de data para teste de condição.
Valor Resposta: Valor de resultado da condição.
As colunas de condição são exclusivas, ou seja, apesar de ser permitido numa única condição cadastrar os valores
numérico, texto e data, as pesquisas de tabela nas ações da fórmula só podem ser realizadas por uma delas.

Aba "Teste"

Nesta aba pode-se realizar testes com a fórmula, para isso basta informar um valor de parâmetro válido e clicar no botão
Executa Teste, o resultado será apresentado no campo "Resposta" e a memória de cálculo, com as mensagens e os valores de
cada passo, será apresentada no campo Mensagem.

© 2010 Softway S.A.


69 Guia de Customizações – Desenvolvimento

Utilizando as fórmulas

Para utilizar uma fórmula basta utilizar duas funções da package PKC_MC, esta package, apesar de ser padrão da Base
Genérica, também precisa estar compilada nas bases dos sistemas (Import, Export etc.). Veja exemplo:

Funções:
pkg_m c.calcula( <nom e fórm ula>, <cam po chave> ): retorna o valor do cálculo.
pkg_m c.get_m sg_calculo( ): retorna a memória de cálculo da última fórmula calculada.

Criando uma fórmula de exemplo

Vamos exemplificar abaixo, passo a passo, uma fórmula de exemplo do ImportSys. A fórmula a ser criada é a Armazenagem
Secundária. A lógica desta fórmula é a seguinte:

A fórmula é calculada por Processo de Importação.

© 2010 Softway S.A.


Módulo de Cálculo 70

Os dados envolvidos na fórmula são:


Check point de entrada na zona secundária.
Check point de saída da zona secundária.
Valor CIF em reais do Processo.
Tabela de percentuais aplicados na armazenagem, de acordo com os dias de armazenagem.
O cálculo é o seguinte:
Obtem-se o número de dias de armazenagem através da difença entre os check points de saída e entrada.
Procura-se o percentual numa tabela de percentuais.
Aplica-se o percentual ao Valor CIF para obter o valor da armazenagem.

Montagem passo a passo

1. Criar ou Editar Entidade:


Precisamos criar uma Entidade com todas as informações necessárias para realizar o cálculo, a tela abaixo demonstra a
criação da Entidade IMP_PROCESSO, relacionada a tabela PROCESSO_IMPORTACAO do ImportSys, cujo campo chave é o
COD_PROCESSO:

2. Definir variáveis da Entidade:

© 2010 Softway S.A.


71 Guia de Customizações – Desenvolvimento

As variáveis desta entidade são as informações que precisamos na fórmula:

Note que as informações podem ser campos da própria tabela, como é o caso da variável COD_PROCESSO que represento o
próprio campo COD_PROCESSO da PROCESSOS_IMPORTACAO, ou funções retornando informações como é o caso dos outros
campos. Qualquer sintaxe permitida para um campo dentro de um select é aceita como variável, inclusive DECODE.

3. Criar Fórm ula:


Tendo a Entidade montada, passamos diretamente para a montagem da fórmula, os próximos passos demonstram a
montagem da fórmula, de acordo com a regra de cálculo determinada no começo do exemplo:

© 2010 Softway S.A.


Módulo de Cálculo 72

Indicamos o nome da fórmula como “IMP Arm azenagem 2ª”, informamos a descrição e a Entidade Principal, que é a
IMP_PROCESSO criada no passo anterior.

4. Definir Tabelas de Dados:


Na aba de tabelas de dados, criaremos uma tabela básica de faixas de percentual de acordo com o número de dias, a regra
será a seguinte:
Até 5 dias, percentual de 3%;
De 6 a 10 dias, percentual de 5%;
Acima de 10 dias, percentual de 10%.

5. Definir as Ações da Fórm ula:


Na aba de ações vamos inserir todas as linhas de ações que desejamos para calcular a fórmula e exibir a memória de cálculo,
o interessante é sempre começar pela busca das informações para efeito de visualização na memória de cálculo:

© 2010 Softway S.A.


73 Guia de Customizações – Desenvolvimento

Temos 6 passos nesta fórmula, vamos descrever cada um deles:


Os dois primeiros apenas buscam os check points da Entidade, desprezando a hora através da função TRUNC,
armazenando seus valores nas variáveis internas ENTRADA e SAIDA.
O terceiro passo associa a variável Valor_CIF_Real da Entidade à variável interna VL_CIF, este passo visa apenas
exibir o valor como memória de cálculo, ele não seria necessário ao cálculo final.
O quarto passo calcula a quantidade de dias de armazenagem, subtraindo a ENTRADA da SAIDA.
O quinto passo obtem o valor do percentual através de pesquisa na tabela de Porcentagem da fórmula,informando a
quantidade de dias.
O sexto passo calcula o valor final da armazenagem, multiplicando o valor CIF pelo percentual obtido.

Todos os recursos utilizados na montagem da fórmula podem ser obtidos no Assistente de codificação:

© 2010 Softway S.A.


Módulo de Cálculo 74

6. Indicar Resposta:
Informar qual será a variável de resposta da Fórmula.

7. Testar a fórm ula:


Na aba de Teste podemos realizar um teste da fórmula e verificar sua funcionalidade.

Modificação 1: Dem onstração de teste condicional

© 2010 Softway S.A.


75 Guia de Customizações – Desenvolvimento

Imagine que foi definido um valor mínimo para a fórmula de Armazenagem, digamos R$ 5,00. Precisamos alterar a fórmula com
as seguintes condições:
Criar uma nova tabela de dados para valor mínimo, somente com a opção DEFAULT, e valor 5:

Incluir dois novos passos na fórmula, a obtenção do valor mínimo e o teste (IF) de valor para determinar se retorna o valor
calculado ou o valor mínimo:

Alterar o valor de resposta:

Realizar novo teste para validar alterações:

© 2010 Softway S.A.


Módulo de Cálculo 76

Modificação 2: Utilizando Condições Múltiplas


Imagine que as condições se complicaram, teremos valores de percentual e mínimo específicos para cada credor, seremos
obrigados a utilizar o mecanismo de condições múltiplas. Precisamos seguir alguns passos para realizar esta alteração:

Alterar a Entidade incluindo a informação do Credor:

Criar as configurações e entrar com os dados para as duas tabelas de condições múltiplas, Percentual (Credor x Dias)
e Mínimo (Credor):

Configurações

Entrada de Dados

© 2010 Softway S.A.


77 Guia de Customizações – Desenvolvimento

Alterar os passos da fórmula para utilizar a pesquisa de condições múltiplas:

Realizar novo teste para validação:

© 2010 Softway S.A.


Módulo de Cálculo 78

© 2010 Softway S.A.


Capítulo
VIII
Simulação 82

8 Simulação
Com o Simulador de Custos o usuário pode projetar todos os gastos de uma importação ou exportação, do início até o fim do
processo, sem a necessidade de criar ordens, faturas (invoices) ou outras entidades reais no sistema.
É possível também criar e armazenar Profiles, ou seja, informações que se repetem na simulação de uma operação de
comércio exterior. Os profiles podem ser usados, por exemplo, para realizar simulações de diferentes importações ou exportações
e que contenham as mesmas características, como país de origem, agente de carga, transportadora, despachante, seguradora etc.
A simulação de custos inicia-se com o cadastro de parâmetros, isto é, as informações básicas que compõem cada unidade
de custo. Alguns exemplos de parâmetros são: frete internacional, Incoterm a ser utilizado, seguro internacional, entre outros,
sendo que cada um desses itens é variável, assim como seus custos. Assim, no Simulador de Custos é necessário que antes de
tudo os parâmetros estejam cadastrados no sistema, pois eles são a origem, são eles que identificam cada unidade de custo que
compõe uma importação ou exportação.
Quando o Simulador é instalado, alguns parâmetros já estão predefinidos, mas é possível alterá-los ou criar outros, o
importante é que exista pelo menos duas entidades cadastradas: uma para o processo (geral, abrangente) e outra para itens do
processo. Essas entidades já estão predefinidas na instalação. São elas: SIMULACAO_ARTEFATO e
SIMULACAO_ITEM_ARTEFATO.
Observe que essas entidades contêm em seus nomes o prefixo "SIMULACAO", que as identifica diante de outras entidades
que podem existir no Módulo de Cálculo. Portanto, ao criar novas entidades, é recomendado que esse mesmo prefixo seja
utilizado, a fim de facilitar sua identificação no sistema.
A cada entidade estarão vinculadas diversas variáveis, que são criadas automaticamente pelo sistema para cada parâmetro.
Por exemplo: se foi criado um parâmetro "A" para o nível de processo, na entidade SIMULACAO_ARTEFATO, relativa ao processo,
será criada uma variável denominada pelo sistema "V_A". São as variáveis, e não os parâmetros, que
devem ser utilizadas nas fórmulas para criar os cálculos.
Com entidades e parâmetros devidamente configurados, já será possível criar fórmulas de cálculos.

Simulando Operações de Comércio Exterior


Com todos os parâmetros cadastrados, variáveis e fórmulas definidas, será possível iniciar a elaboração da simulação.
Para isso, será necessário incluir os parâmetros de entrada e saída que compõem a fórmula - tanto de itens quanto de
processo, inserir os valores dos parâmetros de entrada e informar os dados cadastrais da simulação (código, descrição etc.).
Além disso, pode-se vincular processos de importação ou exportação à simulação, bem como criar cópias da simulação para
realizar outras simulações.
O acesso ao Simulador de Custos é feito a partir do menu Softcom ex > Sim ulação > Sim ulação.
Será aberta a janela "Filtro Simulação":

A confirmação de uma simulação significa que seus parâmetros e valores estão corretos e que não haverá mais alteração.
Por isso, depois que uma simulação foi confirmada não é mais possível alterar seus dados.

Para confirmar uma simulação, abra-a e clique no botão: .

© 2010 Softway S.A.


83 Guia de Customizações – Desenvolvimento

Para criar uma nova simulação, acesse Softcom ex>Sim ulação>Sim ulação.
Clique no botão Novo para abrir a janela "Simulação":

Nesta tela, informe um "Código" para a nova simulação. Esse código pode ser alfanumérico, deve conter até 20 caracteres e
será por meio dele que a simulação será identificada em todas as telas do sistema. Além disso, o próprio sistema cria um "ID" para a
simulação, sendo que esse número não pode ser alterado e é ele que identifica a simulação no sistema.
Caso haja algum "Profile" cadastrado que contenha as informações básicas da nova simulação, aplique-o.
Abaixo do campo "Profile" existe o campo "Status", que apresenta a situação da simulação. O status inicial da simulação é
identificado no sistema pelo código "E", e os status possíveis após o cadastro são:
E - Em Elaboração: neste status, a simulação pode ser alterada e salva quantas vezes for necessário;
P - Processada: neste status, a simulação já foi construída - isto é, todos os parâmetros e valores já foram
informados -, e já se executou a simulação (ou seja, o sistema já processou as fórmulas e apresentou os resultados
finais). Qualquer mudança que seja feita após a execução da simulação exige que ela seja executada novamente, para
que o sistema possa refazer o cálculo com os novos valores.
C - Confirm ada: neste status a simulação já foi executada e o usuário já confirmou que todos os seus campos e
resultados estão corretos; por esse motivo, depois que uma simulação foi confirmada não é mais possível alterá-la.

Na aba "Simulação", o sistema apresenta o "Usuário Responsável", o "Sistema de Origem" e a "Data/Hora" da criação ou da
última alteração da simulação.
O campo "Observação" pode ser utilizado para inserir informações detalhadas sobre a simulação que está sendo criada.
Em seguida, deve-se iniciar o processo de indicar os parâmetros que serão informados pelo usuário (entrada) e os
parâmetros que receberão os valores de saída.

Incluindo parâmetros de entrada


Para incluir um novo parâmetro no grid "Parâmetros de Entrada", clique com o botão direito do mouse sobre as linhas e
selecione a opção "Incluir item":

© 2010 Softway S.A.


Simulação 84

Incluindo itens
Para incluir itens de um processo de importação ou exportação, deve-se acessar a aba "Itens" e definir as informações
específicas desses itens, como NCM, quantidade e valor unitário, entre outras.

Em primeiro lugar, deve-se definir a "Composição" do processo, isto é, deve-se listar todos itens que fazem parte dele.
Para isso, clique com o botão direito do mouse sobre as linhas e selecione a opção "Incluir item":

O sistema criará o primeiro item do processo, que será identificado pela coluna "Item Número". Essa coluna é preenchida
automaticamente pelo sistema em números seqüenciais a partir do 1. A coluna "ID" também é preenchida automaticamente e de
forma seqüencial quando a simulação for gravada, porém com um número único no sistema para identificar o item em relação a
todas as simulações cadastradas.
Após incluir todos os itens na tabela "Composição", é necessário incluir os parâmetros de entrada e saída que compõem o
valor de cada um. Para isso, selecione um item da tabela "Composição" e, na tabela "Parâmetros de entrada", clique com o botão
direito do mouse e selecione a opção "Incluir item":

© 2010 Softway S.A.


85 Guia de Customizações – Desenvolvimento

Assim como na inclusão de parâmetros de entrada de processo, será aberta a janela "Inclusão Parâmetros Simulação", com a
diferença de que os parâmetros listados serão apenas os parâmetros de "Nível" igual a "Item" e com a "Utilização" igual a "Entrada",
conforme definido no momento da criação do parâmetro.

Então, selecione os parâmetros desejados e clique no botão OK para que o sistema então retorne à tela "Inclusão Parâmetros
Simulação" com os parâmetros selecionados devidamente incluídos na tabela.
Nesse retorno, se houver mais de um item na tabela "Composição", o sistema emitirá uma mensagem informando que os
parâmetros acrescentados no item selecionado também foram incluídos em todos os outros itens:

Isso acontece porque no Simulador de Custos todos os itens devem ter as mesmas "colunas" (como em tabelas), isto é, todo
tipo de informação que um item tenha, todos os outros deverão ter, obrigatoriamente, ainda que o conteúdo de cada coluna para
cada item seja diferente. Da mesma maneira, se um parâmetro for excluído, ele será excluído também de todos os outros itens.

© 2010 Softway S.A.


Simulação 86

Como foi dito, os valores de cada item podem ser diferentes em uma mesma "coluna". Para preencher os valores desses
campos, deve-se selecionar na tabela "Composição" um dos itens e informar seus dados na tabela "Parâmetros de Entrada".
Observe que na coluna "Descrição" da tabela "Parâmetro de Entrada" o que aparece é a mesma informação que foi inserida
no campo "Descrição" da tela "Parâmetro".
Após incluir os parâmetros, informe na coluna "Valor" os valores que cada parâmetro terá na simulação que está sendo
criada, considerando sempre o item selecionado na tabela "Composição". Deve-se atentar para o "Tipo" de parâmetro, que pode ser
texto, número ou data/hora. Em alguns campos, haverá o botão de pesquisa, que pode ser usado para buscar informações já
cadastradas no sistema. Ao clicar nesse botão, aparecerá a tela "Pesquisa" de acordo com o parâmetro selecionado. A imagem a
seguir apresenta o preenchimento de parâmetros de entrada de itens:

Da mesma maneira que no processo, após incluir os parâmetros de entrada dos itens deve-se incluir os "Parâmetros de
Saída", conforme mostra a imagem a seguir:

No campo "Memória de Cálculo" aparece a mesma informação cadastrada na coluna "Obs. Cálculo", existente no cadastro de
Fórmulas, de forma que o usuário possa visualizar na tela da simulação a lógica utilizada pelo sistema para calcular o resultado do
campo selecionado.
Após incluir todos os itens de processo, clique no botão Salvar para gravar as informações da nova simulação.
Observe que, ao salvar uma simulação pela primeira vez, seu status é inserido como "Em Elaboração".

Executando uma simulação


Depois que todas as informações, tanto do processo quanto dos itens do processo, estiverem cadastradas na simulação, é

© 2010 Softway S.A.


87 Guia de Customizações – Desenvolvimento

possível executar a simulação para obter os valores pretendidos. É neste ponto que o Simulador de Custos se revela mais
interessante: com ele, pode-se obter antecipadamente todos os valores de uma importação ou de uma exportação sem a
obrigatoriedade de criar entidades e processos "reais" no sistema.
Para executar uma simulação, acesse Softcom ex > Sim ulação > Sim ulação. Na tela "Filtro Simulação", preencha os
campos de pesquisa e clique no botão Executa Consulta para que o sistema localize a simulação procurada.
Após localizar a simulação procurada, dê duplo clique sobre a linha que a identifica, ou selecione a linha e clique no botão
Consulta.

Se todas as informações da simulação estiverem preenchidas corretamente, clique no botão Executar Sim ulação.
A partir disso, o sistema realizará todos os cálculos programados na simulação, utilizando como base as fórmulas e os
parâmetros de entrada informados, e exibirá os resultados na tabela "Parâmetros de Saída":

Se houver itens no processo, os resultados de cada item podem ser visualizados na tabela "Parâmetros de Saída" da aba
"Itens":

Copiando uma simulação


Qualquer que seja o status em que uma simulação esteja, é possível fazer uma cópia dela, a fim de criar uma nova simulação

© 2010 Softway S.A.


Simulação 88

com os mesmos parâmetros e/ou valores sem alterar a simulação original. Para isso, abra a simulação original e clique no botão
Criar Cópia Sim ulação. Todos os parâmetros e valores serão copiados para a nova simulação, mas os parâmetros de saída
serão esvaziados. Assim, é possível que sejam feitos ajustes nos valores dos parâmetros de entrada.
Para salvar a nova simulação, atribua um novo Código a ela e clique no botão Salvar. O status da nova simulação após salva
será "Em Elaboração".
Ao clicar no botão Executa Sim ulação, o sistema realizará os cálculos com base nas informações copiadas e/ou alteradas e
exibirá os novos resultados na tabela "Parâmetros de Saída", tanto de processo quanto de itens. O status da simulação passará
então para Processada.

Vinculando processos a uma simulação


A aba "Vinculação", da tela "Simulação", pode ser utilizada para incluir os processos relacionados à simulação que forem
posteriormente efetivados. Nos campos "Processo" podem ser incluídos até 50 caracteres alfanuméricos, mas é
recomendado que nesse campo sejam incluídos os códigos identificadores dos processos reais gerenciados pelos sistemas,
porque é por esse identificador que será possível criar relacionamentos entre custos reais versus custos simulados.
Por exemplo: é possível customizar relatórios que apresentem a relação entre os valores simulados para uma importação ou
exportação com os valores reais dos processos, já que no cadastro de parâmetros de saída foram informadas as despesas a que
cada parâmetro está relacionado - e também porque no campo "Processo", da aba "Vinculação", foi inserido o identificador do
processo a que as despesas pertencem.

Parâmetros
Os parâmetros são os dados de referência utilizados pelo Simulador de Custos, sendo eles que representam a origem das
informações. São exemplos de parâmetros: frete internacional, regime aduaneiro, UF do importador, quantidade, valor unitário, entre
outros. Dessa maneira, antes de fazer uma simulação é necessário que todos os parâmetros estejam cadastrados no sistema.
Para consultar parâmetros, acesse Softcom ex > Sim ulação > Parâm etros. Será aberta a janela "Filtro Simulação -
Parâmetros" com os parâmetros já cadastrados no sistema:

Cadastrando Parâmetros
Na barra de manutenção, do lado esquerdo da tela, clique no botão Novo para inserir um novo parâmetro.

© 2010 Softway S.A.


89 Guia de Customizações – Desenvolvimento

Primeiramente deve-se informar um "Código" exclusivo para o parâmetro. Esse código deve ter no máximo 20 caracteres e
pode ser composto por letras, números e/ou caracteres especiais. Esse código é o que identifica o parâmetro no sistema, sendo
que o nome da variável que será atribuída ao parâmetro é baseada nesse campo.
Após definir o código, deve-se atribuir ao parâmetro uma "Descrição" que facilite sua identificação em outras telas do
Simulador de Custos. Esse campo de descrição pode ter até 100 caracteres de texto.
Definidas essas informações cadastrais, deve-se selecionar a "Utilização" do parâmetro, isto é, se o parâmetro que está
sendo criado é do tipo:
entrada: parâmetros que recebem dados/informações para realizar os cálculos da simulação; ou
saída/resultado: parâmetros que contêm a resposta de algum cálculo realizado internamente pelo sistema.

Por exemplo:
Deseja-se realizar o seguinte cálculo: A + B = S.
Nesse exemplo, há três parâmetros: A, B e S. Os parâmetros A e B são parâmetros de entrada, porque devem ser
informados manualmente pelo usuário. O parâmetro S, por sua vez, é do tipo saída/resultado, pois recebe o resultado do cálculo A +
B.
Parâmetros do tipo entrada e saída/resultado requerem informações diferentes. A diferença entre os campos necessários em
cada tipo serão explicadas a seguir.
Após definir o tipo de parâmetro, deve-se definir o "Nível" em que esse parâmetro funciona, ou seja, se ele é referente ao
"Processo" de importação/exportação ou se é aplicado a cada "Item" desse processo.
A informação do nível do parâmetro (processo ou item) será utilizada pelo sistema na geração da variável correspondente a
esse parâmetro.
Deve-se definir também a "Ordem/Seqüência" em que o parâmetro deve acontecer, isto é, em que momento de uma seqüência
numérica linear, do menor para o maior, o parâmetro deve ocorrer. Com esse procedimento o sistema cria uma ordem para que os
parâmetros ocorram e determina as interdependência entre eles.
Por exemplo: se o parâmetro A for definido com ordem/seqüência 1 e o parâmetro B com ordem/seqüência 2, obrigatoriamente
o parâmetro A ocorrerá antes do parâmetro B.
O campo "Ordem/Seqüência" só pode ser preenchido com números, e a comparação entre esses números no sistema é
realizada em ordem crescente, independente de haver ou não quebras na seqüência. Por isso, recomenda-se que, ao criar os
parâmetros, a seqüência apresente "espaços", pois caso seja necessário inserir um novo parâmetro entre dois já existentes basta
utilizar um número intermediário entre a ordem/seqüência dos parâmetros existentes. Com isso, evita-se ter de renumerar a
seqüência de todos os parâmetros que estiverem após o parâmetro que será inserido.
Por exemplo:
Ao criar o parâmetro A atribui-se a ordem/seqüência 100; ao parâmetro B atribui-se a ordem/seqüência 200; e ao parâmetro S
a ordem/seqüência 300. Dessa maneira, se posteriomente for necessário criar o novo parâmetro (C), para atender à soma A + B +
C = S, o parâmetro S não precisará ter sua ordem/seqüência modificada. Isso não aconteceria se a ordem/seqüência do parâmetro
A fosse igual 1, do B igual 2 e do S igual 3. Nesse caso, para inserir o parâmetro C, que é um pré-requisito para que o parâmetro S
receba o resultado da soma de A, B e C, seria necessário modificar a ordem/seqüência do parâmetro S para 4.
A ordem/seqüência é utilizada pelo sistema para definir dependências entre parâmetros da seguinte maneira, por exemplo: há
três parâmetros em uma importação: frete internacional, seguro internacional e valor aduaneiro. O valor aduaneiro só pode ser
calculado depois do informados o frete e o seguro internacionais. Assim, a ordem/seqüência do valor aduaneiro deve
obrigatoriamente ser maior do que do frete e do seguro internacionais, porque o valor aduaneiro depende desses parâmetros.
Após definidos todos os itens anteriores, é importante definir corretamente o "Tipo" do parâmetro, que pode ser: "Texto",
"Número" ou "Data/Hora". Isso porque o Simulador de Custos pode usar esses três tipos de informação para realizar os cálculos.
Por exemplo:
Texto: incoterm (determinado por siglas como EXW, CIF etc.), UF Importador (sigla do estado do importador), moeda

© 2010 Softway S.A.


Simulação 90

(sigla da moeda, por exemplo USD - dólar, EUR - euro), entre outros;
Número: quantidade de itens; frete internacional; seguro internacional (valor), entre outros;
Data: data de liberação da DI, data de chegada ao terminal de destino, entre outros.

Além de todos esses campos, se o parâmetro for do tipo entrada deve ser informado como acontecerá a pesquisa e a
seleção das informações, isto é, se haverá ou não relacionamento virtual com alguma tabela do sistema. Caso haja, os dados serão
importados dessa tabela, e deve-se definir os campos dessa tabela que serão a primeira, a segunda e a terceira opção de filtro. Por
exemplo: a listagem de todos os NCMs possíveis em um processo de importação ou exportação já está cadastrada no sistema de
importação ou exportação. Quando se for incluir o parâmetro NCM no Simulador de Custos, pode-se definir em que tabela do

sistema essa listagem está armazenada. Dessa maneira, no campo do parâmetro NCM do Simulador de Custos haverá o botão ,
que, quando pressionado, abrirá uma janela de pesquisa, na qual o NCM poderá ser localizado e incluído.

Observe que na parte de cima da janela de pesquisa aparece o nome da tabela do sistema de onde as informações estão
sendo trazidas. Na figura exemplificada, o nome da tabela é SFW_TAB_NCM_SISCOMEX.
Além disso, deve-se definir também o campo "Retorno", que deve conter o campo da tabela original que deverá ser devolvido
no campo do Simulador de Custos. Por exemplo: no caso do NCM, deve-se retornar o campo "NCM", que comtém o código numérico
do NCM, e não sua descrição ou qualquer outro campo da tabela SFW_TAB_NCM_SISCOMEX.
Se o parâmetro for do tipo "saída/resultado", obviamente não há relacionamento virtual. Porém, pode-se definir o campo
"Referência - Despesa", que deve conter a chave-primária da despesa, isto é, um código que identifica uma única despesa no
sistema e que está diretamente relacionada ao parâmetro. Essa informação deve ser buscada nos Cadastros Básicos/Auxiliares do
sistema ao qual Simulador estiver vinculado.
A vinculação de uma despesa a um parâmetro permite que sejam construídos relatórios customizados que relacionem a
simulação de um processo a um processo real, possibilitando assim fazer uma comparação entre os custos projetados pela
simulação versus os custos reais.
Após informar todos os campos necessários ao cadastro de parâmetros, clique no botão Salvar para gravar as informações.

Entidades e Variáveis no Simulador de Custos


O Simulador de Custos é instalado com duas entidades-padrão: uma entidade para "processo" (com parâmetros/variáveis
genéricos para todo o processo de importação ou exportação) e outra entidade para "item" (com parâmetros/variáveis específicas
de um único item do processo). Como essas entidades já estão predefinidas no sistema, seus nomes já estão padronizados:
entidade de processo: SIMULACAO_ARTEFATO;
entidade de item : SIMULACAO_ITEM_ARTEFATO.
Para visualizar o nome que o sistema atribuiu à variável de um parâmetro cadastrado, acesse Softcom ex > Módulo de
Cálculo > Entidade.
O Cadastro de Entidades possui duas abas para cadastramento de Informações:

© 2010 Softway S.A.


91 Guia de Customizações – Desenvolvimento

Selecione, entre as entidades cadastradas, a entidade de processo (SIMULACAO_ARTEFATO) ou a entidade de item de


processo (SIMULACAO_ITEM_ARTEFATO) conforme o Nível escolhido na criação do parâmetro. Por exemplo: se o parâmetro foi
criado com o nível "Processo", então a variável estará listada na entidade de processo SIMULACAO_ARTEFATO. Se o parâmetro foi
criado com o nível "Item", acesse a entidade de item, SIMULACAO_ITEM_ARTEFATO.
A aba "Identificação" da tela "Entidade" exibe as informações cadastrais da entidade selecionada, temos os seguintes
campos:
ID: Identificador interno gerado por sequence, o usuário não deve se preocupar com este código;
Nome: Nome da Entidade cadastrada, neste exemplo utilizaremos o nome IMP_PROCESSO para mapear uma entidade
com informações dos processos de importação do ImportSys;
Descrição: Campo que descreve a Entidade;
Referência: Tabela ou view da base de dados, neste caso estaremos mapeando a tabela PROCESSOS_IMPORTACAO
do ImportSys;
Campo chave: Identificador único de cada registro da view ou tabela, no caso da tabela PROCESSOS_IMPORTACAO
esta chave é o campo COD_PROCESSO.
Nesta aba estão disponíveis os recursos de geração de script e o recurso de link entre entidades.
Para visualizar todas as variáveis que foram atribuídas a essa entidade, acesse a aba "Variáveis":

© 2010 Softway S.A.


Simulação 92

Na tabela de variáveis é possível visualizar todas as informações relacionadas a elas. Essas informações são criadas
automaticamente pelo sistema e servem apenas para consulta, não devendo ser alteradas.
A primeira coluna, "Nome Variável", apresenta o nome que o sistema atribuiu à variável a partir do Código do parâmetro.
Para formar esse nome de variável o sistema concatena o Código do parâmetro com o prefixo V_. A segunda coluna,
"Descrição", tem origem no campo "Descrição" do cadastro de parâmetros.
A terceira e última coluna, "Referência/Conteúdo", também está presente no campo abaixo do grid de variáveis. Esses dois
campos indicam a função criada automaticamente pelo sistema para utilizar o parâmetro.
Em suma, a tela "Entidade" do Módulo de Cálculo é utilizada no Simulador de Custos como fonte de consulta. É nela que estão
listadas todas as variáveis que podem ser utilizadas nas fórmulas que realizam o cálculo das simulações. Assim, toda fórmula deve
ser construída com base nas variáveis, e não nos parâmetros.

Observação:
Quando for criada uma nova entidade para o Simulador de Custos que não seja as duas entidades-padrão
(SIMULACAO_ARTEFATO ou SIMULACAO_ITEM_ARTEFATO), será necessário criar e manipular as variáveis
manualmente. O processo de simulação só será automático quando forem utilizadas as entidadespadrão.

Criando Fórmulas para o Simulador de Custos


Depois que todos os parâmetros e variáveis estiverem devidamente cadastrados no sistema, será possível criar as fórmulas
que o sistema utilizará para calcular os valores simulados da importação ou exportação.
As fórmulas são as unidades básicas de cálculo das simulações. Para mais informações sobre o funcionamento de fórmulas
no Módulo de Cálculo, consulte Módulo de Cálculo > Fórm ulas.
As fórmulas a serem utilizadas nas simulações devem ser criadas pelo próprio usuário com base nas variáveis, que por sua
vez têm origem nos parâmetros.
Por exemplo: foram criados dois parâmetros de entrada numéricos, A e B, e um parâmetro de saída S, também numérico. A
partir desses parâmetros o sistema criou, automaticamente, as variáveis V_A, V_B e V_S, que podem ser consultadas nas
"Entidades" do Módulo de Cálculo conforme o Nível do parâmetro ("Processo" ou "Item").
A intenção é somar os valores que forem inseridos nas variáveis V_A e V_B e exibir o resultado na variável V_S.
Assim, a fórmula deve ser construída da seguinte maneira: V_A + V_B = V_S, ou vice versa: V_S = V_A + V_B.

Observação:
Ao criar uma fórmula para utilizar no Simulador de Custos, é importante que ela seja salva com o prefixo "SIMUL_"
seguido do nome do parâmetro de saída, porque somente assim o sistema conseguirá disponibilizar o resultado
exatamente na variável de saída da fórmula. Por exemplo: se o parâmetro de saída tiver o nome de "RESULTADO", é
preciso que a fórmula seja salva com o nome "SIMUL_RESULTADO", para que o cálculo final da fórmula seja inserido na
variável de saída chamada "RESULTADO".

© 2010 Softway S.A.


93 Guia de Customizações – Desenvolvimento

Profiles
O Simulador de Custos possui um controle de profiles, que são informações consolidadas que podem ser aplicadas a uma
simulação. Com isso, os dados serão preenchidos automaticamente, de forma que só será necessário alterar informações que
sejam diferentes e/ou completar os valores dos parâmetros.
Para consultar profiles, acesse Softcom ex > Sim ulação > Profiles. Será aberta a janela "Filtro Simulação - Profiles de
Parâmetros" com os parâmetros já cadastrados no sistema:

Cadastrando Profiles
Para criar um novo Profile pressione o botão Novo.

Após preencher o cadastro do novo Profile, clicar no botão Salvar.

Aplicando profiles a uma simulação


Para aplicar um profile a uma nova simulação, na tela "Simulação" clique sobre o botão de pesquisa. Aparecerá a tela a
seguir, na qual o usuário pode selecionar o profile adequado entre a lista de profiles cadastrados:

© 2010 Softway S.A.


Simulação 94

Após selecionar o profile desejado, clique no botão OK. Com isso, o sistema voltará à tela "Simulação" com todos os
parâmetros de entrada e de saída - e também os valores do parâmetros de entrada - já inseridos. Basta alterar as informações

necessárias, atribuir um Código à simulação, e pressionar o botão . Em seguida, a simulação estará pronta para ser
executada.

Observação:
Quando uma simulação foi criada a partir de um profile e posteriormente sofrer alguma alteração, o usuário poderá,
na tela "Simulação", selecionar o checkbox "Atualizar dados do profile ao salvar". Com isso, o profile será alterado e
passará a conter as informações de preenchimento de novas simulações conforme as modificações realizadas.

© 2010 Softway S.A.


Capítulo
IX
Comportamento Componente 98

9 Comportamento Componente
A funcionalidade de Comportamento Componente permite o bloqueio de componentes de um determinado formulário.
Atualmente a configuração desse recurso via tela está disponível apenas no ExportSys, acessando-se Cadastros >
Com portam ento Com ponentes:

Na tela existe a opção de filtro e cadastro.

© 2010 Softway S.A.


99 Guia de Customizações – Desenvolvimento

No cadastro é possível realizar a opção de alteração da permissão do componente, pois é pré-requisito que a carga dos
componentes de determinado formulário seja feita na base de dados.
Para a carga de dados, é necessário que seja feita a chamada da função gf_GeraScriptTblCom portam ento, que gerará
um script com o mapeamento de todos os componentes do formulário e permissão default (S) sem bloqueio.
Esse script deve ser rodado na base de dados e com isso, será possível, através da tela de Cadastro de Comportamento
Componente alterar as permissões de bloqueio. Os dados ficam armazenados na tabela SFW_COMPORTAMENTO_COMPONENTES.
Para realizar o bloqueio de um componente da tela, deve-se chamar a função gf_BloqueiaCom ponentes. De maneira geral,
esta função pode ser chamada no início do evento PAM_IniciaFormulario, onde os componentes estarão sobre o controle do
bloqueio.
Exemplo:

Im portante:
Caso haja alterações nos componentes do formulário (inclusão, exclusão, alteração), uma nova carga de dados
deverá ser gerada.
Utilizar a função gf_GeraScriptTblComportamento apenas para a geração do script de inserção. Após isso comentá-la
no código para que não fique gerando o arquivo de insert a todo momento.
Para que o bloqueio de componentes funciona corretamente é necessário que o objeto do formulário esteja na classe
SFW.
Para ocultar um campo, a opção exibir deverá ser N, e a restrição deve ser "Sem Restrição".

© 2010 Softway S.A.

Das könnte Ihnen auch gefallen