SlideShare una empresa de Scribd logo
1 de 94
Esquema y
                                  Estándares de
                                  Trabajo


                                         29 de Septiembre de 2011
DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
Esquema de
                                  trabajo



                                        29 de Septiembre de 2011
DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
Contenido
  Relació n Interdepartamental
  Esquema de Trabajo Interno
       Source Control
       Plan de Trabajo
       Process Dashboard




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
Contenido
  Relació n Interdepartamental
  Esquema de Trabajo Interno
       Source Control
       Process Dashboard




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
Source Control




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
Process Dashboard

     Control de Tiempo            Navegación                         Comentarios




  Menú           Estimación                    Selección de Tareas          Terminar




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
Estandarizació n y
                                  Optimizació n del
                                  Desarrollo Desktop



DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
¿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
¿Que buscamos?
  Ejemplos




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
¿Como reaccionamos?




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Estándares Básicos
  Reportes
                                  Encabezado




                                    Cuerpo




 Pie de Página




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Buenas Prácticas de
 Codificació n
  Esquema de Objetos (Ejemplo SEAF)



                                       uo_remesa




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
Buenas Prácticas de
 Codificació n
  Esquema de Objetos (Ejemplo Cajas)



                                        uo_cajas




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
Buenas Prácticas de
 Codificació n
  Esquema de Objetos (Ejemplo Inversió n)



                                             uo_mvto_fondo




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
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
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
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
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
Librerías y Estándares
  Nomenclatura Librerías
                                    Acceso




                                   Catálogos




                           SIELC   Reportes




                                   Consultas




                                   Sielcemis0
                                        1




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
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
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
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
Librerías y Estándares
  Objetos Estándar que agilizan el Desarrollo
                                  Otros Objetos




DIRECCIÓ GENERAL DE INFORMÁ
        N                  TICA
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
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
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
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
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
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
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
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

Más contenido relacionado

Destacado (16)

Primera Reunión C.G.P.A. 2015
Primera Reunión C.G.P.A. 2015Primera Reunión C.G.P.A. 2015
Primera Reunión C.G.P.A. 2015
 
Cuenta publica 2013 - Colegio Santa Rosa
Cuenta publica 2013 - Colegio Santa RosaCuenta publica 2013 - Colegio Santa Rosa
Cuenta publica 2013 - Colegio Santa Rosa
 
Alternativas económicas en el campo español
Alternativas económicas en el campo españolAlternativas económicas en el campo español
Alternativas económicas en el campo español
 
DESARROLLO ECONOMICO
DESARROLLO ECONOMICODESARROLLO ECONOMICO
DESARROLLO ECONOMICO
 
Historia de la moda
Historia de la modaHistoria de la moda
Historia de la moda
 
Infor tp3
Infor tp3Infor tp3
Infor tp3
 
Gaela Gehring Flores: What to consider when initiating an investment arbitration
Gaela Gehring Flores: What to consider when initiating an investment arbitrationGaela Gehring Flores: What to consider when initiating an investment arbitration
Gaela Gehring Flores: What to consider when initiating an investment arbitration
 
Herfried Wöss: Investment Protection and the Mexican Energy Reform
Herfried Wöss: Investment Protection and the Mexican Energy ReformHerfried Wöss: Investment Protection and the Mexican Energy Reform
Herfried Wöss: Investment Protection and the Mexican Energy Reform
 
Me
MeMe
Me
 
James New Resume 2016-3
James New Resume 2016-3James New Resume 2016-3
James New Resume 2016-3
 
Your space (sebastian meneses)
Your space (sebastian meneses)Your space (sebastian meneses)
Your space (sebastian meneses)
 
Conductores+electricos
Conductores+electricosConductores+electricos
Conductores+electricos
 
DESARROLLO HUMANO
DESARROLLO HUMANODESARROLLO HUMANO
DESARROLLO HUMANO
 
11 a zz03-el_resumen_-material-__25034__
11 a zz03-el_resumen_-material-__25034__11 a zz03-el_resumen_-material-__25034__
11 a zz03-el_resumen_-material-__25034__
 
16 moncada la universidad un acercamiento historico filosofico
16 moncada la universidad un acercamiento historico filosofico16 moncada la universidad un acercamiento historico filosofico
16 moncada la universidad un acercamiento historico filosofico
 
Resumen del arte griego
Resumen del arte griegoResumen del arte griego
Resumen del arte griego
 

Similar a DESARROLLO POLITICO

Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareEugenio Del Pozo Dipre
 
Ciclo de vida de sistemas
Ciclo de vida de sistemasCiclo de vida de sistemas
Ciclo de vida de sistemasMirna Lozano
 
Iii investigacion preliminar blog
Iii investigacion preliminar blogIii investigacion preliminar blog
Iii investigacion preliminar blogRosemary Samaniego
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.pptCristianFlasher1
 
Contenido iii parcial analisis y diseño de sistemas
Contenido iii parcial analisis y diseño de sistemasContenido iii parcial analisis y diseño de sistemas
Contenido iii parcial analisis y diseño de sistemasanlucy88
 
Opciones en la adquisición de sistemas de información
Opciones en la adquisición de sistemas de información Opciones en la adquisición de sistemas de información
Opciones en la adquisición de sistemas de información VALENTINAESPINOSAUPE
 
Taller en clases
Taller en clasesTaller en clases
Taller en clases3045433345
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitosDaniel Ortega
 
Análisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasAnálisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasprofmyriamsanuy
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de softwarevivymoreno
 
Sistema de informacion
Sistema de informacionSistema de informacion
Sistema de informacionJean Palacios
 
TEMA 3_REQUERIMIENTOS_1.pptx
TEMA 3_REQUERIMIENTOS_1.pptxTEMA 3_REQUERIMIENTOS_1.pptx
TEMA 3_REQUERIMIENTOS_1.pptxjesscoro
 
Memorias webCast Automatizando itil
Memorias webCast Automatizando itilMemorias webCast Automatizando itil
Memorias webCast Automatizando itilAranda Software
 
Team de trabajo con estructura dc
Team de trabajo con estructura dcTeam de trabajo con estructura dc
Team de trabajo con estructura dcPdMontoyaC
 

Similar a DESARROLLO POLITICO (20)

Auditoria sistemas estudiar
Auditoria sistemas estudiarAuditoria sistemas estudiar
Auditoria sistemas estudiar
 
Tipos de requerimeintos
Tipos de requerimeintosTipos de requerimeintos
Tipos de requerimeintos
 
Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de software
 
Ciclo de vida de sistemas
Ciclo de vida de sistemasCiclo de vida de sistemas
Ciclo de vida de sistemas
 
Que es un workflow
Que es un workflowQue es un workflow
Que es un workflow
 
Iii investigacion preliminar blog
Iii investigacion preliminar blogIii investigacion preliminar blog
Iii investigacion preliminar blog
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.ppt
 
Contenido iii parcial analisis y diseño de sistemas
Contenido iii parcial analisis y diseño de sistemasContenido iii parcial analisis y diseño de sistemas
Contenido iii parcial analisis y diseño de sistemas
 
Informática: Análisis y Diseño De Sistemas
Informática: Análisis y Diseño De SistemasInformática: Análisis y Diseño De Sistemas
Informática: Análisis y Diseño De Sistemas
 
Opciones en la adquisición de sistemas de información
Opciones en la adquisición de sistemas de información Opciones en la adquisición de sistemas de información
Opciones en la adquisición de sistemas de información
 
Reingenieria inversa
Reingenieria inversaReingenieria inversa
Reingenieria inversa
 
Taller en clases
Taller en clasesTaller en clases
Taller en clases
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitos
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Análisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasAnálisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemas
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Sistema de informacion
Sistema de informacionSistema de informacion
Sistema de informacion
 
TEMA 3_REQUERIMIENTOS_1.pptx
TEMA 3_REQUERIMIENTOS_1.pptxTEMA 3_REQUERIMIENTOS_1.pptx
TEMA 3_REQUERIMIENTOS_1.pptx
 
Memorias webCast Automatizando itil
Memorias webCast Automatizando itilMemorias webCast Automatizando itil
Memorias webCast Automatizando itil
 
Team de trabajo con estructura dc
Team de trabajo con estructura dcTeam de trabajo con estructura dc
Team de trabajo con estructura dc
 

Más de SEICOPLADE

ESTADISTICA ESTRATEGICA
ESTADISTICA ESTRATEGICAESTADISTICA ESTRATEGICA
ESTADISTICA ESTRATEGICASEICOPLADE
 
ADMINISTRACION Y FINANZAS
ADMINISTRACION Y FINANZASADMINISTRACION Y FINANZAS
ADMINISTRACION Y FINANZASSEICOPLADE
 
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIA
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIASEGURIDAD PUBLICA Y PROCURACION DE JUSTICIA
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIASEICOPLADE
 
INFRAESTRUCTURA Y DESARROLLO URBANO
INFRAESTRUCTURA Y DESARROLLO URBANOINFRAESTRUCTURA Y DESARROLLO URBANO
INFRAESTRUCTURA Y DESARROLLO URBANOSEICOPLADE
 

Más de SEICOPLADE (6)

ESTADISTICA ESTRATEGICA
ESTADISTICA ESTRATEGICAESTADISTICA ESTRATEGICA
ESTADISTICA ESTRATEGICA
 
ADMINISTRACION Y FINANZAS
ADMINISTRACION Y FINANZASADMINISTRACION Y FINANZAS
ADMINISTRACION Y FINANZAS
 
EDUCACION
EDUCACIONEDUCACION
EDUCACION
 
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIA
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIASEGURIDAD PUBLICA Y PROCURACION DE JUSTICIA
SEGURIDAD PUBLICA Y PROCURACION DE JUSTICIA
 
SALUD
SALUDSALUD
SALUD
 
INFRAESTRUCTURA Y DESARROLLO URBANO
INFRAESTRUCTURA Y DESARROLLO URBANOINFRAESTRUCTURA Y DESARROLLO URBANO
INFRAESTRUCTURA Y DESARROLLO URBANO
 

DESARROLLO POLITICO

  • 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
  • 9. Source Control 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
  • 19. ¿Que buscamos?  Ejemplos 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