You are on page 1of 124

Creacin de Aplicaciones Distribuidas con

PowerBuilder y EAServer
Versin 2014

Primera Parte - Arquitectura Distribuida





Autor:
Ing. Camilo Ernesto Surez Rebaza
Docente UNS
Dpto. Acad. Ing. Civil y Sistemas




Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
2
Contenido
I. Creacin y Programacin de Base de Datos ........................................................... 3
1.1. Descripcin del Caso de Estudio ..................................................................... 3
1.2. Creacin de la Base de Datos .......................................................................... 4
1.3. Creacin del Servicio .................................................................................... 14
1.4. Creacin de Tablas, Relaciones e ndices. ..................................................... 19
1.5. Creacin de Funciones y Procedimientos Almacenados. ............................... 31
1.6. Creacin de Triggers. .................................................................................... 37
II. Framework GUI - Cliente ................................................................................. 45
2.1. Creacin del Workspace ............................................................................... 45
2.2. Fuentes de datos y DataWindow para ingreso de datos. ................................. 49
2.3. Mantenimiento con Procedimientos Almacenados ........................................ 57
2.4. Ventanas para Ingreso de Datos. ................................................................... 59
2.5. Ventana MDI y Men principal..................................................................... 62
2.6. Gestin de Reportes. ..................................................................................... 63
III. Arquitectura Distribuida y EAServer ................................................................ 64
3.1. Desarrollo de Aplicaciones n-Tier con PowerBuilder .................................... 64
3.2. Creacin de Servidores EAServer ................................................................. 64
3.3. Creacin de Packages ................................................................................... 75
3.4. Creacin de Cach de Conexiones ................................................................ 79
3.5. Perfiles de conexin a EAServer en PowerBuilder IDE ................................. 85
3.6. Definir Componente...................................................................................... 88
IV. Ciclo de vida y Creacin de Componentes ...................................................... 101
4.1. Modelo del Ciclo de Vida de los Componentes EAServer. .......................... 101
4.2. Creacin de los Objetos No Visuales de la Aplicacin. ............................... 102
4.3. Configuracin de Componentes EAServer. ................................................. 108
4.4. Creacin de Objetos Proxy. ......................................................................... 110
4.5. FrameWork GUI con Componentes ........................................................... 117


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
3
I. Creacin y Programacin de Base de Datos
1.1. Descripcin del Caso de Estudio
El caso de estudio del presente curso trata de una Empresa dedicada a la
comercializacin de computadoras compatibles y sus repuestos.




El Caso de Estudio tiene las siguientes restricciones:
Slo se venden cajas blancas, es decir no se vender computadoras de marca.
Los Servicios de Mantenimiento y reparaciones no estn contemplados.
La gestin de personal (capacitaciones y planilla) escapa al modelo
Los pagos son al contado.
La aplicacin slo emitir Boletas o facturas como comprobantes de pago.
Vendedor
Coti zar Productos
Admi ni strador
Regi strar Compra
Regi strar Vendedores
Emi ti r Gui a de Remi si n
Caj ero
Emi ti r Comprobante
Al macenero
Confi rmar Coti zaci n
Regi strar Transporti sta
Pedi r Productos
Regi strar Producto
Regi strar Proveedor
Reportar Pendi entes
Reportar Ingresos
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
4
1.2. Creacin de la Base de Datos
Como Motor de Base de Datos utilizaremos SQL Anywhere Studio 9.0 Developer
Edition.
EL modelo Entidad Relacin es el siguiente:


Antes de crear las tablas y dems objetos, debemos crear la Base de Datos, esta
tarea la realizamos con Sybase Central (consola de administracin):
Cl i ente
ID_Cl i ente
Apel l i dos
Nombres
Di recci on
e_mai l
tel efono
bi gi nt
varchar(40)
varchar(50)
varchar(100)
varchar(30)
varchar(15)
<pk>
Proveedor
RUC
Razon
Di recci on
Tel efono
char(12)
varchar(100)
varchar(100)
varchar(15)
<pk>
Coti zaci on
ID_Coti zaci on
ID_Cl i ente
ID_Vendedor
Fecha
F_Venci mi ento
bi gi nt
bi gi nt
smal l i nt
date
date
<pk>
<fk1>
<fk2>
Compras
ID_Compra
ID_Producto
RUC
NroGui a
Canti dad
Preci oUni t
bi gi nt
bi gi nt
char(12)
varchar(20)
smal l i nt
money
<pk>
<fk2>
<fk1>
Coti zaci on_Detal l e
ID_Coti zaci on
ID_Producto
Canti dad
Preci o
bi gi nt
bi gi nt
smal l i nt
money
<pk,fk1>
<pk,fk2>
Transporti sta
ID_Transporti sta
RUC
Razon
Tel efono
smal l i nt
varchar(12)
varchar(80)
varchar(15)
<pk>
Vendedor
ID_Vendedor
Apel l i dos
Nombres
Di recci on
F_Ingreso
Estado
smal l i nt
varchar(40)
varchar(50)
varchar(100)
date
smal l i nt
<pk>
Bol eta_Detal l e
ID_Bol eta
ID_Producto
Canti dad
Preci o
SubTotal
bi gi nt
bi gi nt
smal l i nt
money
money
<pk,fk1>
<pk,fk2>
Gui aSal i da
ID_Gui aSal i da
ID_Transporti sta
ID_Bol eta
ID_Factura
bi gi nt
smal l i nt
bi gi nt
bi gi nt
<pk>
<fk1>
<fk2>
<fk3>
Bol eta
ID_Bol eta
ID_Cl i ente
Fecha
Total
Estado
bi gi nt
bi gi nt
date
money
smal l i nt
<pk>
<fk>
Producto
ID_Producto
ID_Categori a
Descri pci on
StockActual
StockMi ni mo
Preci oActual
Comentari os
bi gi nt
smal l i nt
varchar(100)
i nteger
i nteger
money
varchar(500)
<pk>
<fk> Categori a
ID_Categori a
Descri pci on
smal l i nt
varchar(100)
<pk>
Factura
ID_Factura
ID_Cl i ente
Fecha
Total
Estado
bi gi nt
bi gi nt
date
money
smal l i nt
<pk>
<fk>
Factura_Detal l e
ID_Factura
ID_Producto
Canti dad
Preci o
SubTotal
bi gi nt
bi gi nt
smal l i nt
money
money
<pk,fk1>
<pk,fk2>
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
5

En la interface de Sybase Central hacemos <Doble Clic> sobre

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
6
En el men <Tools> seleccionamos <Create Database>:


Ejecutamos dicha herramienta y obtenemos:




Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
7
Clic en <siguiente>:


Clic en <siguiente> y escribimos la localizacin de la Base de Datos:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
8
Clic en <Siguiente>:

Clic en siguiente:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
9
Clic en <siguiente>:


Clic en <siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
10
Clic en siguiente:


Clic en siguiente:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
11
Escogemos UTF8 y clic en <siguiente>:


Escogemos UTF8 para datos tipo NChar y clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
12
Establecemos que se ignoren los espacios en blanco en las comparaciones:


Establecemos la clave para el usuario DBA a SQL y clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
13
Desmarcamos que se conecte a la base de datos y clic en <Siguiente>


Clic en <Finalizar> y Listo:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
14
1.3. Creacin del Servicio
Luego que hemos creado la Base de datos debemos levantarla como servicio para
que sta se encuentre disponible en cualquier momento con solo iniciar la
computadora o mquina virtual que funcione como servidor de datos.

Para crear el servicio iniciamos la Herramienta Sybase Central y seleccionamos
la ficha <Services>, hacemos clic con el botn secundario y nos aparecer un
men emergente tal como se muestra a continuacin:



Dar clic en <Service> y escribimos ServerData para el nombre del servicio:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
15

Se escoge el Motor de base de datos en Red y clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
16
Se especifica el ejecutable para Red y clic en <Siguiente>:

Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
17
Clic en <Siguiente>:

Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
18
Clic en <Siguiente>:


Clic en <Finalizar> finalmente iniciamos el servicio <botn derecho>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
19
1.4. Creacin de Tablas, Relaciones e ndices.
Para crear las tablas primero debemos conectar a la Base de datos desde Sybase
Central, haciendo <clic derecho> en la opcin SQL Anywhere 12 que se
encuentra en el rbol derecho:

Clic en <Connect> y digitamos dba y Sql:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
20
Luego como vamos a conectarnos a una base de datos que est siendo
administrada por el servidor de datos en red (que est corriendo como un
servicio), debemos especificar los parmetros siguientes:
Parmetro Valor Explicacin
Action Connect to a running
database on this
computer
Conectar a una base de datos cuyo
servidor est en esta computadora
Server
Name
ServerData Es el nombre del servidor de datos al
cual conectarse, que es especificado
por el parmetro n a la hora de
configurar su inicio, en este caso
cuando se configuro el servicio.
Database
Name
VentaPC Como un servidor de datos puede
administrar varias base de datos, aqu
especificamos a cul de ellas nos
vamos a conectar


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
21
Clic en <Conectar> y obtenemos lo siguiente:

Clic en el flder Tables y luego <clic derecho> y aparece el siguiente men:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
22
Clic en <Table> y damos el nombre de la tabla Categoria:

Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
23
Clic en <Siguiente>:

Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
24
Clic en <Siguiente>:

Clic en <Finalizar>, presentndonos la interface para el ingreso de los campos.
Ingresamos el campo ID_Categoria y seleccionamos su tipo de datos, valor por
defecto, si es clave primaria o no, etc:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
25
Luego agregamos el campo <Descripcin> y guardamos la tabla :

Lo mismo hacemos lo mismo para cada una de las dems tablas del modelo, por
ejemplo para la tabla Producto:

Cabe destacar que no creamos los campos <fk>, stos se aaden a la tabla cuando
se crean las relaciones de clave fornea con otras tablas de acuerdo a nuestro
modelo entidad-relacin. Cabe destacar que la base de datos puede ser generada
automticamente usando una herramienta CASE, sin embargo y con fines
didcticos seguiremos la forma manual.
Para relacionar esta tabla con la tabla Categoria, hacemos clic en la pestaa
Constraints, luego hacemos <clic derecho> y aparece el siguiente men:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
26

Clic en <Foreign Key>, Seleccionamos la tabla padre, y para el caso de esta
relacin seleccionamos la tabla Categora, obteniendo:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
27
Especificamos el nombre Categoria_Producto_FK, luego clic en <Siguiente>:

Aqu nos indica que se va crear la columna ID_Categoria, Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
28
Clic en <Siguiente>:

Seleccionamos Cascade values y Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
29
Clic en <Siguiente>:

Clic en <Siguiente>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
30
Nos presenta el siguiente resumen:


Clic en <Finalizar> y listo, el resultado final es el siguiente:

Lo mismo hacemos para todas las dems relaciones de la Base de Datos.
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
31
1.5. Creacin de Funciones y Procedimientos Almacenados.
La idea es crear procedimientos almacenados para el ingreso de datos (nuevos
registros) y tambin para reportes complejos que demandan el procesamiento de
muchas tablas o tablas que contienen gran cantidad de registros.

Empezaremos creando procedimientos almacenados para el ingreso de nuevos
registros, tomando como ejemplo la creacin del procedimiento almacenado que
nos permitir agregar un nuevo registro en la tabla Categoria devolviendo la
Clave Primaria generada. Nos vamos a la carpeta Procedures & Functions y
<clic derecho>:


Clic en <Procedure> y escribimos el nombre sp_Categoria_Agregar:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
32


Clic en <Siguiente>:





Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
33
Clic en <Siguiente>:


Clic en <Finalizar> y escribimos el cdigo respectivo:

Guardamos y Listo. Los dems procedimientos almacenados se crean de
manera anloga, y el cdigo para cada uno de ellos es el siguiente:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
34
Para agregar Boleta:

Para agregar Cliente:

Para agregar Cotizacin:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
35
Para agregar Factura:


Para agregar Producto:


Para agregar Proveedor:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
36
Para agregar Transportista:


Para agregar Vendedor:








Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
37
1.6. Creacin de Triggers.
Los triggers son lgica de negocio asociada a eventos especficos de una tabla en
la Base de Datos. Existen 3 tipos de Eventos que ocurren sobre una tabla, que en
Terminos Orientados a Objetos se les conoce como primitivas de las clase tipo
entidad, y son de: Insercin, Actualizacin (General y Especfica de algunos
campos) y Eliminacin; los mismos que se disparan al insertar, actualizar o
eliminar cualquier fila en una tabla.

Para nuestro caso de estudio vamos a agregar 3 trigger a la tabla Compras cuya
finalidad es mantener actualizado el precio de venta actual y el stock de los
productos.

Seleccionamos la tabla Compras en el rbol de objetos y en el panel derecho
seleccionamos Pestaa Trigger, luego hacemos clic derecho y obtenemos:


Hacemos clic en <Trigger> y escribimos tI_Compras_ActualizarProducto:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
38

Clic en <Siguiente> y marcamos <Insert>:

Clic en <Siguiente>:

Clic en <Siguiente> y marcamos <After Event>
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
39

Clic en <Siguiente>:

Clic en <Finalizar> y escribimos el siguiente cdigo:

Luego guardamos y listo, el Trigger ha sido creado, ahora aadiremos otro:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
40

Hacemos clic en <Nuevo> y escribimos tU_Compras_ActualizarProducto:

Clic en <Siguiente> y marcamos <Actualizacin de columnas> (precio y
cantidad):

Clic en <Siguiente>:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
41

Clic en <Siguiente> y marcamos <despus del evento>:

Clic en <Siguiente>:

Clic en <Finalizar> y escribimos el siguiente cdigo:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
42

Guardamos y el Trigger es creado, ahora aadiremos uno para la eliminacin:

Clic en <Trigger> y escribimos tD_Compras_ActualizarProducto:

Clic en <Siguiente> y marcamos <Eliminar>:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
43

Clic en <Siguiente>:

Clic en <Siguiente> y marcamos Despus del Evento:

Clic en <Siguiente>:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
44

Clic en <Finalizar>, escribimos el Siguiente cdigo y por ltimo guardamos:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
45
II. Framework GUI - Cliente
2.1. Creacin del Workspace
Para crear el workspace de trabajo hacemos clic en Archivo del men principal
y seleccionamos New:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
46
Clic en <OK>, seleccionamos una ruta y ponemos el nombre VentaPC:


Luego procedemos a agregar un target de aplicacin:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
47


Clic en <OK> y ponemos app_venta_gui, previamente creamos una carpeta
GUI y dentro de ella guardamos la aplicacin:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
48
Agregamos un archivo de librera, para almacenar los datawindows:



Clic en <OK> y le ponemos app_venta_dwingreso:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
49

Clic en <Finish>:
2.2. Fuentes de datos y DataWindow para ingreso de datos.
Para crear un objeto DataWindow primero debemos crear una fuente de datos
(DSN) y luego un perfil de conexin para esa fuente de datos.
Entonces abrimos el administrador de Fuentes de Datos (Administrador ODBC)

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
50
Luego seleccionamos la pestaa DSN de Sistema y obtenemos:


Hacemos clic en agregar, y seleccionamos SQL Anywhere 12:


Clic en <Finalizar> y completamos tal como sigue:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
51


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
52
Hacer clic en <Aceptar> para terminar de crear el DSN.


Ahora en el Entorno PowerBuilder vamos a crear un perfil da datos que conecte
con la fuente de datos VentaPC. Abrimos los Perfiles de Base de Datos:

Hacer clic en <New>, establecemos el nombre del perfil =VentaPC, Data
Source = VentaPC, el usuario = dba y la Clave = sql, y obtenemos:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
53

Hacemos clic en OK y finalmente, conectamos con la base de Datos.
Ahora procedemos a crear los DataWindows para el ingreso de datos:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
54

Clic en <OK>:



Luego seleccionamos la tabla Cliente



Clic en <Abrir> y configuramos la consulta de la siguiente manera:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
55


Luego configuramos la presentacin del Datawindow:


Y guardamos con el nombre d_cliente.
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
56




En el men <Rows / Update Properties> configuramos de esta manera:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
57

2.3. Mantenimiento con Procedimientos Almacenados
El objetivo es enlazar los procedimientos almacenados ya creados con los
datawindows, para que cuando se inserte un nuevo registro en lugar de generarse
una consulta SQL de insercin se utilice el procedimiento almacenado creado para
tal fin.

Hacemos clic en el men <Rows / Stored Procedure Update> y tenemos:


Clic en <Procedure>, seleccionamos sp_Cliente_Insertar
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
58


Hacemos clic en <OK>:


Ahora a cada argumento del procedimiento almacenado lo relacionamos con un
campo del DataWindow:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
59

Finalmente hacemos clic en <OK> y guardamos.
Lo mismo hacemos para las tablas: Categora, Producto, Proveedor, transportista
y vendedor.
2.4. Ventanas para I ngreso de Datos.
Primero creamos una clase w_padre que servir de base para todas las dems
ventanas de la aplicacin:



De w_Padre heredamos w_Class_Registrador: y le agregamos los
siguientes controles:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
60

A esta ventana le agregamos las siguientes funciones:

Y cuyo cdigo se muestra a continuacin:

wf_recuperar ()
// Nota: este cdigo debe ser modificado al pasar a 3 capas
dw_Ingreso.Retrieve()
wf_Modo_Edicion(False)

long wf_nuevo ()
Long Pos

Pos = dw_Ingreso.InsertRow(0)
IF Pos > 0 THEN dw_Ingreso.ScrollToRow(Pos)
wf_Modo_Edicion(True)

Return Pos

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
61
wf_modo_edicion (boolean editar)
IF Editar THEN
dw_Ingreso.Modify("DataWindow.ReadOnly=NO")
ELSE
dw_Ingreso.Modify("DataWindow.ReadOnly=YES")
END IF

cb_Editar.Enabled = Not Editar
cb_Nuevo.Enabled = Not Editar
cb_Eliminar.Enabled = Editar
cb_Guardar.Enabled = Editar

cb_Primero.Enabled = Not Editar
cb_Anterior.Enabled = Not Editar
cb_Siguiente.Enabled = Not Editar
cb_Ultimo.Enabled = Not Editar

wf_editar ()
wf_Modo_Edicion(True)

wf_eliminar ()
Long Pos

Pos = dw_Ingreso.GetRow()
IF Pos > 0 THEN dw_Ingreso.DeleteRow(Pos)

wf_guardar ()
//por modificar en 3 capas

dw_Ingreso.AcceptText()
IF dw_Ingreso.Update() > 0 THEN
commit;
ELSE
MessageBox("Error: ", "No se Pudo actualizar" + Sqlca.SqlErrText )
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
62
rollback;
END IF
wf_Modo_Edicion(False)

wf_anterior ()
dw_Ingreso.ScrollPriorRow( )

wf_primero ()
IF dw_Ingreso.RowCount()>=1 THEN dw_Ingreso.ScrollToRow(1)

wf_siguiente ()
dw_Ingreso.ScrollNextRow()

wf_ultimo ()
IF dw_Ingreso.RowCount()>=1 THEN
dw_Ingreso.ScrollToRow(dw_Ingreso.RowCount())
Luego de w_class_registrador heredamos a: w_categoria, w_cliente,
w_compra, w_producto, w_proveedor, w_transportista y w_vendedor
2.5. Ventana MDI y Men principal.
El men principal tendr la siguiente estructura (por el momento faltan los
reportes)

El cdigo para el evento clicked de Registrar Vendedor es el siguiente:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
63

El cdigo para el evento clicked de Registrar Proveedor es el siguiente:

El cdigo para el evento clicked de Registrar Transportista es el siguiente:

Y as sucesivamente para cada una de las ventanas de la aplicacin.
2.6. Gestin de Reportes.
(Pendiente)

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
64
III. Arquitectura Distribuida y EAServer
3.1. Desarrollo de Aplicaciones n-Tier con PowerBuilder
El proceso de Desarrollar aplicaciones distribuidas con PB y EAServer es el
siguiente:

3.2. Creacin de Servidores EAServer
Para crear un Servidor EAServer Primero debemos conectarnos al Jaguar
mediante la Consola de Administracin de EAServer EAServer Manager:
4. Definir Componente.
5. Especificar DB (Opcional).
6. Implementar mtodos.
7. Desplegar Componente.
1. Crear Servidor (Opcional)
2. Crear Package
3. Crear Cach de Conexiones
Tareas en
EAServer
7. Conectar a EAServer.
8. Generar Proxy de Componentes.
9. Instanciar el Proxy
10. Enviar Mensajes.
Tareas en
Target Servidor
Tareas en
Target Cliente
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
65

Con lo que se iniciar el servidor EAServer mostrando la siguiente pantalla:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
66
Ahora debemos acceder al servidor, para lo cual en una ventana del explorador
digitaremos esta direccin: http://WINCAMILO:8000, mostrndonos la
siguiente pantalla, que indica que el servidor est operacional:

La ventana principal del EAServer nos muestra diferentes opciones como
documentacin local y en lnea, entre otros. Hacemos clic en Web
Administration Console e ingresamos las credenciales de acceso, en username
ponemos admin@system y en password: easerver6

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
67
Clic en <Login> y aparecer el siguiente dilogo:


Expandimos la pestaa de Servidores y vemos el servidor por defecto y el
servidor creado al momento de la instalacin:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
68
Seleccionamos la carpeta Servers, hacemos <clic derecho> y se muestra:


Con fines didcticos crearemos un nuevo Servidor, clic en <Add>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
69
Clic en <Siguiente> y le damos nombre EAS_VentaPC:

Clic en siguiente donde debemos escoger el puerto por el cual atender el servidor
de aplicaciones de ejemplo, cada servidor de aplicaciones debe atender por un
puerto diferente:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
70
Clic en <Add Listener>, especificamos tipo: http y puerto: 8050.


Clic en <Add Listener>, especificamos tipo: iiop y puerto: 2050


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
71
Clic en <Siguiente> y dejamos las opciones por defecto:


Clic en <Siguiente>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
72
Nos muestra los mdulos EAServer activos por defecto, Clic en <Siguiente>:


Indicamos si deseamos excluir algn mdulo, Clic en <Siguiente>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
73
Nos muestra una ventana resumen:


Clic en <Finalizar> y nos muestra el servidor recin creado:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
74
Para iniciar el servidor ejemplo, debemos crear un acceso directo en el escritorio
que contenga el siguiente comando:
"C:\Program Files\Sybase\EAServer6\bin\start-server.bat" EAS_VentaPC

Al darle doble clic inicia el servidor y atiende por los puertos configurados:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
75
Y tiene su propia consola de administracin:

En lo que resta del curso trabajaremos con el Servidor WINCAMILO.

3.3. Creacin de Packages
Se denomina Package a un grupo de componentes relacionados, es una
coleccin de componentes que trabajan juntos para proveer algn aspecto de la
lgica de negocios de la aplicacin.
Un Package define un lmite de confianza dentro del cual los componentes pueden
comunicarse fcilmente.

Para crear el Package de nuestro caso de estudio seleccionamos el flder
CORBA Packages y hacemos <clic derecho> obteniendo:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
76






Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
77
Clic en <Agregar> y nos aparece el asistente de creacin de Package:


Clic en <Next> y ponemos el nombre VentaPC al nuevo Package:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
78
Clic en <Siguiente> y obtenemos:


Clic en <Finalizar> para terminar con el asistente:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
79
3.4. Creacin de Cach de Conexiones
A travs del cach de conexiones los componentes comparten un conjunto de
conexiones preestablecidas a servidores de base de datos remotas.

Preestablecer conexiones y limitar el nmero de veces que una conexin fsica
necesita ser creada y destruida en un entorno impredecible de carga, son
actividades crticas para un desempeo eficiente.

Para crear un cach de conexiones expandimos la carpeta Resources y clic
derecho sobre la carpeta Data Sources:


En el men contextual, seleccionamos la opcin Add, abriendo el asistente para
la creacin de nuevas fuentes de datos:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
80


Clic en el botn <Siguiente>, establecemos el nombre de nuestro data source
VentaPC:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
81
Clic en <Siguiente>:


Clic en <Siguiente>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
82
Clic en <Siguiente> y establecemos el tamao mnimo y mximo del pool de
conexiones en 5 y 10 respectivamente:

Seleccionamos el servidor(es) donde el Pool de conexiones estar disponible:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
83
Clic en <Siguiente> y Muestra un resumen de lo que se har:


Clic en <Finalizar>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
84
Se edita como sigue a continuacin:


Clic en <Aplicar>, hacemos clic derecho sobre lo que hemos creado:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
85
Clic en el men Ping y nos devuelve un mensaje de conformidad:

Con lo cual hemos creado un pool de conexiones.
3.5. Perfiles de conexin a EAServer en PowerBuilder I DE
Antes de crear un perfil de conexin debemos verificar que el Servidor EAServer
se encuentre atendiendo; para lo cual verificamos la consola del servidor:

En caso de que el servidor no est iniciado tendremos que iniciarlo con el acceso
directo que se encuentra en el men inicio:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
86


Luego de que el servicio est corriendo, en PowerBuilder hacemos clic sobre el
cono de EAServer Profiles y aparecer la siguiente ventana:


Clic en <Agregar>:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
87


y configuramos la conexin como sigue (Password = easerver6):

Clic en <Probar> y luego clic en <OK>:

Clic en <Hecho> y listo!
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
88
3.6. Definir Componente
Los componentes de la aplicacin son administrados en un Target creado
especficamente para este propsito, entonces aadiremos a nuestro WorkSpace
un nuevo target llamado app_VentaPC_NVO.
Hacemos clic en <Nuevo> y seleccionamos EAServer Component:

Clic en <OK>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
89
Pregunta si se crea de cero o usando una librera existente, seleccionamos desde
cero y hacemos clic en <Siguiente>:


Clic en <Siguiente>:




Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
90

Clic en <Siguiente>, creamos la carpeta SERVER y dentro de ella creamos el
target y escribimos el nombre de app_ventapc_nvo:


Clic en <Siguiente>:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
91
Clic en <Siguiente>:


Clic en <Siguiente> y escribimos n_class_controlador, este objeto no visual
ser el padre de todos los dems objetos no visuales, los que contendrn la lgica
de negocio de nuestra aplicacin:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
92
Clic en <Siguiente>:


Clic en <Siguiente> y seleccionamos el perfil EAServer anteriormente creado, en
el perfil se estableci el servidor de aplicaciones sobre el cual sern desplegados
nuestros componentes:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
93
Clic en <Siguiente> y elegimos el package creado anteriormente, los
componentes se despliegan dentro de packages, lo recomendable es crear un
package por aplicacin, en este caso anteriormente se cre VentaPC:


Clic en <Siguiente> y seleccionamos el tipo de componente a crear:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
94
Clic en <Siguiente>:


Clic en <Siguiente> y especificamos si el componente soportar Pool de
instancias, que permite que las instancias del componente se mantengan en
memoria y no se destruyan, disminuyendo as el tiempo de instanciacin:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
95
Clic en <Siguiente> y aparece el tipo de transacciones que soportar nuestro
componente, seleccionamos Supports Transaccition para que el componente
pueda hacer uso del manejo de transacciones dentro del servidor de aplicaciones,
tal como se muestra:


Clic en <Siguiente> y especificamos que haga una reconstruccin completa, para
que cuando el componente sea desplegado en el servidor vuelva a ser compilado:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
96

Clic en <Siguiente> y seleccionamos que el componente pueda ser editado:


Si queremos que nuestro componente funcione como un WEB Service, debemos
configurar la siguiente pantalla; por el momento no es necesario, clic en
<Siguiente>:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
97
Clic en <Siguiente>:


Clic en <Siguiente>:





Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
98
Clic en <Finalizar> y nuestro Workspace queda de la siguiente manera:

Luego en el Target app_venta_nvo creamos una librera llamada
app_venta_nvo_dwingreso.pbl. Para esto hacemos <clic derecho> sobre el
Target y seleccionamos propiedades:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
99
Clic en <Nuevo> y escribimos app_venta_nvo_dwingreso:

Esta nueva librera contendr los objetos datawindows que finalmente se
presentarn al usuario, dichos datawindows ya no estarn en la aplicacin cliente,
sino en el servidor de aplicaciones.

Clic en <Guardar> y <OK> con lo que tenemos:

Clic en <Aceptar> y las libreras quedaran como se muestra:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
100

Luego movemos los objetos DataWindow de app_venta_dwingreso.pbl a la
librera app_venta_nvo_dwingreso.pbl, y el proyecto quedara como sigue:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
101
IV. Ciclo de vida y Creacin de Componentes
4.1. Modelo del Ciclo de Vida de los Componentes EAServer.
La administracin del ciclo de vida de los componentes determina de que manera
las instancias de los componentes son:
Creadas
Enlazadas a un Cliente
Desligadas de un Cliente
Rehusadas y
Destruidas.
EAServer soporta las siguientes caractersticas en sus componentes:
Pool de Instancias
Soporte para componentes Stateful y Stateless.

El Ciclo de vida de los componentes EAServer es como sigue:


Instanciacin
En Espera
Enlazado a
Cliente
Activacin
Desactivacin
Automtica
Desactivacin
por Primitiva
NO
Soporta
Pool de Inst.
Ejecucin de
Mtodo
Reciclamiento
NO
Desactivacin
Desactivacin
SI
NO
Destruido
Destruccin
(Permanece)
SI
SI
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
102
4.2. Creacin de los Objetos No Visuales de la Aplicacin.
Antes de crear los objetos no visuales debemos crear un Perfil de Conexin a BD
especial, que haga referencia al Cach de conexin en el EAServer y no al DSN
de sistema. Abrimos el administrador de perfiles de conexin:

Clic en <Nuevo> y escribimos Venta_PC_EAS como nombre de perfil, luego
Seleccionamos la pestaa EAServer/COM+ y marcamos como sigue:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
103


Los objetos no visuales (Los controles de los Diagramas de secuencia UML) se
crearn por herencia de n_class_controlador. A sta clase le aadiremos lo
siguiente:

Variables de instancia:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
104
Cdigo a los Eventos Activate y Deactivate:




Tambin agregaremos funciones de propsito general:
of_recuperar()


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
105
of_guardar()

Luego creamos n_cliente, mediante herencia de n_class_controlador:


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
106
Hacemos clic en <OK>

Establecemos la propiedad sDataWindow a d_cliente:

Hacemos clic en <Guardar> y ponemos nombre n_cliente:

Clic en <OK> y listo, se ha creado a n_cliente.
Empleamos el mismo procedimiento para crear los otros objetos: n_categoria,
n_compra, n_producto, n_proveedor, n_transportista, n_vendedor. Y para cada
componente establecemos adecuadamente la propiedad sDataWindow; por
ejemplo: para el componente n_Categoria el valor de sDataWindow ser
d_categoria; para n_Vendedor ser d_vendedor y as sucesivamente.
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
107

Al final tendremos los componentes creados tal como se muestra a continuacin:

Luego debemos aadir estos componentes al proyecto app_venta_nvo para que
sean desplegados en el EAServer y guardamos:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
108
4.3. Configuracin de Componentes EAServer.
Los componentes se configurar
desde la ficha de propiedades del
proyecto, tal como se muestra en las
figuras que siguen.
Desde Powerbuilder existen 3 tipos
de componentes:
Standard: Son el tipo de
componentes ms usados y soportan
manejo de transacciones, pool de
instancias y otros aspectos del ciclo
de vida de los componentes
Shared: Permiten mantener
informacin de estado. Los
componentes Shared permiten que
mltiples clientes compartan la
misma instancia de componente.
Service: Estos componentes realizan procesamiento de fondo para clientes
EAServer y otros componentes. EAServer carga el servicio a momento de iniciar
el servidor.

Hay dos propiedades ms que debemos
configurar:
Automatic Demarcation / Deactivation
Cuando est marcado el componente
automticamente se desactiva despus de
cada llamada. Si no est marcado el
componente debe ser desactivado
explcitamente.




Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
109
Support Instance Pooling: Marcamos
esta propiedad para especificar que
cada instancia del componente
siempre es reutilizada despus que
cada cliente la utiliza.











Como paso final de la configuracin de los Componentes stos deben ser
desplegados sobre el EAServer para lo cual desplegamos el proyecto . Y como
resultado podemos apreciar lo siguiente en el Administrador EAServer:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
110
4.4. Creacin de Objetos Proxy.
Para que la aplicacin cliente pueda invocar a los componentes que se encuentran
en el EAServer primero tenemos que crear sus objetos Proxy respectivos.
Primero Aadimos la librera app_venta_proxy.pbl al Target app_venta_gui.

Aparece la lista de libreras del target, aqu aadiremos la nueva librera:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
111
Clic en <New>

Clic en <Guardar>

Clic en <OK>


Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
112
Quitamos la referencia a app_venta_dwingreso.pbl porque los objetos
datawindow estarn almacenados en el target app_venta_nvo:

Clic en <OK> y la estructura del proyecto quedara as:

Luego hacemos clic en nuevo e iniciamos el asistente para creacin de Proxy:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
113
Clic en <OK>:


Clic en <Siguiente> y escribimos p_venta_proxy:





Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
114
Clic en <Siguiente> y seleccionamos el perfil de conexin EAServer:


Clic en <Siguiente>, desplegamos y marcamos VentaPC:





Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
115
Clic en <Siguiente> y seleccionamos la librera ventapc_proxy.pbl:



Clic en <Siguiente> y marcar como sigue:




Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
116
Clic en <Siguiente>:


Clic en <Finalizar>, desplegamos el proyecto y obtenemos:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
117
4.5. FrameWork GUI con Componentes
Debemos modificar el FrameWork GUI para utilizar componentes:
Primero debemos crear nuestro objeto Conexin:


Clic en <OK>:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
118

Clic en <Siguiente>, y seleccionamos la librera donde se guardar el objeto:



Clic en <Siguiente>, y especificamos que requerir de conexin EAServer:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
119

Clic en <Siguiente>:



Clic en <Siguiente> y seleccionar el package VentaPC:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
120

Clic en <Siguiente>, especificamos n_connect como nombre:



Clic en <Siguiente>:



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
121
Clic en <Siguiente>:


Clic en <Finalizar> y obtenemos un nuevo objeto conexin:

En la Aplicacin creamos una variable global:

Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
122

Modificamos el evento open de la aplicacin:


Tambin modificamos el evento close de la aplicacin


A la clase w_padre le aadiremos dos variables de instancia:


A la clase w_class_registrador le modificamos las funciones wf_recuperar y
wf_guardar, para que trabajen con los objetos proxy provenientes del servidor, las
modificaciones son tal como se muestran a continuacin:
Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
123



Universidad Nacional del Santa Desarrollo de Aplicaciones Distribuidas
Departamento Acadmico de Civil y Sistemas con PowerBuilder 12.5 y EAServer 6.0.2
Ms. Ing. Camilo E. Surez Rebaza
Manual del Estudiante. Versin 2014
124

You might also like