Post on 02-Feb-2016
Business Components Business Components
Alejandro Silva
ARTech
silva@artech.com.uy
Alejandro Silva
ARTech
silva@artech.com.uy
Business componentsBusiness components
Desarrollar aplicaciones mas rápido y fácil.Desarrollar aplicaciones mas rápido y fácil.
Que son los Business Components ?Que son los Business Components ?
TransacciónTransacción
• Encapsula lógica
• Provee visualización
• Interacción con el usuario
• Actualización de la BD
• Validación de reglas
• Encapsula lógica
• Provee visualización
• Interacción con el usuario
• Actualización de la BD
• Validación de reglas
Que?Que?
TransacciónTransacción
Presentación
Lógica de negocios
Acceso a la BD
Que?Que?
Business ComponentBusiness Component
Que?Que?
Interfase O-O
Lógica de negocios
Acceso a la BD
Como funciona ?Como funciona ?
InterfaseInterfase
Como?Como?
Interfase O-O
Lógica de negocios
Acceso a la BD
InterfaseInterfase
Load(key) Save() Check()
GetMessages() NoErrors() Mode()
(Propiedades)
Como?Como?
Interfase O-O
InterfaseInterfase
Load(key) Save() Check()
GetMessages() NoErrors() Mode()
(Propiedades)
Como?Como?
Interfase O-O
Interfase - PropiedadesInterfase - Propiedades
Asigna valor a atributos modificables del objeto
• Obtiene valor de atributos
• Ejemplo• &total = &factura.FacTotal
• For &facLinea in &factura.Factura1
&cantidadItems = &cantidadItems + &facLinea.PrdCant
EndFor
Asigna valor a atributos modificables del objeto
• Obtiene valor de atributos
• Ejemplo• &total = &factura.FacTotal
• For &facLinea in &factura.Factura1
&cantidadItems = &cantidadItems + &facLinea.PrdCant
EndFor
Como?Como?
(Propiedades)
InterfaseInterfase
Load(key) Save() Check()
GetMessages() NoErrors() Mode()
(Propiedades)
Como?Como?
Interfase O-O
Interfase - MétodosInterfase - Métodos
• Load(key)• Carga la información relacionada con la clave dada.
• Check()• Procesa el componente sin actualizar la BD.
• Save()• Procesa el componente y actualiza la BD.
• Delete()• Elimina el set.
• Load(key)• Carga la información relacionada con la clave dada.
• Check()• Procesa el componente sin actualizar la BD.
• Save()• Procesa el componente y actualiza la BD.
• Delete()• Elimina el set.
Como?Como?
Load(key) Save() Check()
InterfaseInterfase
Load(key) Save() Check()
GetMessages() NoErrors() Mode()
(Propiedades)
Como?Como?
Interfase O-O
Interfase - MétodosInterfase - Métodos
• NoErrors()• Estado del componente.
• GetMessages()• Mensajes de resultado de la ultima operación.
• Mode()• Modo en que se encuentra en componente.
• NoErrors()• Estado del componente.
• GetMessages()• Mensajes de resultado de la ultima operación.
• Mode()• Modo en que se encuentra en componente.
Como?Como?
GetMessages() NoErrors() Mode()
InterfaseInterfase
• Ejemplo&factura.FacFecha = today()
&factura.CliCod = 1
&facLinea.PrdId = 1
&facLinea.PrdCantidad = 10
&factura.Factura1.Add( &facLinea)
&factura.Save()
If NoErrors()
return
Else
&messages = GetMessages()
EndIf
• Ejemplo&factura.FacFecha = today()
&factura.CliCod = 1
&facLinea.PrdId = 1
&facLinea.PrdCantidad = 10
&factura.Factura1.Add( &facLinea)
&factura.Save()
If NoErrors()
return
Else
&messages = GetMessages()
EndIf
Como?Como?
Porque es mas fácil y rápido ?Porque es mas fácil y rápido ?
VentajasVentajas
• Reutilizar lógica de la transacción• Delete cascade• Validación • Control de integridad
• Encapsular reglas del negocio• No es necesario controlar las reglas en todos lados.
• Reutilizar lógica de la transacción• Delete cascade• Validación • Control de integridad
• Encapsular reglas del negocio• No es necesario controlar las reglas en todos lados.
Porque?Porque?
Caso ICaso I
• Delete en procedures
• Implementación• Control de referencias de integridad• Delete de tablas subordinadas
• Problemas• Duplica lógica
• Mantenimiento
• Falta de funcionalidad
• Delete en procedures
• Implementación• Control de referencias de integridad• Delete de tablas subordinadas
• Problemas• Duplica lógica
• Mantenimiento
• Falta de funcionalidad
Porque?Porque?
Caso IICaso II
• Actualización en Work Panel
• Implementación• Crear procs – para actualizar la BD.• Validar la lóigica de negocios en eventos
• Problemas• Duplica lógica
• Mantenimiento
• Falta de funcionalildad• Lock optimista
• Actualización en Work Panel
• Implementación• Crear procs – para actualizar la BD.• Validar la lóigica de negocios en eventos
• Problemas• Duplica lógica
• Mantenimiento
• Falta de funcionalildad• Lock optimista
Porque?Porque?
Caso IIICaso III
• Web services
• Implementación• Crear procedures SOAP – para actualizar la BD.
• Problemas• Duplica lógica de la Tansacción.
• Web services
• Implementación• Crear procedures SOAP – para actualizar la BD.
• Problemas• Duplica lógica de la Tansacción.
Porque?Porque?
Web ServicesWeb Services
• Presentar el Business Component como Web Service
• Metodos “SOAP”• Load( in:key, out:component, out: messages)• Check( inout: component, out: messages)• Save( inout: component, out: messages)
• Presentar el Business Component como Web Service
• Metodos “SOAP”• Load( in:key, out:component, out: messages)• Check( inout: component, out: messages)• Save( inout: component, out: messages)
Porque?Porque?
demodemo