310 likes | 406 Views
Padrão de Desenvolvimento SPIE (Spekx Programing Interface Exit). versão SPEKX 6.03.04. O que é o SPIE (Spekx Programing Interface Exit)?
E N D
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. createorreplacepackagebody 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_USERVARCHAR2(30) := KSP_UWB.GET_COOKIE ('USER'); Variável que armazena o Usuário Logado no SPEKX. W_ENTIVARCHAR2(10) := KSP_UWB.GET_COOKIE (‘ENTI’); Variável que armazena a Entidade (Cliente) SPEKX. W_LINGVARCHAR2(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 = SYSDATEwhere id_enti_clie = 9and id_serv = 21and id_docu = 50and id_moob = w_id_moob_paiand sq_tmpd = w_sq_tmpdand 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 isselect id_moob_origfrom tsp_movimento_documentowhere id_enti_clie=W_ENTIand id_serv= 27and id_docu=55and 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 innumber, p_id_serv innumber, p_id_docu innumber, p_id_moob innumber, p_id_wkfl innumber) ; /* ******************************************************************************* 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 isRecord (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_documentowhere 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. CREATEORREPLACEVIEW VSP_SPIE_ELO_DOCUMENTO_PAI ASSELECTDISTINCT 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 commentontable TSP_MDOC_APROPRIA_ATIVO_DET_MVis'Tabela que armazena o Relacionamento dos Itens das Estimativas...';-- Add comments to the columns commentoncolumn TSP_MDOC_APROPRIA_ATIVO_DET_MV.ID_ENTI_CLIEis'Identificador da Entidade';commentoncolumn TSP_MDOC_APROPRIA_ATIVO_DET_MV.ID_SERVis'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 invarchar2default',') returnvarchar2; 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 invarchar2, v_sep invarchar2default',') 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 innumber, p_casdec innumberdefault2) returnvarchar2; 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 invarchar2) returnnumber; 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 indate) returnvarchar2; 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 invarchar2) returndate; 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 indate) returnvarchar2; 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 invarchar2) returndate; 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 invarchar2, p_ling invarchar2,) returnvarchar2; W_VAR := ksp_upl.trad(P_VAR, W_LING); Função de Tradução Termos da Plataforma SPEKX.
Dúvidas na utilização e sugestões, favor entrar em contato: Tel/Fax: (11) 5507-3274 / (11) 5506-1165e- mail: sup_tec@spekx.com.br