1. Esquema y
Estándares de
Trabajo
29 de Septiembre de 2011
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
2. Esquema de
trabajo
29 de Septiembre de 2011
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
3. Contenido
Relació n Interdepartamental
Esquema de Trabajo Interno
Source Control
Plan de Trabajo
Process Dashboard
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
4. Ordenes de Servicio
Una orden de servicio es básicamente un orden de trabajo que el personal de Soporte a
Sistemas turna al personal de Desarrollo de Soluciones, para que este ultimo le de
solución a un problema de la aplicación o bien realice una mejora de funcionalidad o
mejora visual de acuerdo a una solicitud planteada por el usuario.
Usuario Help Desk Soporte a Sistemas Desarrollo
• El usuario detecta un • El personal captura la • El personal revisa la • La orden es revisada y
error en la aplicación. orden de servicio de orden y trata de recrear el caso es recreado una
acuerdo a lo que el el caso que el usuario vez mas.
• Marca a DGI al Help usuario le comenta. especifico en la orden,
Desk para levantar una de ser necesario se • Si es un error de lógica,
orden de servicio. • Clasifica la orden de comunica con el para se corrige el problema
servicio para que sea una mejor explicación de fondo para que este
revisada. no vuelva a ocurrir, si es
• Si la orden procede de aplicación se corrige
como error de sistema solamente.
la turna a Desarrollo
• Generar nueva versión
del ejecutable con el
cambio realizado
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
5. Propuesta de Flujo para O.S.
Problemas
Soporte a Sistemas Desarrollo
• El personal revisa la orden y trata de recrear el caso que • La orden es revisada y el caso es recreado una vez mas, en
el usuario especifico en la orden, de ser necesario se caso de ser necesario.
comunica con el para una mejor explicación.
• Si es un error de lógica, se corrige el problema de fondo para
• Revisar si realmente se trata de un error en la aplicación. que este no vuelva a ocurrir.
• Obtener una descripción mas detallada del error. • Si es de aplicación se corrige solamente.
• Obtener los datos y el flujo mediante el cual se recrea el • Si el error origina que se grabe mal la información en la base de
error. datos y hay manera de corregirlo retroalimentar al
departamento de soporte a sistemas para que este apoye en la
• Obtener los datos del usuario (nombre, dependencia y corrección de información mientras se resuelve el problema de
extensión) para que el departamento de desarrollo pueda fondo.
contactarlo de ser requerido.
• Proveer al departamento de Soporte a Sistemas de los querys
• Prestar apoyo para corrección de información. requeridos para la corrección de información.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
6. Propuesta de Flujo para O.S.
Solicitudes
Soporte a Sistemas Desarrollo
• El personal revisa la orden y en caso de ser necesario se • La orden es revisada y se analiza la factibilidad de la solicitud.
comunica con el para una mejor explicación de su
solicitud. • En el caso de reportes y/o consultas si se determina que el
usuario puede obtener esa información en el sistema de alguna
• Revisar si es factible realizar esta modificación. otra parte se debe de retroalimentar al personal de soporte a
sistemas para que este transmita esta al usuario.
• Obtener una descripción mas especifica de la solicitud.
• Se analiza en conjunto con el usuario el requerimiento a fin de
• Obtener los datos del usuario (nombre, dependencia y pulir la solicitud y aclarar puntos de duda sobre la orden.
extensión) para que el departamento de desarrollo pueda
contactarlo de ser requerido. • Desarrollo de la solicitud de acuerdo a lo solicitado.
• En el caso de solicitud de reporte y/o consulta investigar el • Proveer al departamento de Soporte a Sistemas de una
motivo o que información quieren explotar con ese reporte. retroalimentación del cambio para que este pueda apoyar al
usuario en caso de cualquier mensaje de error.
• Para reportes se deberá de solicitar al usuario un formato,
la definición de las columnas, grupos y filtros que el • Alimentar las soluciones a problemas mas comunes que se
usuario solicita que se incluyan en la ventana. pueden originar con la solución desarrollada.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
7. Contenido
Relació n Interdepartamental
Esquema de Trabajo Interno
Source Control
Process Dashboard
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
8. Source Control
Funciona para controlar las versiones y el desarrollo en
equipo.
El líder del proyecto es el responsable de tener
siempre todos los objetos y de ir soltando conforme se
vayan requiriendo.
Facilidad para el líder de proyecto de generar versió n
mientras algunas actualizaciones sigan pendientes de
terminarse.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
10. Process Dashboard
Contabilizar el tiempo de las actividades que realizamos dentro de
nuestro horario de trabajo.
Registro de actividades que no llegan con anterioridad, con
urgencia y/o de orden directa.
En combinació n con el plan de trabajo nos permite encontrar
desfases anticipados de los proyectos ‘bandera’.
Autocritica.
OJO: No es fiscalizació n es auto administració n.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
11. Process Dashboard
Control de Tiempo Navegación Comentarios
Menú Estimación Selección de Tareas Terminar
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
12. Process Dashboard
Agregar, eliminar y modificar
actividades.
Crear el árbol de trabajo a fin de
detallar proyectos y actividades
especificas.
Estructura propuesta.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
13. Process Dashboard
Ver a detalle el tiempo empleado en cada tema y/o agregar
comentario a las interrupciones.
Filtro por fechas para ver que se hizo en la semana.
Acceso a la tarjeta de tiempos (Time Card View).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
14. Process Dashboard
Ver a detalle el tiempo empleado en cada tema y/o agregar
comentario a las interrupciones.
Filtro por fechas para ver que se hizo en la semana.
Acceso a la tarjeta de tiempos (Time Card View).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
15. Process Dashboard
Ver a detalle por día el tiempo empleado en cada tema.
Análisis de la distribució n del tiempo entre temas.
Insumo para obtener la hoja de tiempos y esfuerzos.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
16. Process Dashboard
Minimizado en el Systray
Click sobre el icono para pausar/contabilizar
Ctrl + ‘Click’ para cambiar de actividad (incluso sin pausar).
‘Click’ con el botó n derecho para abrir el menú .
Abrir la ventana de administració n de actividades.
Abrir la ventana ‘Log de Tiempos’.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
17. Estandarizació n y
Optimizació n del
Desarrollo Desktop
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
18. ¿Que buscamos?
Ejemplos
dw_1.retrieve(a) dw_1.retrieve(a)
for i=1 to dw_1.rowcount()
for i=1 to dw_1.rowcount() ls_b = dw_1.getitemstring(i,’nombre’)
ls_b = dw_1.getitemstring(i,1) if Len(ls_b)<0 Then
else
if Len(ls_b)<0 Then dw_1.setitem(i,’activo’,’S’)
else dw_1.accepttext()
dw_1.setitem(i,5,’S’) end if
dw_1.accepttext() Next
end if
Next
dw_1.retrieve(a)
for i=1 to dw_1.rowcount()
ls_b = dw_1.getitemstring(i,’nombre’)
if Len(ls_b)<0 Then
else
dw_1.setitem(i,’activo’,’S’)
dw_1.accepttext()
end if
Next
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
21. Objetivos del Taller
Permear las buenas prácticas de codificació n a todo el departamento
estandarizando la visió n con la cual se diseñ an o desarrollan las
aplicaciones.
Reforzar el conocimiento de los estándares de desarrollo así como el
uso de las librerías estándar.
Proveer de herramientas tanto al programador como al líder del
proyecto sobre que es lo que se tiene que revisar en un producto antes
de ser entregado.
Optimizar el tiempo de desarrollo fomentando la reutilizació n de
có digo, esquemas de encapsulamiento de funcionalidad y herencia.
Generar una base de conocimientos para referencia de quien lo
requiera y que pueda servir tambié n como curso de inducció n al
personal nuevo.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
22. Contenido del Taller
Checklist
Visual
Ló gico
Mensajes
Estándares Básicos
Visuales
Máscaras y Formatos
Reportes
Nomenclatura de Variables
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
23. Contenido del Taller
Buenas Prácticas de Codificació n
Indentació n del Có digo
Indentació n de Sentencias SQL embebido
Ámbito de Variables
Referencia de Objetos en Variables
Pasar pará metros entre ventanas
DS/DW
Blobs
Funciones
Esquema de Objetos
Triggers, Procedures and Functions (BD).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
24. Contenido del Taller
Librerías y Estándares
Ruta de Trabajo
Nomenclatura
Librerías de Objetos Estándar
Objetos Está ndar que agilizan el Desarrollo
Recopilació n de Trucos y Tips
Tips SQL
Tips PB
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
25. Contenido del Taller (Día 1)
Checklist
Visual
Ló gico
Mensajes
Estándares Básicos
Visuales
Máscaras y Formatos
Reportes
Nomenclatura de Variables
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
26. Checklist
Como Programador.
Tener un marco de referencia de que es lo se tiene que revisar por default al
entregar un producto con la calidad esperada.
Como Líder de Proyecto.
Es el primer punto de referencia de la supervisió n si el producto entregado no
cumple cuando menos con este checklist debe regresarse.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
27. Checklist 1: Visual
Estándares de Color
Estándares de Formato
Alineació n de Controles
Uso de Scrollbars (Verticales y Horizontales)
Ventanas en Cascada (Sheets)
¡Ortografía!
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
28. Checklist 2: Ló gicos
Validar valores nulos
Capturar los errores de Llave Primaria y Llave Foránea.
Validaciones sobre Fechas
Inhabilitar opciones de menú
Longitud de Captura.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
29. Checklist 3: Mensajes
Aviso Vs. Error
¿Que es un Aviso?
¿Que es un Error?
Redacció n del Mensaje
‘Informació n Grabada Exitosamente’
Mensajes cortos/largos.
¡Ortografía!
Iconos para Mensajes
Mensajes con w_dgi_espere.
Lineamientos Acció n en Gerundio + Proceso.
Messagebox y Rollback
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
30. Contenido del Taller (Día 1)
Checklist
Visual
Ló gico
Mensajes
Estándares Básicos
Visuales
Máscaras y Formatos
Reportes
Nomenclatura de Variables
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
31. Estándares Básicos
VISUALES
Tipo de Letra
Tipo de letra Tamañ o Color
Ms Sans Serif 8 Negro
Smallfonts* 7 Negro
* Solo se puede utilizar en reportes
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
32. Estándares Básicos
VISUALES
Alineació n
Rubro Alineació n Alineació n
Captura Despliegue
Claves Numé ricas (Clave de Catá
logo, Folios, Centrado Centrado
etc..)
Números enteros que representan cantidades Derecha Derecha
a sumar (No. de registros)
Fechas Centrado Centrado
Cantidades Monetarias Derecha Derecha
Porcentaje Derecha Derecha
Títulos de Columnas en ventanas/dw N/A Centrado
Títulos de Columnas en Reportes N/A Centrado
Etiquetas en Free Forms N/A Derecha
Campos de Texto Izquierda Izquierda
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
33. Estándares Básicos
VISUALES
Colores Estándar.
DW Tabular y DW Grid, DW Crosstab (Captura, Consulta en Pantalla)
Rubro Color Relleno/Letra Borde
Background del Datawindow Blanco/NA NA
Título de Columnas Button Face/Negro Raised
Campos de Edició n (Texto, Dropdowns, etc..) Blanco/Negro None
Campos de Selecció n (Radios, Checkbox, etc..) Trasparente/Negro None
DW FreeForm y todos los demás (Captura y Consulta en Pantalla)
Rubro Color Relleno/Letra Borde
Background del Datawindow Button Face/NA NA
Título de Columnas (Etiquetas de Campo) Trasparente/Negro None
Campos de Edició n (Texto, Dropdowns, etc..) Blanco/Negro Lowered
Campos de Selecció n (Radios, Checkbox, etc..) Trasparente/Negro None
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
34. Estándares Básicos
DW para Reportes
Rubro Color Borde
Relleno/Letra
Background del Datawindow Button Face/NA NA
Título de Columnas (Etiquetas de Campo) Trasparente/Negro None
Campos de Edició n (Texto, Dropdowns, etc..) Trasparente/Negro None
Campos de Selecció n (Radios, Checkbox, Trasparente/Negro None
etc..)
Ventanas
Rubro Color Borde
Relleno/Letra
Background Button Face/NA NA
Etiquetas Trasparente/Negro None
Objetos de Edició n (Texto, Dropdowns, etc..) Blanco/Negro Lowered
Objetos de Selecció n (Radios, Checkbox, etc..) Trasparente/Negro None
Groupbox Trasparente/Negro Lowered
Objetos Lista (Listbox, Treeview, Lists) Blanco/Negro Lowered
Botones Button Face/Negro NA
DW Control para todos los demá tipos
s NA Lowered
DW Control para FreeForm NA None
Contenedor Objetos OLE NA NA
Tabs Button Face/Negro NA
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
35. Estándares Básicos
Mascaras y Formatos
Rubro Captura Despliegue Impresió n
Texto Normal ( excepto URL’s y Mayúsculas Mayúsculas Mayúsculas
direcciones de E-mail)
Números que representan claves o folios ‘###0’ ‘###0’ ‘###0’
Números enteros que representan ‘#,##0’ ‘#,##0’ ‘#,##0’
cantidades a sumar
Números enteros negativos que ‘-#,##0’ ‘-#,##0’ ‘-#,##0’
representan cantidades a sumar
Números que representan cantidades ‘$#,##0.00’ ‘$#,##0.00’ ‘$#,##0.00’
monetarias
Números Negativos que representan ‘(#,##0.00)’ ‘[RED](#,##0.00)’ ‘[RED](#,##0.00)’
cantidades monetarias
Números que representan porcentajes ‘##0.00%’ ‘##0.00%’ ‘##0.00%’
Números Negativos que representan ‘(##0.00%)’ ‘[RED]##0.00%’ ‘[RED]##0.00%’
porcentajes
Fecha ‘dd/mm/yyyy’ ‘dd/mm/yyyy’ ‘dd/mm/yyyy’
Hora ‘HH24:mm:ss’ ‘HH24:mm:ss’ ‘HH24:mm:ss’
Fecha y Hora ‘dd/mm/yyyy ‘dd/mm/yyyy ‘dd/mm/yyyy
HH24:mm:ss’ HH24:mm:ss’ HH24:mm:ss’
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
36. Estándares Básicos
Reportes
Encabezado
Cuerpo
Pie de Página
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
37. Estándares Básicos
Encabezado Nombre de
la Empresa
Nombre de la
Dirección
Nombre de la
Secretaría
Nombre de la
Logotipo de Título del Aplicación
la Empresa Reporte
Crear un reporte que seránesteado en todos los demá reportes de la aplicació n.
s
Este reporte deberáde llamar d_rep_header o algo parecido de acuerdo al estándar para
identificarlo como un reporte de encabezado.
Debe de Recibir como argumentos el Path de la imagen y el Titulo del Reporte.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
38. Estándares Básicos
Cuerpo del Reporte
Encabezado
Detalle de
Información
Los encabezados de las columnas deberá ir siempre en mayú
n sculas.
Todos los catálogos al final llevaran un conteo de registros.
En los reportes agrupados siempre deberáde tener cuando menos un conteo de registros por
cada grupo, si son cantidades tambié n a menos que el usuario especifique lo contrario.
El uso de negritas es exclusivo de columnas que sean divisió n de agrupamientos o bien en
las columnas de totales por grupo y total final.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
39. Estándares Básicos
Pie de Pagina Fecha y Hora de
la Impresión
Paginación
Nombre del
DW
Nombre del DW siempre a la Izquierda, Fecha y Hora al Centro y Paginació n a la derecha
La fecha y hora de impresió n debe de ser un SYSDATE que se encuentra como campo
dentro del query del reporte
La paginació n es un compute predefinido por PowerBuilder al que se le tiene que cambiar
el texto al españ ol
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
40. Estándares Básicos
Nomenclatura de Variables
Sintaxis del Nombrado de Variables (Notació n Húngara)
Ámbito + tipo_dato + ‘ _’ + nombreVariable
El nombre de la variable después del guión bajo se utilizará en
notación camello.
Ejemplo:
li_tipoContribuyente
Evitar el uso de variables genéricas para contador o
acumulador.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
41. Estándares Básicos
Nomenclatura de Variables
Ámbito de las variables
Context Prefij Uso
o o Se utilizan únicamente dentro del evento o mé todo donde son
Local l
creadas.
Instancia i Cuando es necesario que únicamente los componentes,
mé todos y eventos que pertenecen al mismo objeto utilicen el
valor de la variable.
Global g Cuando sea necesario que el valor sea utilizado en cualquier
componente de la aplicació n.
Shared s Cuando es necesario que el valor se mantengan durante todas
las instancias que tenga un objeto.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
42. Estándares Básicos
Nomenclatura de Variables
Tipo de Variables
Tipo Prefijo Tipo Prefijo
Boolean b Long l
Integer i Blob bl
Decimal d Char c
Double db Real r
String s Unsigned Long ul
Date dt Unsigned Integer ui
Datetime dtt
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
43. Contenido del Taller (Día 2)
Buenas Prácticas de Codificació n
Comentarios en el Có digo
Indentació n del Có digo
Indentació n de Sentencias SQL embebido
Ámbito de Variables
Referencia de Objetos en Variables
Pasar pará metros entre ventanas
DS/DW
Blobs
Funciones
Esquema de Objetos
Triggers, Procedures and Functions (BD).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
44. Buenas Prácticas de
Codificació n
Comentarios en el Có digo
Generalidades
El comentario al inicio de funciones o eventos de usuario deben de especificar para
que se creo la funció n, que argumentos recibe y quien la creó .
Los comentarios deben de hacerse donde inicia un proceso dentro de la ventana o
bien para explicar el porque le aplicació n toma cierta decisió n.
No exagerar en los comentarios.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
45. Buenas Prácticas de
Codificació n
//En base al proceso se elige el formato //En base al proceso se elige el formato
Choose Case as_proceso Choose Case as_proceso //Verifico el proceso
Case 'E‘ //Se obtiene el formato de Respuesta Case 'E‘ //Se obtenie el formato de Respuesta
//Leer el formato de la BD
SELECT FORMATO_EMIS SELECT FORMATO_EMIS
INTO :li_formato INTO :li_formato
FROM DGI.TIPO_TRAMITE_CONFIG FROM DGI.TIPO_TRAMITE_CONFIG
WHERE TIPO_TRAMITE = :ai_tipo_tramite WHERE TIPO_TRAMITE = :ai_tipo_tramite
AND FORMA_PRES =:ai_forma_pres AND FORMA_PRES =:ai_forma_pres
USING at_trans; USING at_trans;
if at_trans.sqlcode <> 0 then RETURN -1 //Si el query me da error salir de la funcion
if isnull(li_formato) then li_formato = 0 if at_trans.sqlcode <> 0 then RETURN -1
//Si el formato es nulo asignar 0
Case "R“ //Se obtiene el formato de Respuesta if isnull(li_formato) then li_formato = 0
SELECT FORMATO_RESP Case "R“ //Se obtiene el formato de Respuesta
INTO :li_formato //Leer el formato de la BD
FROM DGI.TIPO_TRAMITE_CONFIG SELECT FORMATO_RESP
WHERE TIPO_TRAMITE = :ai_tipo_tramite INTO :li_formato
AND FORMA_PRES =:ai_forma_pres FROM DGI.TIPO_TRAMITE_CONFIG
USING at_trans; WHERE TIPO_TRAMITE = :ai_tipo_tramite
AND FORMA_PRES =:ai_forma_pres
if at_trans.sqlcode <> 0 then RETURN -1 USING at_trans;
if isnull(li_formato) then li_formato = 0
End Choose //Si el query me da error salir de la funcion
if at_trans.sqlcode <> 0 then RETURN -1
//Si el formato es nulo asignar 0
if isnull(li_formato) then li_formato = 0
End Choose //Fin de la seleccion
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
46. Buenas Prácticas de
Codificació n
/* Funcion: uof_obtener_formato */
/* Descripcion: Se elije el tipo de formato en base */
/* al tipo de tramite y forma de */
/* presentar la garantía. */
/* Argumentos: ai_tipo_tramite, ai_forma_pres */
/* Regresa: El valor del formato a utilizar */
/* Creada por: Luis Francisco López */
Case 'E‘ //Se obtenie el formato de Respuesta
SELECT FORMATO_EMIS
INTO :li_formato
FROM DGI.TIPO_TRAMITE_CONFIG
WHERE TIPO_TRAMITE = :ai_tipo_tramite
AND FORMA_PRES =:ai_forma_pres
USING at_trans;
if at_trans.sqlcode <> 0 then RETURN -1
if isnull(li_formato) then li_formato = 0
Case "R“ //Se obtiene el formato de Respuesta
SELECT FORMATO_RESP
INTO :li_formato
FROM DGI.TIPO_TRAMITE_CONFIG
WHERE TIPO_TRAMITE = :ai_tipo_tramite
AND FORMA_PRES =:ai_forma_pres
USING at_trans;
if at_trans.sqlcode <> 0 then RETURN -1
if isnull(li_formato) then li_formato = 0
End Choose
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
47. Buenas Prácticas de
Codificació n
Indentació n de Có digo
Condiciones if
Condiciones 1 sola línea
If condició n then return value
Condiciones Multilínea
If condició n then
//Sentencias
Else/Elseif
//Sentencias Else/Elseif
End If
Ciclos
While condició n/for valorInicial to valorFinal
//Sentencias del Ciclo
Loop/Next
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
48. Buenas Prácticas de
Codificació n
Indentació n de Có digo
Condiciones Case
CHOOSE CASE variable
CASE caso_1
//Sentencias Caso_1
CASE caso_n
//Sentencias Caso_n
Else
//Sentencias Else
END CHOOSE
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
49. Buenas Prácticas de
Codificació n
Indentació n de Có digo
Generalidades
Se vale separar grupos de có digo mediante líneas en blanco (no se las cobran), sin
embargo se recomienda usar comentarios.
La cantidad de có digo por línea es de acuerdo al espacio de trabajo de cada quien
sin embargo trate en lo posible de no tener que mover el scroll horizontal para ver la
línea completa.
En el caso de concatenar u operaciones que ocupen mas de una línea trate de
continuar el có digo donde inicia la asignació n o donde inician los argumentos.
LS_VALOR = CADENA1 + CADENA2 + CADENA3 + CADENA4 +&
CADENA5 + CADENA6 + CADENA7… + CADENAn
li_result = UOF_ACTUALIZAR_IMPUESTO(variable1, variable2, variable3,&
variable5, variable 6)
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
50. Buenas Prácticas de
Codificació n
Indentació n de Sentencias SQL
Sentencias SELECT
SELECT Columna1, Columna2, Columna3,… Columnan
INTO :variable1,:variable2,:variable3,… variablen
FROM Tabla1 Alias1,
Tabla2 Alias2,
Tablan Aliasn
WHERE Condicion1
AND Condicion2
AND Condicion3
AND Condicion4
Sentencias UPDATE
UPDATE Tabla1
SET Columna1 = :variable1,Columna 2 = :variable2,
Columna3 = :variable3,… Columnan = :variablen
WHERE Condicion1
AND Condicion2
AND Condicion3
AND Condicion4
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
51. Buenas Prácticas de
Codificació n
Indentació n de Sentencias SQL
Sentencias INSERT
INSERT INTO Tabla1 (Columna1, Columna2, Columna3,… Columnan
VALUES (:variable1,:variable2,:variable3,… variablen);
INSERT INTO Tabla1 (Columna1, Columna2, Columna3,… Columnan
SELECT Columna1, Columna2, Columna3,… Columnan
FROM Tabla1 Alias1,
Tabla2 Aliasn
WHERE Condicion1
AND Condicion2;
Sentencias DELETE
DELETE FROM Tabla1
WHERE Condicion1
AND Condicion2
AND Condicion3
AND Condicion4
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
52. Buenas Prácticas de
Codificació n
Indentació n de Sentencias SQL
Generalidades
La cantidad de columnas que contendráun select o un insert dependeráde su
pantalla, trate de que no tenga que mover el scroll para ver las columnas o las
variables
En el caso de las columnas de select o insert estas deben de coincidir en nú mero
por rengló n con las variables, por ejemplo.
BIEN M A L
SELECT CAMPO1, CAMP02, CAMPO3
INTO :VAR1, :VAR2, :VAR3
FROM TABLE
WHERE CONDICION.
SELECT CAMPO1, CAMPO2, CAMPO3,
CAMPO4
INTO :VAR1, :VAR2, :VAR3, :VAR4
FROM TABLE
WHERE CONDICION
Las tablas deberán de ser listadas, es decir un rengló n por cada tabla
que se utilice.
Usar alias para las tablas.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
53. Buenas Prácticas de
Codificació n
Á
mbito de Variables
Variables Locales
Se utilizan únicamente dentro del evento o mé todo donde son creadas.
Deben utilizarse para procesos que van a iniciar y terminar dentro del mismo
có digo.
Variables de Instancia
Cuando es necesario que ú nicamente los componentes, mé todos y eventos que
pertenecen al mismo objeto utilicen el valor de la variable.
Deben utilizarse como propiedades de objetos, o como variables que deben ser
accedidas desde la misma ventana para lectura y/o escritura.
Variables Globales
Cuando sea necesario que el valor sea utilizado en cualquier componente
de la aplicació n.
La única variable global permitida en el sistema es la instancia del objeto
u_dgifc_aplmanager (Aplican restricciones).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
54. Buenas Prácticas de
Codificació n
Paso de Parámetros entre Ventanas
Se debe utilizar para evitar el uso de variables globales, si se
requiere que dos ventanas se comuniquen entre si.
Se pueden enviar valores o bien variables
Se recibe en la ventana destino mediante el objeto Message
Contexto Uso
Doubleparm Valor numé rico desde entero hasta double
Stringparm Valor cadena
Powerobjectparm Objeto de PowerBuilder (Objeto, estructura, transacciones,
etc.)
Para enviar tipos de datos no incluidos en el objeto Message
debe de ser mediante una estructura.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
55. Buenas Prácticas de
Codificació n
Datastore Vs. Datawindow
Datastore Datawindow
Es no visual Visual
No contiene eventos Contiene eventos
No es autoinstanciable Es autoinstanciable
Ninguno es mejor simplemente tienen diferentes usos.
Objeto No Visual = Uso de datastores.
Es mejor utilizar un datastore que hacer un cursor (en su defecto store
procedure)
Si en la funció n o ventana no se requieren utilizar eventos de un listado
utilizar datastores
Es mejor utilizar un datastore que ocultar un datawindow.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
56. Buenas Prácticas de
Codificació n
Binary Large Objects (BLOB’s)
PowerBuilder Se utiliza para guardar una ilimitada cantidad
de datos (Imá
genes, Texto muy Largo, Texto de Procesadores
de Texto con Formato, etc..)
BLOB no es sinó nimo de imá
genes escaneadas, ni de RTF’s
Se usa en intercambio de informació n en aplicaciones cliente/
servidor.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
57. Buenas Prácticas de
Codificació n
Binary Large Objects (BLOB’s)
Utilizando Blob’s con Datawindows/Datastores
GetFullState/SetFullState.
NO ES un Rowscopy/Rowsmove
Se mantienen las propiedades del DW, banderas de actualizació n, etc..
No se mantiene la transacció n pero al asignarse de nuevo funciona como tal.
Envío un DW/ Recibo DS y Viceversa.
Se convierte el DW a Blob y se envía a un objeto No Visual
El DS regresa a la ventana y se convierte en DW
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
58. Buenas Prácticas de
Codificació n
Uso de Funciones
Tipo de Funció n Descripció n
Funciones de Son las funciones que se crean como objetos de PowerBuilder,
PowerBuilder son funciones que pueden ser llamadas desde cualquier otro
objeto de la aplicació n.
Funciones de Son funciones que se crean en una ventana para agregar
Ventana funcionalidad, solo son vá
lidas dentro de la ventana que las
contiene.
Funciones de Son funciones creadas por el usuario en los objetos de
Objetos PowerBuilder (ya sea visuales o no visuales). Si bien estas
funciones solo son vá lidas dentro del objeto donde fueron
creadas basta que se instancie el objeto para poderlas utilizar.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
59. Buenas Prácticas de
Codificació n
Uso de Funciones
Uso de Funciones
Tipo de Acceso Descripció n
Publica (Public) Funció n que puede ser vista y accedida desde cualquier parte de
la aplicació n, simplemente requiere que el objeto se encuentre
instanciado.
Privada (Private) Funció n que puede ser vista y accedida únicamente desde el
objeto/ventana donde fue creada.
Protegida (Protected) Funció n que puede ser vista y accedida desde cualquier parte de
la aplicació n, sin embargo esta no puede ser modificada, ni
heredada.
Sobrecarga de funciones
Funciones que se llaman igual pero reciben diferentes argumentos y hacen
cosas diferentes.
Permiten al programador una referencia mas rá pida.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
60. Buenas Prácticas de
Codificació n
Uso de Funciones
Argumentos en Funciones
Casi cualquier cosa se puede mandar por argumento a una funció n sin
embargo.
Evite pasar ventanas como argumento.
Evite pasar objetos visuales a un objeto no visual.
Los objetos de powerbuilder (excepto estructuras) mejor por referencia.
Los tipos de acceso de los argumentos en funciones son.
Tipo de Acceso Descripció n
Valor (Value) La variable entra a la funció n y aunque su valor sea
alterado dentro de ella al salir mantiene el valor con el
que fue enviado.
Referencia (Reference) La variable entra a la funció n y si su valor es alterado
dentro de ella al salir muestra el valor que se cambio
dentro.
Readonly (Solo lectura) La variable entra y sale de la funció n pero su valor no
puede ser alterado (como una constante)
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
61. Buenas Prácticas de
Codificació n
Esquema de Objetos
Tipo de Objetos Descripció n
Visual Son objetos que encapsulan la funcionalidad de un o un grupo
de objetos visuales.
No Visual Son en realidad para agrupar mé todos de un funcionalidad
especifica.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
62. Buenas Prácticas de
Codificació n
Esquema de Objetos
Usuario: Ventana: Objeto Visual Forma: Objeto No Visual:
• Teclea los datos en la • Muestra la forma • Valida que los datos • Procesa la información
forma de captura • Espera a que el proporcionados por el enviada desde la
• Pulsa el botón usuario dispare algún usuario sean los ventana.
procesar evento esperados • Sus funciones
• Espera los resultados • Envía el • Instancia e Inicializa el publicas son una caja
procesamiento al Objeto No Visual que negra.
objeto visual forma procesará la
información.
• Ejecuta el método del
Objeto No Visual que
procesará la
información Base de Datos:
• Mediante un trigger
guarda una bitácora
del procesamiento de
la información
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
63. Buenas Prácticas de
Codificació n
Esquema de Objetos
Ventajas Desventajas
Separa la funcionalidad de la Forzosamente hay que pensar
parte visual en Sinergia.
Divide y Vencerás Si se exagera se puede llegar
Encapsulamiento al extremo de separar
Fá de compartir funcionalidad funcionalidad ya existente en
cil
objetos de PB.
(es una caja negra)
Reutilizació n de funcionalidad
en otras ventanas.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
64. Buenas Prácticas de
Codificació n
Esquema de Objetos
Generalidades
Todas las variables de instancia (se conocen como propiedades del
objeto) deben de ser declaradas como privadas.
Todas las funciones son de acceso privado excepto aquellas que
disparan la funcionalidad principal del objeto.
El objeto debe ser capaz de tomar todas las decisiones para saber que
hacer en cada caso.
Las funciones deben ser lo mas ató micas posibles, es decir servir a un
solo propó sito.
La funció n principal (o principales) deberáde, en lo posible, evitar el uso
de có digo extra, esta funció n debe dedicarse a llamar funciones privadas
del objeto.
Un objeto no visual no debe hacer referencia a ningú objeto visual (no
n
usar DW como variables, no mandar llamar la w_dgi_espere, no
desplegar MessageBox, no hacer referencia a ventanas o menú Ojo: Nis).
siquiera por argumento.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
65. Buenas Prácticas de
Codificació n
Esquema de Objetos (Ejemplo SEAF)
uo_remesa
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
66. Buenas Prácticas de
Codificació n
Esquema de Objetos (Ejemplo Cajas)
uo_cajas
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
67. Buenas Prácticas de
Codificació n
Esquema de Objetos (Ejemplo Inversió n)
uo_mvto_fondo
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
68. Buenas Prácticas de
Codificació n
Triggers, Procedures y Functions (BD)
Tipo de Acceso Descripció n
Triggers Son los equivalentes de los eventos pero en base de datos, el
usuario puede programar cuando quiere que se disparen ya que
se pueden ejecutar en cualquiera de las tres operaciones básicas
sobre una tabla, INSERT, UPDATE, DELETE.
Procedures Son grupos de có digo que ejecutan una serie de instrucciones sin
regresar ningú valor (si acaso pueden regresar en la variable de
n
transacció n de PowerBuilder si se ejecuto o no)
Functions Son grupos de có digo que ejecutan una serie de instrucciones
pero estos si pueden regresar un resultado.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
69. Buenas Prácticas de
Codificació n
Triggers, Procedures y Functions (BD)
Cuando utilizar Procedimientos o Funciones
NOTA INICIAL: Primero hay que buscar que cualquier procedimiento de
negocio quede en la programació n no en la BD.
Procesos de llenado de histó ricos.
Traspaso de informació n masiva entre base de datos.
Cálculos complejos y lentos que no puedan ser parametrizados.
Cálculos complejos y lentos que solo se ocupen para reportes y no para la
aplicació n.
Procesos de Base de Datos (Creació n de Tablas Diná micas, Creació n de
Sinó nimos, Creació n de Usuarios, etc.).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
70. Buenas Prácticas de
Codificació n
Triggers, Procedures y Functions (BD)
Cuando utilizar Triggers
Procesos simples de Bitácora (Logs)
Manejar el agrupamiento de status sin el involucramiento del usuario.
Disparar procesos de tablas PIVOTE.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
71. Contenido del Taller (Día 3)
Librerías y Estándares
Ruta de Trabajo
Nomenclatura
Librerías de Objetos Estándar
Objetos Está ndar que agilizan el Desarrollo
Recopilació n de Trucos y Tips
Tips SQL
Tips PB
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
72. Librerías y Estándares
SOPORTE
Ruta de Trabajo ADMON PROY
DOCUMENTAL
REUNIONES
PLAN DE TRABAJO
ANALISIS
DESCRIPCIÓN
TÉ CNICA
DISEÑ O DIAGRAMAS
BD
SIELC
PB804-10575
LIB
PB105-6627
IMÁGENES
AUXI
COMPONENTES
EXE
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
73. Librerías y Estándares
Ruta de Trabajo
Carpeta Uso
PROYECTO Esta carpeta deberáde nombrarse con las siglas que se le hayan asignado al
proyecto, como máximo deberáde ser hasta 6 caracteres que identifiquen el
proyecto.
ADMON PROY Esta carpeta tendrátoda la informació n referente a la administració n del proyecto
SOPORTE Toda aquella documentació n que de soporte al proyecto como por ejemplo ley
DOCUMENTAL del trabajo, tabuladores, por citar algunos.
REUNIONES Contendrádocumentos como minutas, orden del día, listas de asistencia y todas
aquellos documentos que soporten las reuniones que sean llevadas a cabo para
el proyecto, para el nombrado de estos documentos ver documento (nombre
documento).
PLAN DE TRABAJO Todos y cada uno de los planes de trabajo elaborados para el Proyecto (ver lo del
nombrado de los planes).
ANALISIS Contendrátoda la documentació n referente al Aná
lisis del proyecto, de acuerdo a
la metodología vigente.
DISEÑ O Contendrátoda la documentació n referente al Diseñ o del proyecto de acuerdo a
la metodología vigente.
DESCRIPCIÓ TÉ CNICA
N Deberá ser los documentos que soporten la Documentació n Té cnica del
n
proyecto
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
74. Librerías y Estándares
Ruta de Trabajo
Carpeta Uso
DIAGRAMAS Contiene todos los diagramas que durante el diseñ o del proyecto se realicen y
soporten al mismo.
BD Contiene el modelo de Base de Datos del proyecto y todos aquellos documentos
que soporten al mismo y que tengan que ver con Base de Datos.
LIB Esta carpeta contendrátodas aquellas librerías que soporten al proyecto , dentro
de ella se deberá de crear sub carpetas por cada versió n y parche del lenguaje
n
de programació n que se esté utilizando en ese momento
AUXI Esta carpeta contendrátodo lo referente a los bmps, jpgs y demá auxiliares que
s
sean necesarios para el buen funcionamiento de la aplicació n.
IMÁ
GENES En esta carpeta se guardaran todas aquellas imá
genes que sean necesarias para
el buen funcionamiento de la aplicació n.
COMPONENTES En esta carpeta se guardaran todas aquellas utilerías que sean necesarias para
el buen funcionamiento del sistema, como por ejemplo .ocx, TextControl, entre
otros
EXE Esta carpeta contendrálas librerías que conforman el ejecutable de la aplicació n
y que representa un respaldo del programador, aquí se deberáde tener la ú ltima
versió n del proyecto que se encuentre en el servidor de aplicaciones.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
75. Librerías y Estándares
Nomenclatura Librerías
Librería Principal
Siglas del Proyecto en Mayúsculas.
Máximo 6 caracteres
Ejemplo: SIECL.pbl
Librerías Subsecuentes
Siglas del Proyecto (Solo inicial en Mayúsculas)
Siglas del Modulo (Má ximo 4 caracteres)
Consecutivo de Librería de 2 dígitos
Ejemplo: Sieclemis01.pbl
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
76. Librerías y Estándares
Nomenclatura Librerías
Librerías Especiales
Son librerías para un uso especifico dentro de la aplicació n y son las
siguientes.
Librería Uso
Acceso.pbl Esta librería se creara exclusivamente para contener objetos que hagan
referencia a los objetos para configurar el acceso a la aplicació n. Ejemplo:
Catalogo de Usuarios, Catalogo de Configuració n de Roles de Acceso, etc.
Catalogos.pbl Esta librería se crearápara contener exclusivamente los objetos que hagan
referencia a los catálogos principales de la aplicació n.
Reportes.pbl Esta librería se creara para contener exclusivamente los objetos que hagan
referencia al modulo de reportes estadísticos de la aplicació n.
Consultas.pbl Esta librería se creara para contener exclusivamente los objetos que hagan
referencia a las consultas especificas y estadísticas de la aplicació n.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
77. Librerías y Estándares
Nomenclatura Librerías
Acceso
Catálogos
SIELC Reportes
Consultas
Sielcemis0
1
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
78. Librerías y Estándares
Nomenclatura Objetos
Sintaxis
PrefijoObjeto + SiglasLibreria + ConsecLibreria + Prefijo Uso + Nombre Objeto
Prefijo Objeto
Tipo de Objeto Prefijo (Máx. 3 Tipo de Objeto Prefijo (Máx. 3
dígitos) dígitos)
Windows w_ DataWindow External de_
Menús m_ DataWindow Multiselección dm_
Querys q_ Project p_
Data windows d_ Pipeline pp_
DataWindowContenedor de dc_ Funciones f_
Externos
Structure str_
Objetos No Visuales uo_
Objetos Visuales vuo_
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
79. Librerías y Estándares
Nomenclatura Objetos
Siglas Librería y Consec Librería
Se refiere al nombre de la librería en donde se esta guardando el objeto.
Utilizar el nombre de la librería sin las iniciales del proyecto.
Ejemplo: Sielcemis01 emis01
Prefijo Uso
Uso del Objeto Prefijo (Max. 2
dígitos)
Reporte r
Catálogo c
Consulta k
Proceso p
Listado l
Contenedor de Listado cl
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
80. Librerías y Estándares
Nomenclatura Objetos
Nombre Objeto
Descripció n breve del objeto que permita identificar de que se trata o que
hace el objeto.
Ejemplos
Nombre del Objeto Descripción
w_cat01c_tipo_licencia Es un objeto ‘Window’ que se encuentra en la librería ‘Catalogos.pbl’ y que
se refiere al ‘Tipo de Licencia’
d_emis01l_estado Es un objeto de tipo ‘Datawindow’ que se encuentra en la librería
‘Sielcemis01.pbl’ que se utiliza como un listado de estados (para dropdown).
w_emis01k_recibos_pagados Es un objeto de tipo ‘Window’ que se encuentra en la librería
‘Sielcemis01.pbl’ y que se utiliza para una consulta de recibos pagados.
d_emis01r_prevista_volante Es un objeto de tipo ‘Datawindow’ que se encuentra en la librería
‘Sielcemis01.pbl’ y que se utiliza para imprimir un volante.
de_emis01cl_estado Es un objeto de tipo ‘Datawindow’ sin query que se encuentra en la librería
‘Sielcemis01.pbl’ que se utiliza para contener un Datawindow de listado.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
81. Librerías y Estándares
Librerías de Objetos Estándar
Bá
sicas
Nombre del Objeto Descripción
estandar.pbl Template de la aplicación, esta librería debe renombrarse con las siglas de la
aplicación, esta librería tiene ya los objetos estándar para control de acceso.
dgiapi.pbd Contiene las funciones api de windows importadas como objetos de
PowerBuilder, muy ú sobre todo en el control de actualizaciones.
til
dgibd.pbd Contiene las rutinas para comparar esquemas de base de datos
dgifund.pbd Contiene las clases fundamentales de las cuales está heredadas las demá
n s
ventanas del propio estándar.
dginvis.pbd Contiene funciones definidas y objetos no visuales con funcionalidad comú en
n
las aplicaciones que puede ser reutilizada
dgitxt.pbd Contiene toda la funcionalidad para implementar la creació n de documentos
dinámicos utilizando DW como base.
dgiutil.pbd Contiene algunos objetos visuales y no visuales que agregan funcionalidad y
facilitan la programació n.
dgiutilbd.pbd Contiene funcionalidad para algunos procesos de base de datos que se requieren
dentro de las aplicaciones.
dgivis.pbd Contiene objetos visuales de las cuales se puede heredar los procesos mas
comunes en una aplicació n.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
82. Librerías y Estándares
Librerías de Objetos Estándar
Envío de Correos
Nombre del Objeto Descripción
dgimail.pbd Contiene todos los objetos para implementar el proceso de envío de correos a
travé s de cualquier servidor smtp.
Demonios
Nombre del Objeto Descripción
dgidemon.pbd Contiene todos los objetos para implementar aplicaciones tipo demonio que
corren en memoria esperando una hora o un evento para dispararse.
Interpretació n de Mensajes del Sistema
Nombre del Objeto Descripción
dgiserv.pbd Contiene todos los objetos para implementar una ayuda para el usuario basada
en el sistema de servicios.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
83. Librerías y Estándares
Objetos Estándar que agilizan el Desarrollo
Catálogos Catálogos
Objeto(s): w_util_catalogo_listado
Librería: dgiutil.pbl
Objeto(s): Para que se utiliza :
w_dgi_catalogo_estatico Catálogos donde se requiere que el
Librería: dgivis.pbl usuario capture en freeform (por la
Para que se utiliza: cantidad de datos) pero se requiere
Catálogos de tipo tabular del tipo una referencia de listado.
clave/descripció n.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
84. Librerías y Estándares
Objetos Estándar que agilizan el Desarrollo
Catálogos Catálogos
Objeto(s): w_dgi_maestro_detalle Objeto(s): w_dgi_catalogo_sin_dw
Librería: dgivis.pbl Librería: dgivis.pbl
Para que se utiliza : Para que se utiliza :
Catálogos cuya informació n requiera Catálogos complejos, por ejemplo
ser capturada como Maestro/Detalle. catá
logos con filtros en cascada (no
maestro detalle)
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
85. Librerías y Estándares
Objetos Estándar que agilizan el Desarrollo
Reportes Argumentos de Reportes
Objeto(s): uo_doc_visual,
uo_param, w_rep_reporte. Objeto(s): w_arguments
Librería: dgiutil.pbd Librería: dgiutil.pbd
Para que se utiliza : Para que se utiliza :
Cualquier llamado a reportes o Ventana de Argumentos para
consultas que se haga en la reportes estadísticos
aplicació n.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
86. Librerías y Estándares
Objetos Estándar que agilizan el Desarrollo
Otros Objetos
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
87. Contenido del Taller (Día 3)
Librerías y Estándares
Ruta de Trabajo
Nomenclatura
Librerías de Objetos Estándar
Objetos Está ndar que agilizan el Desarrollo
Recopilació n de Trucos y Tips
Uso de la Ayuda de PB
Tips PB
Tips SQL
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
88. Tip’s PowerBuilder
Regresar el valor anterior a un campo cuando no pasa
una validació n en el Itemchanged.
Crear un evento que reciba de argumento la fila, la columna y el valor que se
le quiere poner a la columna, este evento lo que hace es hacer setitem con el
valor a la fila y a la columna que se le envían como parámetro.
En el evento itemchanged codificar que una ves que el dato no pase la
validació n que se espera, mande llamar en forma post al evento creado en el
paso anterior y hacer return.
En el Itemchanged
la_rfc_ant = this.getitemstring(row,dwo.column)
If Len(Trim(Data)) < 10 and this.getitemstring(row,’tipo_contrib’) = ‘F’ Then
MessageBox(“Aviso”,”El rfc para una persona física debe de contener 10
caracteres”)
This.post event ue_corrige_dato(row,dwo.column,la_rfc_ant)
Return 1
End If
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
89. Tip’s PowerBuilder
Regresar el valor anterior a un campo cuando no pasa
una validació n en el Itemchanged.
En el ue_corrige_dato
this.SetItem(ai_ren, as_columna, aa_dato)
this.SetColumn(as_columna)
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
90. Tip’s PowerBuilder
Páginas de Tip’s de PowerBuilder
http://www.rgagnon.com/howto.html
http://www.softtreetech.com/hightech/tips.htm
http://www.pbdr.com/pbtips/index.htm
http://www.dvl-software.com/pbtips/
http://power-builder.blogspot.com/
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
91. Tip’s SQL y Oracle
Un poco de Teoría
Existen dos tipos de acceso de la Base de Datos a una tabla:
SIN USAR INDICES Table Access Full (FULL SCAN).
USANDO INDICES Table Access by ROWID (ROWID ACCESS).
De la misma forma, existen 2 tipos de barrido a un índice:
INDICE UNICO Unique (único).
INDICE NO UNICO Range (por rangos).
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
92. Tip’s SQL y Oracle
Orden de tablas en el FROM
El orden de las tablas en el FROM debe ser de arriba hacia debajo de mayor a
menor nú mero de registros, la primer tabla siempre es el PIVOTE o la que inicia
la ejecució n del query.
Solo las columnas Necesarias
En cualquier Query solo deben extraerse las columnas a utilizar, especialmente
en un subquery, ya que a mayor número de columnas mayor memoria se
consume y se pueden omitir barridos a tablas que no era necesarias.
Orden del JOIN y columnas (Teoría no expresada en libro Oracle)
Se debe armar la serie de Joins en el mismo orden en que está las tablas en el
n
FROM, empezando en el WHERE de derecha a izquierda, respetando el orden
de los campos dentro de los índices y tratando de emplear el mayor número de
columnas con UNIQUE INDEXES. Al final se agregan las condiciones con
constantes.
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
93. Tip’s SQL y Oracle
Subquery
Solo hay que emplearlo cuando sea necesario, muchas veces con un JOIN o un
EXISTS se puede extraer la informació n necesaria.
Decode vs. Union
Se puede omitir el uso de múltiples Uniones en algunos queries con el uso de
DECODE, condicionando los valores de las columnas segú los valores de las
n
columnas o expresiones.
IN vs. EXISTS vs. JOIN
El IN como vimos anteriormente, realiza varias búsquedas para extraer la
informació n, es mas rá
pido emplear un EXIST y aú mas un JOIN.
n
DIRECCIÓ GENERAL DE INFORMÁ
N TICA
94. Tip’s SQL y Oracle
Páginas de Tip’s de SQL
http://www.devjoker.com/
Páginas de Errores de Oracle
http://www.ora-code.com/
http://www.orasite.com/errores/
DIRECCIÓ GENERAL DE INFORMÁ
N TICA