 cognovís 2008 ]project-open[ meets XoTCL ]po[ dynfields XoDynfields ]po[ contacts XoTCL ]po[ projects ]po[ categories OpenACS XoDynfields.

Slides:



Advertisements
Similar presentations
Access 2007 ® Use Databases How can Microsoft Access 2007 help you structure your database?
Advertisements

CHAPTER OBJECTIVE: NORMALIZATION THE SNOWFLAKE SCHEMA.
 Definition: An HRIS, the abbreviation for Human Resources Information System, is a system that lets you keep track of all your employees and information.
Sysment Notebook Presentation of a web-based ELN system.
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
Intro to ArcGIS for New Users. ArcGIS Desktop Advanced GeoprocessingArcInfo ArcReader Data Access Map Viewing Query Advanced EditingArcEditor ArcView.
Configuration Implementation Accomplished following 3 Simple Steps. 1) Work with someone that has done it before. 1) Work with someone that has done it.
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
Reducing development costs Code generation in IronSpeed Designer William Eastbury Simple Health & Beauty Limited.
Technical BI Project Lifecycle
Quickbix Documents Suite
Chapter 11 Data Management Layer Design
CS155b: E-Commerce Lecture 10: Feb. 13, 2003 XML and its relationship to B2B commerce Acknowledgements: R. Glushko, A. Gregory, and V. Ramachandran.
Chapter 14 The Second Component: The Database.
SQL Forms Engine Koifman Eran Egri Ozi Supervisor: Ilana David.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
A GUIDE TO SHAREPOINT 2007 CUSTOMIZATION OPTIONS Heather Solomon, WSS MVP.
MIS Database Tables. Database Concepts flat file databasesflat databases Simple databases store information in only one table. These simple databases.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Enterprise Object Framework. What is EOF? Enterprise Objects Framework is a set of tools and resources that help you create applications that work with.
Page 1 ISMT E-120 Desktop Applications for Managers Introduction to Microsoft Access.
Microsoft Access Intro Class 1 Database Concepts.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Module 3: Table Selection
A business of Spc Overview of SAP BW Reporting. PC 2 SAP BW: Overview.
Denise Luther Senior IT Consultant Practical Technology Enablement with Enterprise Integrator.
Database testing Prepared by Saurabh sinha. Database testing mainly focus on: Data integrity test Data integrity test Stored procedures test Stored procedures.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
1 Overview of Databases. 2 Content Databases Example: Access Structure Query language (SQL)
DATABASE PROGRAMMING Lecture on 16 – 05 – PREVIOUS LECTURE QUIZ: - Some students were very creative in transforming 2NF to 3NF. Excellent! - Some.
DBA’s, Oracle Designer and the Development Life Cycle By Peter Wilkinson, Mercury International Ltd. Leslie Tierstein, SCI Consulting, Inc.
Lecture 7 Integrity & Veracity UFCE8K-15-M: Data Management.
Lecture2: Database Environment Prepared by L. Nouf Almujally & Aisha AlArfaj 1 Ref. Chapter2 College of Computer and Information Sciences - Information.
Development and Customization of OpenACS. OpenACS Package Architecture Functionality is divided into packages One package contains Data Model Tcl Libraries.
Farcry Not just a game anymore…. What is Farcry?  Farcry is a Content Management System (CMS)  It is designed to separate the jobs of site creation/design.
Lecture2: Database Environment Prepared by L. Nouf Almujally 1 Ref. Chapter2 Lecture2.
This eCPIC Quick Guide has been developed to assist System Administrators with creating Hierarchy Grids in eCPIC. The Hierarchy Grid functionality allows.
Enhancing Forms with OLE Fields, Hyperlinks, and Subforms – Project 5.
6.1 © 2010 by Prentice Hall 6 Chapter Foundations of Business Intelligence: Databases and Information Management.
Access 2007 ® Use Databases How can Microsoft Access 2007 help you structure your database?
McGraw-Hill/Irwin ©2005 The McGraw-Hill Companies, All rights reserved ©2005 The McGraw-Hill Companies, All rights reserved McGraw-Hill/Irwin.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
— Customer Success Team August / 2015 Remedyforce Enablement Kit Migration from CMDB 1.0 to 2.0.
Database Management Supplement 1. 2 I. The Hierarchy of Data Database File (Entity, Table) Record (info for a specific entity, Row) Field (Attribute,
Database Management Systems (DBMS)
Lesson 7 – Microsoft Excel 2010 Working with Tables, PivotTables, and PivotCharts.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
Metadata By N.Gopinath AP/CSE Metadata and it’s role in the lifecycle. The collection, maintenance, and deployment of metadata Metadata and tool integration.
IST 220 – Intro to Databases Lecture 2 Touring Microsoft Access.
UI's for inputting and presenting the metadata of hypermedia documents Kai Kuikkaniemi HUT T
Portals: Architecture & Best Practices Greg Hinkle February 2005.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Microsoft Office 2013 Try It! Chapter 4 Storing Data in Access.
Databases Flat Files & Relational Databases. Learning Objectives Describe flat files and databases. Explain the advantages that using a relational database.
Copyright © 2007, Oracle. All rights reserved. Managing Items and Item Catalogs.
© 2003 By Default! A Free sample background from Slide 1 Week 3  Backend Construction  Create your own CRM Please Visit:
I am Xinyuan Niu I am here because I love to give presentations. Data Warehousing.
Access Lessons 1, 2 and 3 ©2009 M and K Solutions, LLC – All Rights Reserved.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
Copyright © 2014 Pearson Canada Inc. Ext. 5b-1 Copyright © 2014 Pearson Canada Inc. Application Extension 5b Using Microsoft Access Part 2: Using Information.
1 Middle East Users Group 2008 Self-Service Engine & Process Rules Engine Presented by: Ryan Flemming Friday 11th at 9am - 9:45 am.
The Holmes Platform and Applications
IST 220 – Intro to Databases
Working in the Forms Developer Environment
District And Club database
Please thank our sponsors!
PitchBook For MS Dynamics Plugin
Flat Files & Relational Databases
Presentation transcript:

 cognovís 2008 ]project-open[ meets XoTCL ]po[ dynfields XoDynfields ]po[ contacts XoTCL ]po[ projects ]po[ categories OpenACS XoDynfields

 cognovís 2008 XoDynfields is an extenstion to the intranet- dynfield package of ]po[ providing enhanced data manage- ment for existing business objects. It integrates XoTCL with the attribute mangement of Dynfields and adds automated form generation as well as extended search capabilities into the mix. Providing the backend for the intranet-contacts package it is also in use with the new intranet-sco (supply chain optimization) and is set to make it‘s way into other packages as well. a XoDynfields in a Nutshell

 cognovís 2008 Attribute Management System is meta table approach to handling OpenACS attributes. It was written as a foundation for the contacts module. Contacts is a module to manage contact data (of persons / organizations) and provides basic CRM functionalities to OpenACS Contacts has been using AMS to dynamically allow the manipulation of attributes associated with persons and organizations from the web frontend without the need for further coding Put to usage, the meta table approach has proven to be a performance hindrance and also made future changes based on attribute data cumbersome. a History AMS & Contacts

 cognovís 2008 Dynfields is a further development of the AMS system though it extends the primary object_type table to manage additional attributes Dynfields also makes good use of extension tables, allowing for the gathering of object_type related attributes from many sources (read: tables) ::xo::db is a set of XoTCL classes which provide an XoTCL layer to the asc_attribute and object_type system. It allows for automated generation of classes based on the information stored in the acs_attributes and object_types tables and provides methods based for handling and storing objects as acs_objects in the database. a History Dynfields & ::xo::db

 cognovís 2008 Integrating the contacts module with ]po[ required the rewriting of the underlying use of AMS to Dynfields, which is the method of choice for ]po[ handling of attributes. Additionally, depending on the object_type, behaviour of methods to handle the contact objects were different in ]po[ core, providing the need for overlaying functionality As part of a research project cognovís needed to interface the contacts data with external sources using webservices => Enhance Dynfields with XoTCL and use XORB for integration of the webservices a History XoDynfields & intranet-contacts

 cognovís 2008 To understand the background, let’s do a quick mapping of OpenACS and XoTCL terms first (keeping it very simple): ::xo::db classes represent OpenACS object_types The classes contain Slots, which resemble acs_attributes The ::xo::db classes have class hierarchy resembling the supertype structure of OpenACS Default methods for the classes are “save” and “save_new”, resembling update and insert statements into the database a Attribute Management OpenACS & XoTCL

 cognovís 2008 Dynfields extends acs_attributes and object_types with a couple of concepts: Widgets: A widget is a definition on how to display the value of an attribute both in display and edit mode (of a form) Layouts: Define in what order and position attributes of a form are to be displayed Extension Tables: In addition to the main table for storing object_type information it allows to define extension tables which contain columns to hold the potential attribute values Web based: Dynfields allows the web based editing of attributes, which Frank can display you. a Attribute Management Dynfields

 cognovís 2008 From a code perspective Dynfields and ::xo::db have a couple of drawbacks, complemented by the other ::xo::db does not work with extension tables, Dynfields does not respect object_type hierarchies Neither contained lists, which allow the grouping of attributes for a certain context (though Dynfields went halfway with the layout) ::xo::db did not contain methods to automatically create forms for the classes Neither supported relationships between object_types (as was needed by contacts) a Attribute Management XoDynfields

 cognovís 2008 XoDynfields therefore provides classes build upon ::xo::db to achieve the previously mentioned goals ::im::dynfield::Class enhances ::xo::db::Class with the object information from Dynfields as well as support extension tables ::im::dynfield::Class ::im::dynfield::Widget contains all the information how to display an attribute and provide the form field.::im::dynfield::Widget ::im::dynfield::Attribute and ::im::dynfield::Element enhances ::xo::db::Attribute with the widget information as well as positioning data and lists (context)::im::dynfield::Attribute ::im::dynfield::Element ::im::dynfield::Form provides generator methods for creating form classes per object type to generate forms (using ad_form)::im::dynfield::Form a XoDynfields Class structure

 cognovís 2008 XoDynfields makes use of the same functionality that is inherent in ::xo::db. It generates classes out of the database ::im::dynfield::Class creates one class per object_type, typically named ::im::dynfield::Class::object_type ::im::dynfield::Class Objects are instances of this object type specific class. ::im::dynfield::Form also creates one class per object_type.::im::dynfield::Form The individual form is an instance of the object type specific class, which is potentially passed an object for manipulation XoDynfields Generating classes

 cognovís 2008 Usage and development of XoDynfields was not only driven by the need for contacts, but should also bring benefits in development in general Using XoTCL concepts makes it easier to inject custom code into the processing, preventing code forks. An example is saving person information (but not company) in an external HR database upon saving it in contacts Form generation is much shorter in code and the form can be manipulated using the web frontend by the end user admin. Forms can be displayed in context and the elements for each context defined by the end user admin. XoDynfields Benefits Forms

 cognovís 2008 set party [::im::dynfield::Class get_instance_from_db -id $party_id] multirow create attributes section attribute value set list_ids [$party list_ids] foreach dynfield_id [::im::dynfield::Attribute dynfield_attributes -list_ids $list_ids -privilege "read"] { # Initialize the Attribute set element [im::dynfield::Element get_instance_from_db -id [lindex $dynfield_id 0] - list_id [lindex $dynfield_id 1]] set value [$party value [$element attribute_name]] if {[$element multiple_p] && $value ne ""} { set value " [join $value " "] " } if {$value ne ""} { multirow append attributes [$element section_heading] [$element pretty_name] $value } XoDynfields Code Code for display

 cognovís 2008 set class "[::im::dynfield::Class object_type_to_class ${object_type}]“ if {[exists_and_not_null party_id] && [acs_object::object_p -id $party_id]} { set party [::im::dynfield::Class get_instance_from_db -id $party_id] set class [$party class] set object_type [$party object_type] } else { set party [$class create ::party ] $party set object_type $object_type } set list_ids [$party list_ids] if {[exists_and_not_null rel_type]} { lappend list_ids [ams::list::get_list_id -object_type "$rel_type" -list_name "$rel_type"] } set form [::im::dynfield::Form create ::im_company_form -class "$class" -list_ids $list_ids - name "party_ae" -data $party -key "party_id" -submit_link "/intranet-contacts/contact" - export [list [list rel_type $rel_type] [list object_id_two $object_id_two] [list role_two $role_two]]] $form generate XoDynfields Code Code for form generation

 cognovís 2008 XoDynfields also provides custom searches based e.g. on object attributes and relationships to answer questions like: Show me all persons living in Canada between years age From the above search, show me all the work in the US (relationship to a US company) In addition to that the, results (usually a table) can be extended dynamically with attributes, e.g. you could display the companies turnover for the list of young Canadians working in the US. Please head over to contacts/search and start a search (standard ]po[ logins) contacts/search XoDynfields Benefits Searches

 cognovís 2008 Although a lot of code already exists, help from smarter developers is needed for implementing new features: Multi Value Support. Although multi values can be saved correctly in XoDynfields (and displayed), using them in searches is still an outstanding issue At the moment searches are still based on the object types. In the future they should be based on lists (context). Part of the search functionality still needs testing and bug fixing Search needs to be extracted from contacts and put into XoDynfields proper Combined objects over relationships (acs_rels as well as foreign keys) need to be implemented XoDynfields Help needed

 cognovís 2008 Schrödersweg Hamburg Germany Tel: Cell: Fax: Thanks for your attention