emc document um building effective doc apps
TRANSCRIPT
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 1
Sabrina Sabrina LuiLuiMustafa Mustafa RassiwalaRassiwala
Building EffectiveBuilding Effective DocApps DocApps
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 2
Building EffectiveBuilding Effective DocApps DocApps
�� UnderstandingUnderstanding DocApps DocApps�� DocAppDocApp internals internals�� DocAppDocApp deployment deployment�� SampleSample DocApps DocApps and applications and applications�� Back to the futureBack to the future
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 3
What is aWhat is a DocApp DocApp??UnderstandingUnderstanding DocApps DocApps
�� A collection ofA collection of Docbase Docbase objects that are objects that arerequired for arequired for a Documentum Documentum based basedapplicationapplication
�� Can be packaged and deployed to aCan be packaged and deployed to atargettarget Docbase Docbase
Object Type
Job Method
PST
Document Lifecycle
Alias Set
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 4
Why UseWhy Use DocApps DocAppsUnderstandingUnderstanding DocApps DocApps� Efficient transfer of application objects
� Less expensive than writing creationscript
� More control than Dump and Load� Easy to build and maintain: Developer
Studio� Versioning support
� One step deployment: DocApp Installer� Seamless maintenance
� Efficient transfer of application objects� Less expensive than writing creation
script� More control than Dump and Load
� Easy to build and maintain: DeveloperStudio� Versioning support
� One step deployment: DocApp Installer� Seamless maintenance
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 5
How to BuildHow to Build DocApps DocAppsUnderstandingUnderstanding DocApps DocApps
�� Screen cam showing theScreen cam showing theconstruction processconstruction process
�� What theWhat the DocApp DocApp developer does developer does�� Based on a simplified catalogBased on a simplified catalog
scenarioscenario�� CatalogBaseCatalogBase: A product catalog: A product catalog�� Managed by a “catalog manager”Managed by a “catalog manager”
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 6
How to DeployHow to Deploy DocApps DocAppsUnderstandingUnderstanding DocApps DocApps
�� Screen cam showing theScreen cam showing thedeployment processdeployment process
�� What theWhat the Docbase Docbase admin does admin does
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 7
What’s in aWhat’s in a DocApp DocAppUnderstandingUnderstanding DocApps DocApps
1. Object Types1. Object Types2. Document2. Document
LifecycleLifecycle3. Workflow3. Workflow
TemplateTemplate4. Permission Set4. Permission Set
TemplateTemplate5. Alias Set5. Alias Set
6. Job 6. Job 7. Component 7. Component 8. Procedure 8. Procedure 9. Method 9. Method10. Group10. Group11. Data Object11. Data Object
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 8
What Lies BeneathWhat Lies BeneathUnderstandingUnderstanding DocApps DocApps
�� dm_applicationdm_application�� Virtual document of dm_app_ref objectsVirtual document of dm_app_ref objects
�� dm_app_ref objects point todm_app_ref objects point to Docbase Docbaseobjects by object idobjects by object id
dm_app_refdm_app_ref
dm_app_refdm_app_ref Object_idObject_id DocumentDocumentlifecyclelifecycle
Object TypeObject Type
dm_applicationdm_application
Object_idObject_id
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 9
What Lies BeneathWhat Lies BeneathUnderstandingUnderstanding DocApps DocApps
�� dm_app_refsdm_app_refs�� Unique for everyUnique for every Docbase Docbase object object�� Allow cooperative locking of nonAllow cooperative locking of non
sysobjectssysobjects
dm_app_refdm_app_ref Object TypeObject Type
dm_applicationdm_application
dm_applicationdm_application
dm_application object contains the deployment optionsfor the application objects
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 10
PortabilityPortabilityUnderstandingUnderstanding DocApps DocApps
�� Development vs. Deployment environmentDevelopment vs. Deployment environment�� UsersUsers�� LocationsLocations�� SecuritySecurity
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 11
PortabilityPortabilityUnderstandingUnderstanding DocApps DocApps
FurnishingFurnishingFurnishing ApparelApparelApparel ComputersComputersComputersManager = TomManager = TomDesigner = MikeDesigner = Mike
Manager = JayManager = Jay Designer = Steve Designer = Steve
Manager = PaulManager = Paul Designer = Frank Designer = Frank
CatalogBaseCatalogBaseDocAppDocApp
Manager = SabrinaManager = SabrinaDesigner = MustafaDesigner = Mustafa
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 12
PortabilityPortabilityUnderstandingUnderstanding DocApps DocApps
�� Development vs. Deployment environmentDevelopment vs. Deployment environment�� UsersUsers�� LocationsLocations�� SecuritySecurity
�� Solution: use aliases forSolution: use aliases for Docbase Docbase specific specificdatadata
�� Alias –Alias – Docbase Docbase environment variable environment variable�� Alias value substituted at installation timeAlias value substituted at installation time
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 13
Alias SetsAlias SetsUnderstandingUnderstanding DocApps DocApps
� Mapping between aliases and actual values.� Alias Set names are unique within a Docbase.� Fully specified alias: <alias set<alias set
name>.<alias name>name>.<alias name>
� Aliases may refer to a user, group, location,permission set or an arbitrary string.
•Alias Sets are mapping between aliases and actualvalues. Its almost a table with alias as variables in onecolumn and the second column contains the values.•Alias Sets are unique within the docbase. Also aliasesare unique within the alias set which makes each aliasunique within the docbase.•Aliases are specified along with the alias set name•Aliases are sort of typed and can be specifically used foruser,group,location and security.•Most important in the alias dialog is the Prompt for Aliasat installation
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 14
Alias ResolutionAlias ResolutionUnderstandingUnderstanding DocApps DocApps
�� ResolveAliasResolveAlias((IDfSysObject sysObjIDfSysObject sysObj,,string string aliasNamealiasName))
�� Server alias resolution schemeServer alias resolution schemeAlias Set of the documentAlias Set of the document
Alias Set of the sessionAlias Set of the session
Alias Set of the userAlias Set of the user
Alias Set of the Alias Set of the docbasedocbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 15
Alias SubstitutionAlias SubstitutionUnderstandingUnderstanding DocApps DocApps
�� Value of the alias could vary fromValue of the alias could vary fromDocbaseDocbase to to Docbase Docbase
�� DocAppDocApp installer prompts user to installer prompts user tospecify the value during installationspecify the value during installation
DevelopmentDevelopment Docbase Docbase FurnishingFurnishing Docbase Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 16
Building EffectiveBuilding Effective DocApps DocApps
�� UnderstandingUnderstanding DocApps DocApps�� DocAppDocApp Internals – Up, Close and Personal Internals – Up, Close and Personal
�� Permission Set TemplatesPermission Set Templates�� Document LifecyclesDocument Lifecycles�� Object Types and AttributesObject Types and Attributes�� Data ObjectsData Objects
�� DocAppDocApp Deployment Deployment�� SampleSample DocApps DocApps and applications and applications�� Back to the futureBack to the future
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 17
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
�� PSTsPSTs are parameterized Permission Sets are parameterized Permission Sets�� AccessorAccessor name can be a user or name can be a user or
group alias group alias�� PSTsPSTs are dynamic and portable are dynamic and portable�� Server creates a Permission Set whenServer creates a Permission Set when
PST is applied to an objectPST is applied to an object�� Resolves all aliases to real users.Resolves all aliases to real users.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 18
DocumentDocument
FurnishingFurnishing Docbase Docbase
%catalog_manager Tom%catalog_manager Tom%catalog_designer Mike%catalog_designer Mike
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 19
FurnishingFurnishing Docbase Docbase
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Tom%catalog_manager Tom%catalog_designer Mike%catalog_designer Mike
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 20
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Tom%catalog_manager Tom%catalog_designer Mike%catalog_designer Mike
CatalogBase CatalogBase Alias SetAlias Set
FurnishingFurnishing Docbase Docbase
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 21
FurnishingFurnishing Docbase Docbase
TomTom DELETEDELETEMikeMike READREAD
dm_####_####dm_####_####
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Tom%catalog_manager Tom%catalog_designer Mike%catalog_designer Mike
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 22
ApparelApparel Docbase Docbase
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Paul%catalog_manager Paul%catalog_designer Frank%catalog_designer Frank
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 23
ApparelApparel Docbase Docbase
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Paul%catalog_manager Paul%catalog_designer Frank%catalog_designer Frank
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 24
ApparelApparel Docbase Docbase
PaulPaul DELETEDELETEFrankFrank READREAD
dm_####_####dm_####_####
%catalog_manager DELETE%catalog_manager DELETE%catalog_designer READ%catalog_designer READ
Permission Set TemplatePermission Set Template
DocumentDocument%catalog_manager Paul%catalog_manager Paul%catalog_designer Frank%catalog_designer Frank
CatalogBase CatalogBase Alias SetAlias Set
Permission Set Templates -Permission Set Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 25
�� Mechanism to specify the location, security,Mechanism to specify the location, security,ownership and other policies that govern theownership and other policies that govern thedocument in each phase of its existence.document in each phase of its existence.
�� Modeled as a sequence of states and theModeled as a sequence of states and thetransitions between them.transitions between them.�� Entry CriteriaEntry Criteria�� ActionsActions
Document Lifecycle -Document Lifecycle -Up, Close & PersonalUp, Close & Personal
Draft Review Publish Retire
Withdrawn
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 26
Document Lifecycle -Document Lifecycle -Up, Close & PersonalUp, Close & Personal
�� Object is associated with lifecycle usingObject is associated with lifecycle usingattach APIattach API
�� Object state is changed by promote,Object state is changed by promote,demote APIsdemote APIs
�� Aliases can be used in lifecycle actionsAliases can be used in lifecycle actions�� Aliases are resolved by the alias setAliases are resolved by the alias set
linked to object at lifecycle attachlinked to object at lifecycle attach
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 27
%Catalog_Manager tuser1CatalogBaseCatalogBase
%Catalog_Manager Tom Owner = Sabrina
Draft Review RetiredDraft ReviewDocumentLifecycle
Docbase BApparelFurnishing
Owner = tuser1Owner = Tom
Set Owner to %Catalog_Manager
Document Lifecycle -Document Lifecycle -Up, Close & PersonalUp, Close & Personal
Let’s look at closely how aliases are used in lifecycle.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 28
�� Task performer can be an aliasTask performer can be an alias�� Alias resolved at runtimeAlias resolved at runtime
�� From Alias Set of previous taskFrom Alias Set of previous taskperformerperformer
�� From Alias Set of the objects that routeFrom Alias Set of the objects that routein Workflowin Workflow
Workflow Templates -Workflow Templates -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 29
Object Types -Object Types -Up, Close & PersonalUp, Close & Personal
�� Multiple locale propertiesMultiple locale properties�� Constraints and Error MessageConstraints and Error Message
�� DocbasicDocbasic expression expression
�� Default Permission Set of objectDefault Permission Set of objectinstancesinstances
Set up locale specific information for clientapplications.(e.g. label_text….)
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 30
Object Types -Object Types -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 31
Object Types -Object Types -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 32
Attributes -Attributes -Up, Close & PersonalUp, Close & Personal
�� Input MaskInput Mask�� e.g. ###-##-#### as SSNe.g. ###-##-#### as SSN
�� CategoryCategory�� Value MappingValue Mapping
�� mapping between actual and displaymapping between actual and displayvalues.values.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 33
� Value Assistance� Defines possible values of the
attribute:� Fixed list� Custom query
� Conditional Value Assistance� populates values based on other
attribute(s)
Attributes -Attributes -Up, Close & PersonalUp, Close & Personal
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 34
Attributes -Attributes -Up, Close & PersonalUp, Close & Personal
•Let’s look at our example in the screen cam.•I added another attribute, called action, which define thepossible action the the users can do depends on thestatus of the product.•Here is the attribute editor which you can define somelocale sensitive information, like labels.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 35
Attributes -Attributes -Up, Close & PersonalUp, Close & Personal
•Here is how you define conditional value assistance.•As you can see in the table, the possible value of theaction are dpendes on the attribute, status.•If the status is 0, means out of stock, the possibleactions are wish list, continue shopping…
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 36
Attributes -Attributes -Up, Close & PersonalUp, Close & Personal
•After I have defined the attribute rules, let’s look at howwe 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 canonly choose one of the three values.•If I choose in stock, the possible values of action arepopulated and you can choose the three values.•What if I change the status to be Discontinued, thevalues of the action are re-populated immediately. Asyou can see, I can only choose from these two items.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 37
�� Folder,Cabinets and Documents.Folder,Cabinets and Documents.�� All All sysobjectssysobjects in the folders/cabinets in the folders/cabinets
except lifecycles, workflow templates,except lifecycles, workflow templates,jobs, methods and jobs, methods and compoentscompoents..
�� Custom types need to be included in theCustom types need to be included in theDocAppDocApp, to be able to archive instances, to be able to archive instancesof these custom types.of these custom types.
Data Objects -Data Objects -Up, Close & PersonalUp, Close & Personal
Content Transfer options to transfer container objects (folder andcabinets) based on application needs.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 38
Building EffectiveBuilding Effective DocApps DocApps
�� UnderstandingUnderstanding DocApps DocApps�� DocAppDocApp Internals Internals�� DocAppDocApp Deployment Deployment
�� DocAppDocApp Archive Archive�� DocAppDocApp Installation Installation�� Deployment OptionsDeployment Options
�� SampleSample DocApps DocApps and applications and applications�� Back to the futureBack to the future
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 39
DocAppDocApp Archive - Archive -DocAppDocApp Deployment Deployment
�� What is aWhat is a DocApp DocApp archive? archive?�� Archive file is serialized javaArchive file is serialized java�� Snap shot of theSnap shot of the Docbase Docbase objects at the time objects at the time
of archivalof archival�� Archive process navigatesArchive process navigates
dm_application VDM archiving objects atdm_application VDM archiving objects atevery nodeevery node
�� Archive log reports the objects archivedArchive log reports the objects archived
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 40
Archival Rules -Archival Rules -DDocAppocApp Deployment Deployment
�� Objective: Archive all objects required for theObjective: Archive all objects required for theapplication to workapplication to work
�� SupertypesSupertypes archived for custom types archived for custom types�� Data Objects and Custom TypesData Objects and Custom Types�� Document Lifecycle associationDocument Lifecycle association�� dm_relations and Relation Typedm_relations and Relation Type
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 41
Installation Process -Installation Process -DocAppDocApp Deployment Deployment
�� Types are installedTypes are installed�� Transaction openedTransaction opened�� Alias sets are installedAlias sets are installed
�� User specifies valid values for aliasesUser specifies valid values for aliases�� All other objects are installedAll other objects are installed�� Transaction is committedTransaction is committed�� Relations reestablished between dataRelations reestablished between data
objectsobjects�� Documents attached to LifecyclesDocuments attached to Lifecycles
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 42
DocAppDocApp Installer - Installer -DocAppDocApp Deployment Deployment
�� Interactive Interactive vs vs Silent ModeSilent Mode�� Alias ResolutionAlias Resolution
�� Alias resolution dialogAlias resolution dialog�� Properties fileProperties file
�� Status of installation is reported in theStatus of installation is reported in thelog filelog file
�� DocAppDocApp Installer is backward compatible Installer is backward compatible�� Can handle archives created using olderCan handle archives created using older
versions of DDSversions of DDS
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 43
Controlling Object Properties -Controlling Object Properties -DocAppDocApp Deployment Deployment
�� Control Target Owner, Target PermissionControl Target Owner, Target PermissionSet and Target LocationSet and Target Location
�� Aliases are used to specify theseAliases are used to specify thesepropertiesproperties
�� Default Alias Set contains these aliasesDefault Alias Set contains these aliases�� Alias sets are installed prior toAlias sets are installed prior to
other objectsother objects�� Owner, Permission Set and Location ofOwner, Permission Set and Location of
objects is set to the current alias valueobjects is set to the current alias value
These aliases are in the default alias set of the DocApp.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 44
•Default values may not be the behavior that is desiredfor your application. You may want to control thelocation,owner and permission set of the objects beinginstalled.•But you may not know the target location, acl andpermission at design time. How are you going to specifythe 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 worksbecause alias sets are installed before other objects.•Once you have done alias value substitution, the aliasset will have new values for these properties which isvalid in the current docbase.•Docbase objects will then get these current alias values.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 45
•Default values may not be the behavior that is desiredfor your application. You may want to control thelocation,owner and permission set of the objects beinginstalled.•But you may not know the target location, acl andpermission at design time. How are you going to specifythe 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 worksbecause alias sets are installed before other objects.•Once you have done alias value substitution, the aliasset will have new values for these properties which isvalid in the current docbase.•Docbase objects will then get these current alias values.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 46
Controlling Content Transfer -Controlling Content Transfer -DocAppDocApp Deployment Deployment
�� Control the extent of the content archivedControl the extent of the content archived�� For all container objects you can transfer:For all container objects you can transfer:
CompleteContent
First LevelContent
FolderHierarchy
Folder/Cabinet
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 47
Controlling Content Transfer -Controlling Content Transfer -DocAppDocApp Deployment Deployment
•DocApps may change over time, that is the docbaseobjects may require to be updated periodically drivenmay be changes in business process.•Some objects may need to be updated while otherobjects may need to be versioned and then there mightbe some objects which do not require any changes.•Well you can control the update of every docbaseobject.•Also these options get applied only at install time andwhen we find that the objects are alreadyexisting(second install).•At archive time all the objects are archived irrespectiveof the upgrade option(since the docapp could be installedon a fresh docbase where you would need to install allthe objects)
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 48
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
�� Control the installation of objects when aControl the installation of objects when aprevious version exists in the targetprevious version exists in the targetDocbaseDocbase
�� Specify that the archive versionSpecify that the archive version�� Overwrites existing objectOverwrites existing object�� Is installed as the next versionIs installed as the next version�� Is not installedIs not installed
�� DefaultDefault�� SysobjectsSysobjects are always versioned are always versioned�� Persistent objects are always overwrittenPersistent objects are always overwritten
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 49
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Same Name, SameSame Name, SameObject Type and SameObject Type and SameLocationLocation
Lifecycle, Workflow,Lifecycle, Workflow,Job, Procedure,Job, Procedure,Components, DataComponents, DataObjectsObjects
Same NameSame NameMethod, Alias Set,Method, Alias Set,Object Type, PermissionObject Type, PermissionSet TemplateSet Template
Detection CriteriaDetection CriteriaObjectObjectCriteria To Detect Existing ObjectsCriteria To Detect Existing Objects
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 50
ControllingControlling DocApp DocApp Upgrade - Upgrade - DocAppDocApp Deployment Deployment
•Whats the criteria to detect that the object contained inthe archive already exists in the docbase.•We have a table listing all the objects in the docapp andtheir detection criteria.•Its important to know that for sysobjects contained in thearchive we know what the name, type and moreimportantly the location where the object is beinginstalled. We run a query with these attributes and see ifthe object already exists.•If the object exists then the upgrade rule specified forthe object is followed.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 51
Document1Document1
Document2Document2
Document3Document3
Overwrite
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 52
Document1Document1
Document2Document2
Document3Document3
Overwrite
Document1Document1
Document2Document2
Document3Document3
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 53
Document1Document1
Document2Document2
Document3Document3
Overwrite
Document1Document1
Document2Document2
Document3Document3
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
v1.0
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 54
Document1Document1
Document2Document2
Document3Document3
v1.2
Document4Document4
Overwrite
Document1Document1
Document2Document2
Document3Document3
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 55
Document1Document1
Document2Document2
Document3Document3
v1.2
Document4Document4 Document4Document4
Overwrite
Document1Document1
Document2Document2
Document3Document3
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 56
Document1Document1
Document2Document2
Document3Document3
v1.2
Document4Document4 Document4Document4
Overwrite v1.0
Document1Document1
Document2Document2
Document3Document3
ControllingControlling DocApp DocApp Upgrade - Upgrade -DocAppDocApp Deployment Deployment
Source Docbase Target Docbase
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 57
Pre and Post Install ProceduresPre and Post Install ProceduresDocAppDocApp Deployment Deployment
�� SignatureSignature�� PreInstallPreInstall(String (String docbaseNamedocbaseName, String, String
userNameuserName, String , String loginTicketloginTicket))�� Handling Error ConditionHandling Error Condition
�� dmExitdmExit((intint status),0 = success, 1 = failure status),0 = success, 1 = failure�� PreInstallPreInstall failure - failure - DocApp DocApp will not will not
be installedbe installed�� PostInstallPostInstall failure - No Consequences failure - No Consequences�� Procedure output is redirected toProcedure output is redirected to
Installer logInstaller log
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 58
Pre and Post Install ProceduresPre and Post Install ProceduresDocAppDocApp Deployment Deployment
•Sometimes there is a need to make the docbase readybefore you install the DocApp and your application(or tomake your application work)•Also there might be additional steps you may want to dowhich is outside the realm of DocApps and very specificto 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 thedocbase and then include the procedure in theDocApp.This is important to note.•Post Install failure no consequence to the DocAppinstallation.(No rollback of the docapp possible)•Also whatever you do in the PreInstall procedure youare responsible and cannot be rollbacked in case offailure.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 59
Building EffectiveBuilding Effective DocApps DocApps
�� UnderstandingUnderstanding DocApps DocApps�� DocAppDocApp Internals Internals�� DocAppDocApp Deployment Deployment�� SampleSample DocApps DocApps and Applications and Applications
�� WebPublisher DocAppWebPublisher DocApp�� XML ApplicationXML Application
�� Back to the futureBack to the future
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 60
WebPublisherWebPublisher - -SampleSample DocApps DocApps and Applications and Applications
•Whats interesting about WebPublisher DocApp.•Well for one it is exactly the paradigm we have beentalking about in this presentation.•You have WebPublisher as the application whichdepends on certain Docbase objects to be set up beforeyou can use the application.•All the docbase objects required are bundled in theWebPublisher DocApp.•They see the same maintenance issues that we havespoken about•New versions of the application require new Docbaseobjects and more importantly require changes to theexisting ones in the customers docbase.\•They use all the upgrade and controlling propertiesoption.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 61
WebPublisherWebPublisher - -SampleSample DocApps DocApps and Applications and Applications
•They have the preinstall script which use to be runbefore the DocApp was installed and is now beingpackaged with the DocApp.•Talk about how they use the content transfer optionsand the folder location scheme to create new folders inthe already existing cabinet.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 62
XML Application -XML Application -SampleSample DocApps DocApps and Applications and Applications
�� XML Applications may require ObjectXML Applications may require ObjectTypes, Permission Set, Lifecycles,Types, Permission Set, Lifecycles,Workflow Templates and otherWorkflow Templates and other Docbase DocbaseObjects.Objects.
�� DocAppsDocApps are delivery mechanism are delivery mechanism�� CellularPhone CellularPhone folder contains folder contains config config file,file,
DTD, supporting documents.DTD, supporting documents.
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 63
XML Application -XML Application -SampleSample DocApps DocApps and Applications and Applications
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 64
Building EffectiveBuilding Effective DocApps DocApps
�� UnderstandingUnderstanding DocApps DocApps�� DocAppDocApp Internals Internals�� DocAppDocApp Deployment Deployment�� SampleSample DocApps DocApps and applications and applications�� Back to the futureBack to the future
�� DocApp UnInstallDocApp UnInstall�� Internal Deployment ModeInternal Deployment Mode
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 65
DocAppDocApp Uninstall – Uninstall –Back to the FutureBack to the Future
�� UninstallUninstall DocApp DocApp Versions Versions�� Dependency checking for allDependency checking for all Docbase Docbase
objectsobjects�� Options to control the deletion ofOptions to control the deletion of
DocbaseDocbase objects objects�� Rollback to previous definitions forRollback to previous definitions for
Object Types, PST and Alias SetsObject Types, PST and Alias Sets�� Extensive Reporting mechanismExtensive Reporting mechanism
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 66
Internal Deployment Mode -Internal Deployment Mode -Back to the FutureBack to the Future
�� Deployment Environment identical toDeployment Environment identical toDevelopmentDevelopment
�� Properties ofProperties of Docbase Docbase objects should objects shouldremain the same as in the Developmentremain the same as in the Development
�� ProposalProposal�� ACLACL�� Users and groupsUsers and groups�� FormatsFormats
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 67
Q&AQ&A
Object Type
JobMethod
PST
Document Lifecycle
Alias Set
Documentum Developer Conference 2001 9/9/01 12:46
Lui-Rassiwala 68
SummarySummary
�� Efficient Transfer of ApplicationEfficient Transfer of ApplicationObjectsObjects
�� Development and Deployment ToolsDevelopment and Deployment Tools�� Support for Application MaintenanceSupport for Application Maintenance
and Upgradeand Upgrade