Padrão de Desenvolvimento SPIE (Spekx Programing Interface Exit) versão SPEKX 6.03.04
O que é o SPIE (Spekx Programing Interface Exit)? Componente no qual permite integrar programas e bancos de dados externos a Plataforma SPEKX, desenvolvidos na linguagem PL/SQL para executar funcionalidades ilimitadas em determinados pontos do workflow. Estes programas podem ser executados ainda, nos eventos do formulário eletrônico, de forma transparente ao usuário.
Objetivo Esse material tem por Objetivo: 1 - Apresentar a Estrutura Física do Componente “Rotinas Externas SPEKX”, possibilitando ao Analista/Desenvolvedor optar pela melhor forma de implementação de suas Rotinas; 2 - Apresentar ao Analista/Desenvolvedor o Padrão SPIE de Desenvolvimento, facilitando e otimizando a manutenção/evolução de Programas pelos próprios criadores ou por outros Desenvolvedores SPEKX; 3 - Apresentar ao Analista/Desenvolvedor a Biblioteca de Funções Reutilizáveis SPEKX, facilitando e otimizando o Desenvolvimento de novos Programas utilizados pelo Componente; 4 - Modelos de Solicitação de Rotinas;
1. Estrutura Física – Rotinas Externas SPEKX Configuração das Rotinas Externas na Plataforma Cadastro de Rotinas Externas, disponibilizado no Menu TOOLS SPEKX.
1. Estrutura Física – Rotinas Externas SPEKX O SPEKX disponibiliza a configuração da Rotina Externa nos seguintes pontos da Plataforma: 1.1 No Tipo de Item Rotinas Externas Domínio: Rotina Externa Cont.Inicial: Label Botão
1. Estrutura Física – Rotinas Externas SPEKX O SPEKX disponibiliza a configuração da Rotina Externa nos seguintes pontos da Plataforma : 1.2 Nos Tipos de Item: TEXTO, ÁREA de TEXTO, REFERÊNCIAS e NÚMERO Evento Change dos Itens.
1. Estrutura Física – Rotinas Externas SPEKX O SPEKX disponibiliza a configuração da Rotina Externa nos seguintes pontos da Plataforma : 1.3 Nas Diretivas de Criar Documento, Alterar Dados, Complementação, Migração, User Changed e Propriedade Tempo-limite. Nota: Na Diretiva Criar Documento, é disponibilizada apenas a configuração Depois de Salvar o Documento.
2. Padrão SPIE de Desenvolvimento Os objetos de Banco de Dados configurados no componente Rotinas Externas SPEKX, devem ser desenvolvidos respeitando o seguinte Padrão de Desenvolvimento: Nomenclaturas Para melhor Gestão da Plataforma, utiliza-se um Padrão de Nomenclaturas para os objetos SPIE. As descrições são compostas por: - Prefixo Identificador do Objeto; - Descrição Identificadora SPIE; - Descrição Identificadora do Cliente; - Descrição Lógica do Objeto; Ex.: KSP_SPIE_ELO_CALCULA_SALDO_DISPONIVEL. Package SPIE de cálculo do saldo disponível. Cliente ELO. TSP_SPIE_ELO_AUX_SALDO_DISPONIVEL. Tabela SPIE que armazena o valor de cálculo do saldo disponível no Documento. Cliente ELO.
2. Padrão SPIE de Desenvolvimento 2.1. Packages Nomenclatura KSP_SPIE_+[ Descrição Identificadora do Cliente ]_[ Descrição Lógica da Package ]; Cabeçalho Identificador da Package Utilizado para catalogar e historificar os códigos que compõem a Package. Referência para futuras manutenções/evoluções das Rotinas. create or replace package body ksp_spie_elo_funcionalidade is /* ******************************************************************************* Descrição Funcional da Package; Síntese funcional de Rotinas (Procedures, Functions); Informações de Apoio à Funcionalidade; ********************************************************************************* * Histórico de Revisão: * -------------------------- * Data | Versão | Autor | Descrição * ======================================================================= ******************************************************************************* */
2. Padrão SPIE de Desenvolvimento 2.1. Packages Variáveis Globais SPEKX O componente Rotinas Externas permite a utilização das Variáveis Globais SPEKX em seus Programas. Declarações A Package deve conter em suas Declarações, as seguintes variáveis: W_USER VARCHAR2(30) := KSP_UWB.GET_COOKIE ('USER'); Variável que armazena o Usuário Logado no SPEKX. W_ENTI VARCHAR2(10) := KSP_UWB.GET_COOKIE (‘ENTI’); Variável que armazena a Entidade (Cliente) SPEKX. W_LING VARCHAR2(2) := KSP_UWB.GET_COOKIE (‘LING'); Variável que armazena o Idioma utilizado na Plataforma SPEKX.
2. Padrão SPIE de Desenvolvimento 2.1. Packages Variáveis Globais SPEKX O componente Rotinas Externas permite a utilização das Variáveis Globais SPEKX em seus Programas. Utilização W_USER Utilizada para Atualizar as Tabelas SPEKX, onde a Rotina Externa efetua inclusões / alterações. Ex.: update tsp_mdoc_template_item set ds_valu_item = replace (w_ds_valu_item,','), cd_user_mntn = W_USER, dt_user_mntn = SYSDATE where id_enti_clie = 9 and id_serv = 21 and id_docu = 50 and id_moob = w_id_moob_pai and sq_tmpd = w_sq_tmpd and sq_item = w_sq_item ;
2. Padrão SPIE de Desenvolvimento 2.1. Packages Variáveis Globais SPEKX O componente Rotinas Externas permite a utilização das Variáveis Globais SPEKX em seus Programas. Utilização W_ENTI Utilizada para Atualizar as Tabelas SPEKX, onde a Rotina Externa efetua inclusões. Utilizada para indexar os filtros utilizados nos Cursores da Rotina. Valor W_ENTI = Parâmetro p_id_enti_clie. Ex.: Cursor c_moob_pai is select id_moob_orig from tsp_movimento_documento where id_enti_clie=W_ENTI and id_serv= 27 and id_docu=55 and id_moob=p_id_moob;
2. Padrão SPIE de Desenvolvimento 2.1. Packages Variáveis Globais SPEKX Utilização W_LING Utilizada para tradução de termos contidos nas Rotinas Externas. Utilizada em conjunto com a Função de tradução SPEKX - KSP_UPL.TRAD. Ex.: htp.print(' <script language="JavaScript"> alert(“KSP_UPL.TRAD(‘Valor Informado Ultrapassa o Saldo Atual !’,W_LING)"); top.window.close(); </script>');
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Nomenclatura É aconselhável utilizar nomes que identifiquem a funcionalidade da Procedure. Cabeçalho Identificador da Procedure Utilizado para melhor entendimento da Estrutura Desenvolvida na Rotina Externa. procedure rct_valor_contratado(p_id_enti_clie in number, p_id_serv in number, p_id_docu in number, p_id_moob in number, p_id_wkfl in number) ; /* ******************************************************************************* Síntese funcional da Procedure; Incidências de chamada; Descrição da funcionalidade; ******************************************************************************* */
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Declarações Padrão de Nomenclatura utilizado para Declarações da Procedure. Parâmetros Prefixo P__ + [ Descrição Lógica do Parâmetro ]. Tipo da Variável Na utilização de Parâmetros que armazenam informações do Banco de Dados, é utilizado o %TYPE da coluna na sua declaração. Ex.: procedure valida_saldo_criacao( p_id_enti_clie in tsp_entidade.id_enti%type, p_id_serv n tsp_servico.id_serv%type, p_id_docu in tsp_documento.id_docu%type, p_id_moob in tsp_movimento_documento.id_moob%type) ;
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Parâmetros Pré-Definidos A Package.Procedure de StartUp da Rotina Externa, por Padrão, deve receber os seguintes Parâmetros: Rotina Utilizada pelo Tipo de Item Rotinas Externas Procedure valida_saldo_criacao( p_id_enti_clie in tsp_entidade.id_enti%type, p_id_serv n tsp_servico.id_serv%type, p_id_docu in tsp_documento.id_docu%type, p_id_moob in tsp_movimento_documento.id_moob%type);
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Parâmetros Pré-Definidos A Package.Procedure de StartUp da Rotina Externa, por Padrão, deve receber os seguintes Parâmetros: Rotina Utilizada no Evento Change nos Tipos de Item Texto, Área de Texto e Referências Procedure valida_saldo_criacao( p_id_enti_clie in tsp_entidade.id_enti%type, p_id_serv n tsp_servico.id_serv%type, p_id_docu in tsp_documento.id_docu%type, p_id_moob in tsp_movimento_documento.id_moob%type, p_valor in varchar2(4000) ) ; * p_valor: Valor do Item configurado.
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Parâmetros Pré-Definidos A Package.Procedure de StartUp da Rotina Externa, por Padrão, deve receber os seguintes Parâmetros: Rotina Utilizada nas Diretivas de Criar Documento, Alterar Dados, Complementação e Migração Procedure valida_saldo_criacao( p_id_enti_clie in tsp_entidade.id_enti%type, p_id_serv n tsp_servico.id_serv%type, p_id_docu in tsp_documento.id_docu%type, p_id_moob in tsp_movimento_documento.id_moob%type, p_id_wkfl in tsp_workflow.id_wkfl%type ) ; * p_id_wkfl: Identificação do workflow (atividade). Validação de Troca de Status.
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Declarações Padrão de Nomenclatura utilizado para Declarações da Procedure. Variável Prefixo W_ + [ Descrição Lógica da Variável ]. Tipo da Variável Na utilização de variáveis que armazenam informações do Banco de Dados, é utilizado o %TYPE da coluna na sua declaração. Ex.: w_id_stat TSP_DOCUMENTO_STATUS.ID_STAT%TYPE; Type w_documento is Record (id_serv TSP_SERVICO.ID_SERV%TYPE, id_docu TSP_DOCUMENTO.ID_DOCU%TYPE, ds_labl_docu TSP_DOCUMENTO.ID_MOOB %TYPE );
2. Padrão SPIE de Desenvolvimento 2.2. Procedures Declarações Padrão de Nomenclatura utilizado para Declarações da Procedure. Cursor Prefixo C_ + [Descrição Lógica do Cursor]. Parâmetros do Cursor Prefixo PI_ + [Descrição Lógica do Parâmetro]. Na utilização de parâmetros que armazenam informações do Banco de Dados, é utilizado o %TYPE da coluna na sua declaração. Ex.: Cursor c_moob_pai( pi_id_serv tsp_servico.id_serv%type, pi_id_docu tsp_documento.id_docu%type, pi_id_moob tsp_movimento_documento.id_moob%type ) is Select id_moob_orig from tsp_movimento_documento where id_enti_clie = W_ENTI ...
2. Padrão SPIE de Desenvolvimento 2.3. Views Nomenclatura VSP_SPIE_+[ Descrição Identificadora do Cliente ]_[ Descrição Lógica da View ]; Cabeçalho Identificador da View Utilizado para melhor entendimento da Estrutura Desenvolvida na Rotina Externa. CREATE OR REPLACE VIEW VSP_SPIE_ELO_DOCUMENTO_PAI AS SELECT DISTINCT A.ID_ENTI_CLIE, B.ID_SERV, B.ID_DOCU, A.ID_MOOB ... /* ******************************************************************************* Definição de Dados da View; Incidências de chamada; Observações; ******************************************************************************* */
2. Padrão SPIE de Desenvolvimento 2.4. Tabelas Nomenclatura TSP_SPIE_+[ Descrição Identificadora do Cliente ]_[ Descrição Lógica da Tabela ]; Comentários da Tabela Utilizado para melhor entendimento da Estrutura Desenvolvida na Rotina Externa. -- Add comments to the table comment on table TSP_MDOC_APROPRIA_ATIVO_DET_MV is 'Tabela que armazena o Relacionamento dos Itens das Estimativas...'; -- Add comments to the columns comment on column TSP_MDOC_APROPRIA_ATIVO_DET_MV.ID_ENTI_CLIE is 'Identificador da Entidade'; comment on column TSP_MDOC_APROPRIA_ATIVO_DET_MV.ID_SERV is 'Identificador do Serviço';
Utilizando Funções SPEKX O Componente Rotinas Externas, por Conta de sua Estrutura, permite a Utilização de Funções Específicas da Plataforma SPEKX. Por essa condição, o Analista Desenvolvedor assume TOTAL AUTONOMIA no Desenvolvimento de Rotinas podendo: Utilizar Funções SPEKX de Tratativas de Dados; Utilizar Componentes e Funções SPEKX de Tratativas de Datas; Desenvolver Formulários de Interatividade com o Usuário, a partir do Componente Rotinas Externas; Disparo de Alertas e Mensagens ao Usuário a partir do Componente, conforme a Definição da Funcionalidade; Intervir nos Dados da Plataforma;
Notas Notas que devem ser levadas em consideração no Desenvolvimento de programas utilizadas no Componente Rotinas Externas: Identar as Estruturas Desenvolvidas, para maior clareza e Entendimento do Código; Utilizar Comentários nos trechos de Código que Tratem Detalhes da Funcionalidade; Criar as Rotinas, utilizando Nomenclaturas que facilitem seu Entendimento Funcional; Se atentar às Rotinas que Operam Intervenções nos Dados do Documento/Plataforma; Procurar sempre o Desenvolvimento Lógico, Claro e Objetivo;
3 - Biblioteca de Funções Reutilizáveis SPEKX Para apoio ao Desenvolvimento, Especificamos as Principais Funções Reutilizáveis da Plataforma. As Funções estão organizadas em 3 Grupos: 3.1- Funções de Tratamento e Conversão de Dados; 3.2- Funções de Tratamento e Conversão de Data / Hora; 3.3- Funções de Interface; As Especificações são compostas por: * Especificação; * Modelo de Utilização; * Observações;
3.1 – Funções de Tratamento e Conversão de Dados function array_to_char ( v_array in ksp_types.ident_arr, v_sep in varchar2 default ',') return varchar2; W_VAR := ksp_upl.array_to_char(P_VAR,[SEPARADOR]); Função de conversão de variável array para texto. function char_to_array ( v_string in varchar2, v_sep in varchar2 default ',') return ksp_types.ident_arr ; W_VAR := ksp_upl.char_to_array(P_VAR,[SEPARADOR]); Função de conversão de variável texto para array.
3.1 – Funções de Tratamento e Conversão de Dados function nr_to_char (p_valr in number, p_casdec in number default 2) return varchar2; W_VAR := ksp_upl.nr_to_char(P_VAR,[qtd. casas decimais]); Função de conversão de variável numérica para texto. function char_to_nr (p_valr in varchar2) return number; W_VAR := ksp_upl.char_to_nr(P_VAR); Função de conversão de variável texto para número.
3.2 – Funções de Tratamento e Conversão de Data/Hora function dt_to_char (p_date in date) return varchar2; W_VAR := ksp_upl.dt_to_char(P_VAR); Função de conversão de variável data para texto. function char_to_dt (p_char in varchar2) return date; W_VAR := ksp_upl.char_to_dt(P_VAR); Função de conversão de variável texto para data.
3.2 – Funções de Tratamento e Conversão de Data/Hora function dth_to_char (p_date in date) return varchar2; W_VAR := ksp_upl.dt_to_char(P_VAR); Função de conversão de variável data/hora para texto. function char_to_dth (p_char in varchar2) return date; W_VAR := ksp_upl.char_to_dt(P_VAR); Função de conversão de variável texto para data/hora.
3.3 – Funções de Interface function trad (p_texto in varchar2, p_ling in varchar2,) return varchar2; W_VAR := ksp_upl.trad(P_VAR, W_LING); Função de Tradução Termos da Plataforma SPEKX.
Tel/Fax: (11) 5507-3274 / (11) 5506-1165 e- mail: sup_tec@spekx.com.br Dúvidas na utilização e sugestões, favor entrar em contato: Tel/Fax: (11) 5507-3274 / (11) 5506-1165 e- mail: sup_tec@spekx.com.br