Sunteți pe pagina 1din 68

Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps

Sabrina Lui
Mustafa Rassiwala

Lui-Rassiwala 1
Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps


 Understanding DocApps
 DocApp internals
 DocApp deployment
 Sample DocApps and applications
 Back to the future

Lui-Rassiwala 2
Documentum Developer Conference 2001 9/9/01 12:46

What is a DocApp?
Understanding DocApps
 A collection of Docbase objects that are
required for a Documentum based
application
 Can be packaged and deployed to a
target Docbase
Job Method

Object Type PST

Alias Set Document


Lifecycle

Lui-Rassiwala 3
Documentum Developer Conference 2001 9/9/01 12:46

Why Use DocApps


Understanding DocApps
 Efficient transfer of application objects
 Less expensive than writing creation

script
 More control than Dump and Load


 Easy to build and maintain: Developer


Studio
 Versioning support


 One step deployment: DocApp Installer


 Seamless maintenance

Lui-Rassiwala 4
Documentum Developer Conference 2001 9/9/01 12:46

How to Build DocApps


Understanding DocApps
 Screen cam showing the
construction process
 What the DocApp developer does
 Based on a simplified catalog
scenario
 CatalogBase: A product catalog
 Managed by a “catalog manager”

Lui-Rassiwala 5
Documentum Developer Conference 2001 9/9/01 12:46

How to Deploy DocApps


Understanding DocApps
 Screen cam showing the
deployment process
 What the Docbase admin does

Lui-Rassiwala 6
Documentum Developer Conference 2001 9/9/01 12:46

What’s in a DocApp
Understanding DocApps
1. Object Types 6. Job
2. Document 7. Component
Lifecycle 8. Procedure
3. Workflow 9. Method
Template
10. Group
4. Permission Set
Template 11. Data Object
5. Alias Set

Lui-Rassiwala 7
Documentum Developer Conference 2001 9/9/01 12:46

What Lies Beneath


Understanding DocApps
dm_application

dm_app_ref Object_id Object Type

Document
dm_app_ref Object_id lifecycle

 dm_application
 Virtual document of dm_app_ref objects
 dm_app_ref objects point to Docbase
objects by object id

Lui-Rassiwala 8
Documentum Developer Conference 2001 9/9/01 12:46

What Lies Beneath


Understanding DocApps

dm_application

dm_app_ref Object Type

dm_application

 dm_app_refs
 Unique for every Docbase object
 Allow cooperative locking of non
sysobjects

dm_application object contains the deployment options


for the application objects

Lui-Rassiwala 9
Documentum Developer Conference 2001 9/9/01 12:46

Portability
Understanding DocApps
 Development vs. Deployment environment
 Users
 Locations
 Security

Lui-Rassiwala 10
Documentum Developer Conference 2001 9/9/01 12:46

Portability
Understanding DocApps
Manager = Sabrina
Designer = Mustafa

CatalogBase
DocApp

Furnishing
Furnishing Apparel
Apparel Computers
Computers
Manager = Tom Manager = Paul Manager = Jay
Designer = Mike Designer = Frank Designer = Steve

Lui-Rassiwala 11
Documentum Developer Conference 2001 9/9/01 12:46

Portability
Understanding DocApps
 Development vs. Deployment environment
 Users
 Locations
 Security
 Solution: use aliases for Docbase specific
data
 Alias – Docbase environment variable
 Alias value substituted at installation time

Lui-Rassiwala 12
Documentum Developer Conference 2001 9/9/01 12:46

Alias Sets
Understanding DocApps
 Mapping between aliases and actual values.
 Alias Set names are unique within a Docbase.
 Fully specified alias: <alias set
name>.<alias name>
 Aliases may refer to a user, group, location,
permission set or an arbitrary string.

•Alias Sets are mapping between aliases and actual


values. Its almost a table with alias as variables in one
column and the second column contains the values.
•Alias Sets are unique within the docbase. Also aliases
are unique within the alias set which makes each alias
unique within the docbase.
•Aliases are specified along with the alias set name
•Aliases are sort of typed and can be specifically used for
user,group,location and security.
•Most important in the alias dialog is the Prompt for Alias
at installation

Lui-Rassiwala 13
Documentum Developer Conference 2001 9/9/01 12:46

Alias Resolution
Understanding DocApps
 ResolveAlias(IDfSysObject sysObj,
string aliasName)
 Server alias resolution scheme
Alias Set of the document

Alias Set of the session

Alias Set of the user

Alias Set of the docbase

Lui-Rassiwala 14
Documentum Developer Conference 2001 9/9/01 12:46

Alias Substitution
Understanding DocApps
 Value of the alias could vary from
Docbase to Docbase
 DocApp installer prompts user to
specify the value during installation

Development Docbase Furnishing Docbase

Lui-Rassiwala 15
Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps


 Understanding DocApps
 DocApp Internals – Up, Close and Personal
 Permission Set Templates

 Document Lifecycles
 Object Types and Attributes
 Data Objects
 DocApp Deployment
 Sample DocApps and applications
 Back to the future

Lui-Rassiwala 16
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
 PSTs are parameterized Permission Sets
 Accessor name can be a user or
group alias
 PSTs are dynamic and portable
 Server creates a Permission Set when
PST is applied to an object
 Resolves all aliases to real users.

Lui-Rassiwala 17
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Furnishing Docbase
CatalogBase Alias Set
%catalog_manager Tom
Document
%catalog_designer Mike

Lui-Rassiwala 18
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Furnishing Docbase
CatalogBase Alias Set
%catalog_manager Tom
Document
%catalog_designer Mike

Permission Set Template


%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 19
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Furnishing Docbase
CatalogBase Alias Set
%catalog_manager Tom
Document
%catalog_designer Mike

Permission Set Template


%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 20
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Furnishing Docbase
CatalogBase Alias Set
%catalog_manager Tom
Document
%catalog_designer Mike

dm_####_####
Tom DELETE
Permission Set Template Mike READ
%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 21
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Apparel Docbase
CatalogBase Alias Set
%catalog_manager Paul
Document
%catalog_designer Frank

Permission Set Template


%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 22
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Apparel Docbase
CatalogBase Alias Set
%catalog_manager Paul
Document
%catalog_designer Frank

Permission Set Template


%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 23
Documentum Developer Conference 2001 9/9/01 12:46

Permission Set Templates -


Up, Close & Personal
Apparel Docbase
CatalogBase Alias Set
%catalog_manager Paul
Document
%catalog_designer Frank

dm_####_####
Paul DELETE
Permission Set Template Frank READ
%catalog_manager DELETE
%catalog_designer READ

Lui-Rassiwala 24
Documentum Developer Conference 2001 9/9/01 12:46

Document Lifecycle -
Up, Close & Personal
 Mechanism to specify the location, security,
ownership and other policies that govern the
document in each phase of its existence.
 Modeled as a sequence of states and the
transitions between them.
 Entry Criteria

 Actions

Draft Review Publish Retire

Withdrawn

Lui-Rassiwala 25
Documentum Developer Conference 2001 9/9/01 12:46

Document Lifecycle -
Up, Close & Personal

 Object is associated with lifecycle using


attach API
 Object state is changed by promote,
demote APIs
 Aliases can be used in lifecycle actions
 Aliases are resolved by the alias set
linked to object at lifecycle attach

Lui-Rassiwala 26
Documentum Developer Conference 2001 9/9/01 12:46

Document Lifecycle -
Up, Close & Personal
Furnishing
Apparel
Docbase B
CatalogBase
%Catalog_Manager tuser1
Tom Owner
Owner
Owner===Sabrina
tuser1
Tom

Document
Draft Review Retired Lifecycle

Set Owner to
%Catalog_Manager

Let’s look at closely how aliases are used in lifecycle.

Lui-Rassiwala 27
Documentum Developer Conference 2001 9/9/01 12:46

Workflow Templates -
Up, Close & Personal

 Task performer can be an alias


 Alias resolved at runtime
 From Alias Set of previous task
performer
 From Alias Set of the objects that route
in Workflow

Lui-Rassiwala 28
Documentum Developer Conference 2001 9/9/01 12:46

Object Types -
Up, Close & Personal

 Multiple locale properties


 Constraints and Error Message
 Docbasic expression
 Default Permission Set of object
instances

Set up locale specific information for client


applications.(e.g. label_text….)

Lui-Rassiwala 29
Documentum Developer Conference 2001 9/9/01 12:46

Object Types -
Up, Close & Personal

Lui-Rassiwala 30
Documentum Developer Conference 2001 9/9/01 12:46

Object Types -
Up, Close & Personal

Lui-Rassiwala 31
Documentum Developer Conference 2001 9/9/01 12:46

Attributes -
Up, Close & Personal

 Input Mask
 e.g. ###-##-#### as SSN
 Category
 Value Mapping
 mapping between actual and display
values.

Lui-Rassiwala 32
Documentum Developer Conference 2001 9/9/01 12:46

Attributes -
Up, Close & Personal
 Value Assistance
 Defines possible values of the
attribute:
 Fixed list
 Custom query
 Conditional Value Assistance
 populates values based on other
attribute(s)

Lui-Rassiwala 33
Documentum Developer Conference 2001 9/9/01 12:46

Attributes -
Up, Close & Personal

•Let’s look at our example in the screen cam.


•I added another attribute, called action, which define the
possible action the the users can do depends on the
status of the product.
•Here is the attribute editor which you can define some
locale sensitive information, like labels.

Lui-Rassiwala 34
Documentum Developer Conference 2001 9/9/01 12:46

Attributes -
Up, Close & Personal

•Here is how you define conditional value assistance.


•As you can see in the table, the possible value of the
action are dpendes on the attribute, status.
•If the status is 0, means out of stock, the possible
actions are wish list, continue shopping…

Lui-Rassiwala 35
Documentum Developer Conference 2001 9/9/01 12:46

Attributes -
Up, Close & Personal

•After I have defined the attribute rules, let’s look at how


we use them in DTC.
•I have an object instance of this custom type.
•In the properties dialog, I have one more tab, details,
which I have categorize status and action.
•Since I have a complete list of the status attribute, I can
only choose one of the three values.
•If I choose in stock, the possible values of action are
populated and you can choose the three values.
•What if I change the status to be Discontinued, the
values of the action are re-populated immediately. As
you can see, I can only choose from these two items.

Lui-Rassiwala 36
Documentum Developer Conference 2001 9/9/01 12:46

Data Objects -
Up, Close & Personal
 Folder,Cabinets and Documents.
 All sysobjects in the folders/cabinets
except lifecycles, workflow templates,
jobs, methods and compoents.
 Custom types need to be included in the
DocApp, to be able to archive instances
of these custom types.

Content Transfer options to transfer container objects (folder and


cabinets) based on application needs.

Lui-Rassiwala 37
Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps

 Understanding DocApps
 DocApp Internals
 DocApp Deployment
 DocApp Archive
 DocApp Installation
 Deployment Options

 Sample DocApps and applications


 Back to the future

Lui-Rassiwala 38
Documentum Developer Conference 2001 9/9/01 12:46

DocApp Archive -
DocApp Deployment
 What is a DocApp archive?
 Archive file is serialized java
 Snap shot of the Docbase objects at the time
of archival
 Archive process navigates
dm_application VDM archiving objects at
every node
 Archive log reports the objects archived

Lui-Rassiwala 39
Documentum Developer Conference 2001 9/9/01 12:46

Archival Rules -
DocApp Deployment

 Objective: Archive all objects required for the


application to work
 Supertypes archived for custom types
 Data Objects and Custom Types
 Document Lifecycle association
 dm_relations and Relation Type

Lui-Rassiwala 40
Documentum Developer Conference 2001 9/9/01 12:46

Installation Process -
DocApp Deployment
 Types are installed
 Transaction opened
 Alias sets are installed
 User specifies valid values for aliases
 All other objects are installed
 Transaction is committed
 Relations reestablished between data
objects
 Documents attached to Lifecycles

Lui-Rassiwala 41
Documentum Developer Conference 2001 9/9/01 12:46

DocApp Installer -
DocApp Deployment
 Interactive vs Silent Mode
 Alias Resolution
 Alias resolution dialog
 Properties file
 Status of installation is reported in the
log file
 DocApp Installer is backward compatible
 Can handle archives created using older
versions of DDS

Lui-Rassiwala 42
Documentum Developer Conference 2001 9/9/01 12:46

Controlling Object Properties -


DocApp Deployment
 Control Target Owner, Target Permission
Set and Target Location
 Aliases are used to specify these
properties
 Default Alias Set contains these aliases
 Alias sets are installed prior to
other objects
 Owner, Permission Set and Location of
objects is set to the current alias value

These aliases are in the default alias set of the DocApp.

Lui-Rassiwala 43
Documentum Developer Conference 2001 9/9/01 12:46

•Default values may not be the behavior that is desired


for your application. You may want to control the
location,owner and permission set of the objects being
installed.
•But you may not know the target location, acl and
permission at design time. How are you going to specify
the values.
•Well we are going to fall back on our friend “Aliases”.
•Aliases are used to specify these properties.
•Here it is important to realize that this scheme works
because alias sets are installed before other objects.
•Once you have done alias value substitution, the alias
set will have new values for these properties which is
valid in the current docbase.
•Docbase objects will then get these current alias values.

Lui-Rassiwala 44
Documentum Developer Conference 2001 9/9/01 12:46

•Default values may not be the behavior that is desired


for your application. You may want to control the
location,owner and permission set of the objects being
installed.
•But you may not know the target location, acl and
permission at design time. How are you going to specify
the values.
•Well we are going to fall back on our friend “Aliases”.
•Aliases are used to specify these properties.
•Here it is important to realize that this scheme works
because alias sets are installed before other objects.
•Once you have done alias value substitution, the alias
set will have new values for these properties which is
valid in the current docbase.
•Docbase objects will then get these current alias values.

Lui-Rassiwala 45
Documentum Developer Conference 2001 9/9/01 12:46

Controlling Content Transfer -


DocApp Deployment

 Control the extent of the content archived


 For all container objects you can transfer:

Complete First Level Folder Folder/


Content Content Hierarchy Cabinet

Lui-Rassiwala 46
Documentum Developer Conference 2001 9/9/01 12:46

Controlling Content Transfer -


DocApp Deployment

•DocApps may change over time, that is the docbase


objects may require to be updated periodically driven
may be changes in business process.
•Some objects may need to be updated while other
objects may need to be versioned and then there might
be some objects which do not require any changes.
•Well you can control the update of every docbase
object.
•Also these options get applied only at install time and
when we find that the objects are already
existing(second install).
•At archive time all the objects are archived irrespective
of the upgrade option(since the docapp could be installed
on a fresh docbase where you would need to install all
the objects)

Lui-Rassiwala 47
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment
 Control the installation of objects when a
previous version exists in the target
Docbase
 Specify that the archive version
 Overwrites existing object
 Is installed as the next version
 Is not installed
 Default
 Sysobjects are always versioned
 Persistent objects are always overwritten

Lui-Rassiwala 48
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment
Criteria To Detect Existing Objects
Object Detection Criteria
Method, Alias Set, Same Name
Object Type, Permission
Set Template
Lifecycle, Workflow, Same Name, Same
Job, Procedure, Object Type and Same
Components, Data Location
Objects

Lui-Rassiwala 49
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

•Whats the criteria to detect that the object contained in


the archive already exists in the docbase.
•We have a table listing all the objects in the docapp and
their detection criteria.
•Its important to know that for sysobjects contained in the
archive we know what the name, type and more
importantly the location where the object is being
installed. We run a query with these attributes and see if
the object already exists.
•If the object exists then the upgrade rule specified for
the object is followed.

Lui-Rassiwala 50
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

Overwrite

Document1
Document1

Document2
Document2

Document3
Document3

Lui-Rassiwala 51
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

Overwrite

Document1
Document1 Document1
Document1

Document2
Document2 Document2
Document2

Document3
Document3 Document3
Document3

Lui-Rassiwala 52
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

v1.0
Overwrite

Document1
Document1 Document1
Document1

Document2
Document2 Document2
Document2

Document3
Document3 Document3
Document3

Lui-Rassiwala 53
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

Overwrite

Document1
Document1 Document1
Document1
v1.2
Document2
Document2 Document2
Document2

Document3
Document3 Document3
Document3

Document4
Document4

Lui-Rassiwala 54
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

Overwrite

Document1
Document1 Document1
Document1
v1.2
Document2
Document2 Document2
Document2

Document3
Document3 Document3
Document3

Document4
Document4
Document4
Document4

Lui-Rassiwala 55
Documentum Developer Conference 2001 9/9/01 12:46

Controlling DocApp Upgrade -


DocApp Deployment

Source Docbase Target Docbase

Overwrite v1.0

Document1
Document1 Document1
Document1
v1.2
Document2
Document2 Document2
Document2

Document3
Document3 Document3
Document3

Document4
Document4
Document4
Document4

Lui-Rassiwala 56
Documentum Developer Conference 2001 9/9/01 12:46

Pre and Post Install Procedures


DocApp Deployment
 Signature
 PreInstall(String
PreInstall(String docbaseName,
docbaseName, String
userName,
userName, String loginTicket)
loginTicket)
 Handling Error Condition
 dmExit(
dmExit(int status),0 = success, 1 = failure
 PreInstall failure - DocApp will not
be installed
 PostInstall failure - No Consequences
 Procedure output is redirected to
Installer log

Lui-Rassiwala 57
Documentum Developer Conference 2001 9/9/01 12:46

Pre and Post Install Procedures


DocApp Deployment

•Sometimes there is a need to make the docbase ready


before you install the DocApp and your application(or to
make your application work)
•Also there might be additional steps you may want to do
which is outside the realm of DocApps and very specific
to your application.
•That’s where Pre and Post Install scripts fit in.
•These are docbasic scripts.
•You have to create a dm_procedure object in the
docbase and then include the procedure in the
DocApp.This is important to note.
•Post Install failure no consequence to the DocApp
installation.(No rollback of the docapp possible)
•Also whatever you do in the PreInstall procedure you
are responsible and cannot be rollbacked in case of
failure.

Lui-Rassiwala 58
Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps

 Understanding DocApps
 DocApp Internals
 DocApp Deployment
 Sample DocApps and Applications
 WebPublisher DocApp

 XML Application

 Back to the future

Lui-Rassiwala 59
Documentum Developer Conference 2001 9/9/01 12:46

WebPublisher -
Sample DocApps and Applications

•Whats interesting about WebPublisher DocApp.


•Well for one it is exactly the paradigm we have been
talking about in this presentation.
•You have WebPublisher as the application which
depends on certain Docbase objects to be set up before
you can use the application.
•All the docbase objects required are bundled in the
WebPublisher DocApp.
•They see the same maintenance issues that we have
spoken about
•New versions of the application require new Docbase
objects and more importantly require changes to the
existing ones in the customers docbase.\
•They use all the upgrade and controlling properties
option.

Lui-Rassiwala 60
Documentum Developer Conference 2001 9/9/01 12:46

WebPublisher -
Sample DocApps and Applications

•They have the preinstall script which use to be run


before the DocApp was installed and is now being
packaged with the DocApp.
•Talk about how they use the content transfer options
and the folder location scheme to create new folders in
the already existing cabinet.

Lui-Rassiwala 61
Documentum Developer Conference 2001 9/9/01 12:46

XML Application -
Sample DocApps and Applications

 XML Applications may require Object


Types, Permission Set, Lifecycles,
Workflow Templates and other Docbase
Objects.
 DocApps are delivery mechanism
 CellularPhone folder contains config file,
DTD, supporting documents.

Lui-Rassiwala 62
Documentum Developer Conference 2001 9/9/01 12:46

XML Application -
Sample DocApps and Applications

Lui-Rassiwala 63
Documentum Developer Conference 2001 9/9/01 12:46

Building Effective DocApps

 Understanding DocApps
 DocApp Internals
 DocApp Deployment
 Sample DocApps and applications
 Back to the future
 DocApp UnInstall
 Internal Deployment Mode

Lui-Rassiwala 64
Documentum Developer Conference 2001 9/9/01 12:46

DocApp Uninstall –
Back to the Future
 Uninstall DocApp Versions
 Dependency checking for all Docbase
objects
 Options to control the deletion of
Docbase objects
 Rollback to previous definitions for
Object Types, PST and Alias Sets
 Extensive Reporting mechanism

Lui-Rassiwala 65
Documentum Developer Conference 2001 9/9/01 12:46

Internal Deployment Mode -


Back to the Future

 Deployment Environment identical to


Development
 Properties of Docbase objects should
remain the same as in the Development
 Proposal
 ACL

 Users and groups


 Formats

Lui-Rassiwala 66
Documentum Developer Conference 2001 9/9/01 12:46

Q&A

Job
Method

Object Type PST

Alias Set
Document
Lifecycle

Lui-Rassiwala 67
Documentum Developer Conference 2001 9/9/01 12:46

Summary

 Efficient Transfer of Application


Objects
 Development and Deployment Tools
 Support for Application Maintenance
and Upgrade

Lui-Rassiwala 68

S-ar putea să vă placă și