Home

Livelink WCM Server Programming Guide for the WCM Java API

image

Contents

1. Livelink WCM Server WM090700 PJA EN 1 1 2 Overview of documentation for Livelink WCM Server 1 2 Overview of documentation for Livelink WCM Server Product The following documentation is available for Livelink WCM Server documentation Livelink WCM Server Installation Guide WM IGD This manual describes how to install Livelink WCM Server It also shows based on examples how to configure RDBMS LDAP directory servers web servers and application servers for use with Livelink WCM Server Livelink WCM Server Administrator Manual WM AGD This manual describes how to configure administer and monitor your WCM system i e manage servers websites deployment systems etc Livelink WCM Server Content client User Manual WMCC GGD This documentation describes how to use the Content client and InSite Editing for editing the contents of websites managed with Livelink WCM Server Livelink WCM Server Enterprise Server Integration Manual WM CLL This manual describes how to integrate Livelink WCM Server and Livelink ECM Enterprise Server in order to use the Enterprise Server user administration for the WCM system publish Enterprise Server items on WCM managed websites and use the Enterprise Server search for WCM managed websites Livelink WCM Server Search Server Connector for Lucene Manual This manual describes the concepts and administration of Lucene Search servers Livelink WCM Server
2. Reports for custom connections on page 29 110 Livelink WCM Server WM090700 PJA EN 1 6 4 Logs reports and tracing gt Example 6 8 Retrieving server reports The following example first retrieves a list with the report names and then reads the content of the reports get SystemHandler Server currentServer VipRuntime getCurrentServer SystemHandler sysHandler VipRuntime getSystemHandler load list with report names of the current server List repObjects sysHandler getCoreReport cid currentServer null iterate through the result in order to get the reports Iterator repIter repObjects iterator while repIter hasNext String report String repIter next List reportContents sysHandler getCoreReport cid currentServer report 6 4 3 Using tracing functions The TraceFilter interface provides access to the tracing functions For tracing a server or a class you can determine exactly which events are to be logged in the tracing The TraceFilter interface provides constants for this purpose Table 6 1 explains the meaning of the individual constants Table 6 1 Constants for tracing settings TraceFilter interface Constant Function METHOD_ENTER Logs the entry into the methods of the classes used in the WCM system METHOD_LEAVE Logs the exit from a method FATAL_ERROR Logs errors with the level Serious which for exam ple result in the respective server b
3. The following code sample reads the content of the current version of an Enterprise Server item ContextId cid LivelinkObjectHandler lloh LivelinkId llid LivelinkObject llobj lloh get cid llid if 1lobj hasContent FileOutputStream fos new FileOutputStream new File content out try llobj getContent cid fos finally fos close eal Former versions of an Enterprise Server item are represented by the LivelinkVersion interface Versions are only provided for Enterprise Server documents LivelinkDocument interface and Enterprise Server categories WM090700 PJA EN 1 Programming Guide for the WCM Java API 121 Chapter 7 Accessing Enterprise Server systems 7 2 7 Adding an Enterprise Server item LivelinkCategory interface Only Enterprise Server document versions have content gt Example 7 13 Reading the content of an Enterprise Server item all versions The following code sample reads the content of all versions of an Enterprise Server document ContextId cid LivelinkObjectHandler lloh LivelinkId llid must be a reference to a LivelinkDocument LivelinkDocument lldoc LivelinkDocument 1lloh get cid llid for Iterator i lldoc getVersions iterator i hasNext LivelinkVersion llversion LivelinkVersion i next FileOutputStream fos new FileOutputStream new File version_ llversion getVersionNumber out try
4. They determine which types of objects users are allowed to add check out and check in via the clients Some functional areas such as Basic are by default assigned to object types Only users that have the corresponding functional area can add check in and check out objects of this object type Use the getFunctionalArea method of the 0bj ectHandler interface to retrieve the assignment of an object type to a functional area The association of object types with functional areas can only be edited by means of the Admin client They determine which views and dialog boxes are available to the user in the Content client This way you can specify exactly which actions the user is allowed to perform For example the Access rights dialog box is only displayed if the user has the functional area Access rights dialog 44 Livelink WCM Server WM090700 PJA EN 1 3 5 Editing functional areas In the WCM Java API functional areas are represented by the FunctionalArea interface The interface provides constants for the names of the predefined functional areas If new functional areas are added via the Admin client or the WCM Java API they are represented by their names Functional areas can be assigned to principals via the Admin client or the WCM Java API This gives principals access to the respective functions for editing certain object types and to the respective functions of the Content client For information on assigning functional a
5. contentTranslation contentFileName Long toString System currentTimeMillis String contentPathAndFile convertPath tempdir File separator contentFileName File tmpContent new File contentPathAndFile FileOutputStream content new FileOutputStream tmpContent od getContent content Iterator languageIter editorsLanguagesM keySet iterator while languageIter hasNext LocaleValue lang LocaleValue languageIter next String objTitle od getTitle _ lang toString ObjectData object2Translate oh createInitial0bjectData new ObjectId 1 od getTemplate od getObjectType objTitle object2Translate setLocale lang getLocale ObjectId oidCreated oh create loginCidM object2Translate tmpContent translate informEditor lang oidCreated object2Translate getObjectType tmpContent catch VipApiException vaex Via the MailHandler the informEditor method creates and sends an e mail to the responsible editors The e mail addresses are retrieved via the user profile of the editor that was read when the agent was started The e mail contains the OID of the object to be translated that was created in the method createTranslationObjects and the information on the language of the translation The content to be translated is added to the e mail as attachment private void informEditor LocaleValue loc ObjectId oid ObjectType ot File content throws VipApiExcep
6. if 1llobj null System out printin current object 110bj 4a Enterprise Server items are kept in a separate object cache which reduces the number of LAPI calls In the livelink systems xml file you can configure parameters for the object cache The file is located in the directory lt WCM installation directory gt config An object is removed from the cache when it has been modified in the Enterprise Server system However it is not removed immediately Cleaning the cache is performed at configurable intervals To configure the interval modify the Check interval parameter of the Enterprise Server pool accordingly for more details refer to the online help of the Admin client gt Example 7 6 The invalidate method can be used to remove an Enterprise Server item from the cache This ensures that the current version of the Enterprise Server item is used lloh invalidate 1lid LivelinkObject llobj lloh get cid 11lid To check whether another user changed the Enterprise Server item while you edited it you can use the isInvalid method LivelinkObject llobj do something if 1llobj isInvalid read fresh instance llobj lloh get cid 1lid a Navigating In order to build a navigation Enterprise Server items are usually read on the basis A pe of their storage location For this purpose the subordinate items of an Enterprise Server Server item are determined WM090700 PJA EN 1
7. In the WCM Java API the individual user settings are accessed via the UserSettings interface which can be requested via the User interface Internally WM090700 PJA EN 1 Programming Guide for the WCM Java API 47 Chapter 3 User administration the user settings consist of key value pairs The keys are saved as String the values are saved as Value The UserSettings interface can be used to read values belonging to keys Method UserSettings getValue String key create and change values Method UserSettings setValue String key Value value delete key value pairs from the user settings Method UserSettings removeValue String key The user settings can be grouped in order to represent different settings independently of each other In addition to the Content client settings it is for example possible to save an address for each user in the user settings As the address data does not have anything to do with the Content client settings it should be represented by a separate instance of a UserSettings object Theoretically any number of different UserSettings instances can be saved for each user For saving and differentiating the individual UserSettings instances each instance has a name of type String This name can be retrieved by means of the method UserSettings getName For retrieving the different user settings in the form of UserSettings objects and for creating new UserSettings instances the User interface provides ap
8. Livelink WCM Server Programming Guide for the WCM Java API This manual describes the Java programming interface of Livelink WCM Server which allows external programs to use the functionality of the WCM servers WMO090700 PJA EN 1 ias V OPEN TEXT c oORPORATION Livelink WCM Server Programming Guide for the WCM Java API WM090700 PJA EN 1 Rev 2007 Mar 09 Copyright 2007 by Open Text Corporation The copyright to these materials and any accompanying software is owned without reservation by Open Text Corporation These materials and any accompanying software may not be copied in whole or part without the express written permission of Open Text Corporation Open Text Corporation is the owner of the trademarks Open Text Great Minds Working Together Livelink and MeetingZone among others This list is not exhaustive All other products or company names are used for identification purposes only and are trademarks of their respective owners All rights reserved Open Text Corporation provides certain warranties and limitations in connection with the software that this document describes For information about these warranties and limitations refer to the license agreement entered into between the licensee and Open Text Corporation Adobe is a trademark of Adobe Systems Incorporated Lotus and Lotus Notes are registered trademarks of Lotus Development Corporation Domino is a trademark of Lotus Development Corpora
9. Programming Guide for the WCM Java API WM PJA This manual describes the Java programming interface of Livelink WCM Server which allows external programs to use the functionality of the WCM servers Livelink WCM Server Programming Guide for the WCM Lightweight API WM PLA This manual describes the Lightweight Java programming interface of Livelink WCM Server which allows external programs to use the functionality of the WCM servers with efficient resource usage Online help Online help is available for using and configuring the individual clients of Livelink WCM Server Release Notes The Release Notes describe the following aspects in detail The software supported by the product Requirements Restrictions Important dependencies Last minute changes to the documentation Identification codes of the current documentation WM090700 PJA EN 1 Programming Guide for the WCM Java API 7 Chapter 1 Introduction 1 3 Typography The Release Notes are continually updated The latest version of the Livelink WCM Server Release Notes is available in the Open Text Knowledge Center https knowledge opentext com knowledge Conventions Read the following conventions before you use this documentation In general this product documentation uses the following typographical conventions New terms This format is used to introduce new terms emphasize particular terms concepts long product names and to refer to
10. The object data of a WCM object is set by means of the corresponding set methods It does not come into effect however until the change action of the Ob jectHandler interface is called In the meantime another user may also have changed the metadata of the same WCM object and committed the changes by means of the ObjectHandler change method The current object data has thus become invalid The isInvalid method of the 0bjectData interface returns true in this case Calling ObjectHandler change using invalid metadata results ina VipApiException Example 5 8 minimizes the possibility of this error gt Example 5 8 ObjectData od od setTitle New Title od setTemplate null if od isInvalid VipRuntime getObjectHandler demosite change cid od remark lt a Some attributes can be set to the value null e g setSubtitle nul1 For the access control list ACL this setting has special semantics setACL nu11 has the result that the object s own ACL which possibly exists is not used any longer The ACL of the parent WCM object is used instead If this object does not have an own ACL the next parent object is checked The system checks the complete topic structure until it finds a parent object with an own ACL if necessary up to the root object as this always has an own ACL That means that you can use setACL nul1 to explicitly restore the inheritance mechanism of the ACL In addition to the standar
11. llversion getContent cid fos finally fos close ea Performing actions on an Enterprise Server item Enterprise Server items can be modified via the LivelinkObjectHandler interface You can perform the following actions on an Enterprise Server item adding adding content modifying metadata reserve unreserve and delete All Enterprise Server item types are represented by interfaces The LivelinkObjectFactory class is provided for adding new items For each Enterprise Server item type this class provides methods for creating an instance of the appropriate interface After this the object is added to Livelink ECM Enterprise Server by means of the LivelinkObjectHandler gt Example 7 14 ContextId cid LivelinkObjectHandler lloh LivelinkRuntime getInstance getObjectHandler systemName LivelinkId parentllid new LivelinkId 123 LivelinkDocument lldoc LivelinkObjectFactory createDocumentInstance Demo Document API test lldoc LivelinkDocument lloh create cid parentllid lldoc gt Example 7 15 Adding content to an Enterprise Server item The following code sample adds a file as content to an Enterprise Server document File file lldoc LivelinkDocument 1lloh addVersion cid lidoc getLivelinkId file eal 122 Livelink WCM Server WM090700 PJA EN 1 7 3 Relators Changing the In order to change the metadata of an Enterprise Server item a changeable copy of m
12. md setBody a bodytext md addRecipient recipient company example md addAttachment new File test_file xml file name_in_mail txt VipRuntime getMailHandler sendEMail aContextId md 98 Livelink WCM Server WM090700 PJA EN 1 Chapter 6 System information and administration By means of the functions of the WCM Java API you can retrieve information on different components of the WCM system and on the status of the deployment Also you can change the system status and use the report and tracing functions of the servers For this purpose the following interfaces are provided AdminHandler SystemHandler and DeploymentHandler Retrieving information on the WCM system retrieve the users that are logged in to the WCM system see Retrieving logged in users on page 100 SystemHand1ler interface retrieve information on the servers used see Information on servers on page 100 AdminHand1ler interface retrieve information on websites see Information on websites on page 102 AdminHandler interface Retrieving information on the deployment systems retrieve a list of all deployment systems see Retrieving a list of deployment systems on page 104 AdminHandler interface retrieve deployment metadata e g URL and path for a generated page within a deployment system see Deployment metadata on page 104 DeploymentHandler interface retrieve status information on a deployment
13. new LocaleValue en_US AndFilter filterCombination new AndFilter vipAccessFilter languageFilter perform searching the principals found have the language setting English and their access to the WCM system is deactivated List principals ah getPrincipals cid AdminHandler USER_PRINCIPALS null filterCombination 0 1 3 2 4 Deleting principals Principals are deleted by means of the remove method of the AdminHandler interface The respective principal is removed from the user administration and from all assignments to other principals functional areas and websites Notes e If the principal has already been assigned to WCM objects the principal will not be removed automatically from the respective access control lists This must be done via the WCM Java API or by means of the Content client e If you delete an LDAP principal in the WCM system the corresponding entry will be removed completely from the LDAP directory service WM090700 PJA EN 1 Programming Guide for the WCM Java API 37 Chapter 3 User administration e If you delete an Enterprise Server user this user is marked as deleted in Livelink ECM Enterprise Server but not removed from the database 3 3 Setting WCM attributes in LDAP If an LDAP directory service is used for managing the user data of the WCM system the principals stored in the LDAP server must have the WCM attributes This gives them access to the WCM system N
14. Administration server or Content server Server type and name can be retrieved by means of the Server interface This interface also provides the isMaster method which can be used to check whether the server is a master server master Content or master Administration server Only a master server has write access to the data of the WCM system If the method returns false the server is a proxy server A proxy server merely has read access to the WCM objects of a website or the administration and configuration information It delegates all actions that require write access to a master server Detailed server information can be obtained via the AdminHand1ler interface Use the getServer method for this purpose It returns a Server object which contains the following server properties e the Administration server responsible for user administration and system configuration e storage method of the user data RDBMS Livelink ECM Enterprise Server or LDAP e the server s host name and the port numbers used for communication e the host name of the mail server which is used for sending automatic notifications and the sender s e mail address e the languages offered by the server for localizing messages e the list of all websites managed by this server or to which this server has read access in the case of proxy Content servers e the list of the deployment systems installed on this server e the installation directory as well as the se
15. Chapter 5 Object management 5 2 1 You also have to consider that actions on objects and deployment are independent of each other When an action has been finished this does not necessarily mean that the deployment systems have already generated pages that reflect the changes made to the WCM objects Please also read Actions and deployment on page 74 Overview of the ObjectHandler methods The methods of the 0bj ectHandler interface can be used for the following tasks Table 5 5 Main actions of the ObjectHandler interface General task Individual task Methods Adding objects Add a new object create Import objects multiImport Staging actions Check out checkOut Undo check out undoCheckOut Check in checkIn Submit submit Release release directRelease Reject reject Retrieving and editing Get objects get objects Edit metadata change Add remark addRemark Copying and moving Copy copy Move move Converting objects convertContent Searching objects filter Restoring old version restoreVersion Page generation Delete a generated page depublishPage deployment from the file system Regenerate a page for generatePage an individual WCM ob ject Regenerate a page fora generateTopic topic and its subordi nate objects Deleting objects Delete objects delete 68 Livelink WCM Server WM090700 PJA EN 1 5 2 Actions of the ObjectHandler int
16. Constant Example User ID USER_ID Searching users whose ID starts with stein new LikeFilter Search ableKeys USER_ID new String Value jstein Principal name COMMON_NAME Searching principals with the name Joshua Stein new LikeFilter Search ableKeys COMMON_NAME new String Value Joshua Stein Language setting of users LANGUAGE Searching users with the language setting English US new EqualFilter Search ableKeys LANGUAGE new Lo caleValue en_US Setting of the option Trusted login in the user settings TRUSTED_LOGIN Searching users who are allowed a trusted login new EqualFilter Search ableKeys TRUSTED_LOGIN new BooleanValue true Setting of the option VIP_ACCESS Searching principals whose access to the WCM access in the WCM system has been deactivated user settings new EqualFilter Search ableKeys VIP_ACCESS new Boolean Value false E mail address MAIL see example Searching principals on page 37 Note If you use the user administration of Livelink ECM Enterprise Server only the constants USER_ID VIP_ACCESS and COMMON_NAME can be used for searching principals COMMON_NAME can only be used for searching the last name of users For detailed information on the individual constants refer to the Javadoc on the SearchablekKeys interface 36 Livelink WCM Server WM09070
17. Enterprise Server item ContextId cid ObjectHandler oh ObjectData od update link to Enterprise Server LivelinkRelator llrel LivelinkRela tor od getExternalObjectRelator LivelinkId llid llrel getLivelinkId LivelinkId llnewid new LivelinkId 1lid getNodeId 1llid getVersion 1 llrel setLivelinkId llnewid change metadata od setExternal0ObjectRelator llrel oh change cid od relator test lt a 7 3 3 Adding relators The first step of adding a relator is to create an ObjectData object of type Enterprise Server relator or Enterprise Server folder relator gt Example 7 25 ContextId cid ObjectHandler oh ObjectId parentOID new ObjectiId 1 ObjectId templateOID null ObjectType oType oh getWebsite getObjectType ObjectType LIVELINKRELATOR ObjectData od oh createInitialObjectData parentOID tem plateOID oType myrelator After this a connection between the WCM object and the Enterprise Server item is established and set in the 0bjectData instance LivelinkRelator llrel new LivelinkRelator livelink new LivelinkId 123 ExternalObject SYNCMODE_RELEASE_FIXED 126 Livelink WCM Server WM090700 PJA EN 1 7 3 Relators 7 3 4 Modifying Enterprise Server metadata Editing deployment specific metadata od setExternal0ObjectRelator llrel Finally the WCM object is created ObjectId newrelatorOID oh create cid od null re
18. FILE_CHANGED return FILE_CHANGED case DeploymentEvent FILE_DELETED return FILE_DELETED case DeploymentEvent DEPLOYMENT_SYSTEM_CREATED return DEPLOYMENT_SYSTEM_CREATED case DeploymentEvent DEPLOYMENT_SYSTEM_DELETED return DEPLOYMENT_SYSTEM_DELETED default return unknown prs Converts the given property map to a lt tt gt String lt tt gt Traverses the PropertyMap using a recursion if neccessary param pm Property map containing configuration data return String describing the contents of the given property map private String reportPM de gauss vip config PropertyMap pm if pm null List childKeys pm getChildrenKkeys if childKeys null StringBuffer ret new StringBuffer Iterator it childKeys iterator while it hasNext String key String it next ret ret append key ret ret append try if pm hasPropertyMap key ret append reportPM pm getPropertyMap key else String value pm getPropertyValue key ret ret append value ret ret append catch KeyNotFoundException notFound ret ret append error return ret toString return WM090700 PJA EN 1 Programming Guide for the WCM Java API 141 Chapter 8 Application examples 8 5 Converting special characters This example shows an agent that searches the metadata Keywords Description and Target group
19. In contrast the asynchronous method returns almost immediately after its call The next WCM Java API method can thus already be called even though the actions required for executing the first method are still running in the background For clarification we assume that you want to copy a relatively large subtree to another topic After that you want to execute various other actions in another section of the website After a synchronous call of the copy method the following methods will not be executed until the server has finished copying all objects contained in the subtree except for deployment If the corresponding asynchronous method copyAsync is called however the respective copying actions will be started on the server but the method returns immediately and the subsequent methods are executed The use of asynchronous methods is particularly useful when you trigger actions that may take some time but do not want to wait until these actions are concluded Since the asynchronous method returns immediately after the action has been started on the server you can perform other actions on unaffected objects in the meantime If an error occurs during an asynchronous action you can undo the entire action In case of synchronous methods this is not necessarily the case 70 Livelink WCM Server WM090700 PJA EN 1 5 2 Actions of the ObjectHandler interface 5 2 3 Transactions Several actions on WCM objects can be performed within
20. Jusername user i Bp servers A websi bsite2 C Intranet m E Websites websites website2 Companylntranet amp Deployment systems 4 Server agents H ContentMinerNotification DatabaseUpdate DemoAgent amp Servers E i Parameters password username E websites wehsite2 website3 website The constructor of the DemoAgent class with nested parameters looks as follows public class DemoAgent implements de gauss vip api ServerAgent sas private final String username private final String password private final String website1 private final String website2 private final String website3 public DemoAgent de gauss vip config PropertyMap config throws de gauss vip config KeyNotFoundException de gauss vip config PropertyMap websites WM090700 PJA EN 1 Programming Guide for the WCM Java API 15 Chapter 2 Implementation basics config getPropertyMap websites username config getPropertyValue username password config getPropertyValue password website1 websites getPropertyValue website1 website2 websites getPropertyValue website2 website3 websites getPropertyValue website3 4a gt Example 2 2 Agent with arguments without nodes The demo agent without nodes might be configured as follows A Configuration 2 Pools 2 Custom connection types Jusername user A Servers Wy Websites website InternetSite _ Deploymen
21. The constants of the attributes are defined in the FieldNames and SearchableKeys interfaces Both interfaces are part of the package de gauss vip api object An overview of the searchable attributes with respective references is contained in the online documentation Javadoc on the 0bjectData interface In addition to the standard attributes you can search for user defined attributes from attribute sets and properties from object categories Table 5 7 shows which attribute types can be used together with which filters WM090700 PJA EN 1 Programming Guide for the WCM Java API 85 Chapter 5 Object management Table 5 7 Attribute types and filters LessOrEqualFilter LessFilter GreaterOrEqualFilter GreaterFilter NotEqualFilter EqualFilter JoinFilter IsNullFilter StringContainsFilter LikeFilter IntegerValue LongValue y y y y y Y y Y ListValue Y Y SetValuec DateValue YYY YYY Y Y BooleanValue StringValue Viviviviviviviyv vy vi LocaleValue y ObjectId ObjectType ObjectState User Version Notes 1 This filter compares two attribute values Both values must be of the same type 2 This filter can be used to check whether a value has been set for an attribute 3 A list entry is searched which is specified as a StringValue 4 Inthe case of LocaleValue and User the value can also be specified as a StringValue
22. see Retrieving logged in users on page 100 e Every user with write access to the WCM system uses up a license This license is released after one minute at the earliest even if the user logs out before this minute has elapsed When the minute has elapsed the license will be released together with the user logout WM090700 PJA EN 1 Programming Guide for the WCM Java API 23 Chapter 2 Implementation basics 2 4 2 2 4 3 Predefined contexts Livelink WCM Server provides two predefined contexts which can be used by server agents for accessing WCM objects without logging in World This context represents a login with the rights for the group World The group s rights in the website are determined by the website s access control lists The getWorldContextId method returns this context which can usually read only certain WCM objects Backup This context represents a user that has read access to all WCM objects of a website This makes this context especially suited for programming backup agents The getBackupContextId method is used for this purpose Both of the contexts do not need to be refreshed see Refreshing contexts on page 24 and do not have a user profile Refreshing contexts The context of a logged in user can be retrieved by means of the methods login or substituteLogin Context have only a limited life span if no actions are performed within a certain period of time After a certain period of tim
23. usr t Note To determine which principals are assigned to a website a functional area or a group role use the respective get methods of the interfaces Website e g getUsers FunctionalArea e g getGroups User e g getRoles and Group or Role getMembers Substitute If you edit the assignments between principals and supply the IDs of two users as assignments arguments in the method defineAssignment or removeAssignment the first user will be assigned unassigned as the substitute of the second user gt Example 3 12 Assigning a substitute login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler aH VipRuntime getAdminHandler The user mmoreno is to be assigned as the substitute for jstein User usrJst aH getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS User substitute aH getUserProfile cid mmoreno AdminHandler INDIRECT_ASSIGNMENTS The first user specified in the parameters of the method defineAssignment becomes the substitute of the second user aH defineAssignment cid substitute usrJst al 3 7 Saving user settings It is possible to save user defined settings in the profile of a user Settings that a user makes for example in the Configuration dialog box of the Content client e g the representation of the toolbar configured application classes only apply to this user and are saved in the respective profile
24. 7 30 Deleting a relator The following code sample sets this property and deletes the Enterprise Server item together with the relator LivelinkRelator llrel new LivelinkRelator livelink new LivelinkId 123 ExternalObject SYNCMODE_RELEASE_FIXED delete Livelink object when WCM object is deleted llrel setLiable External0bject LIABLE_VIP od setExternal0bjectRelator llrel oh change cid od null destroy both objects List oidlist new ArrayList Oidlist add od getObjectId oh destroy cid oidlist null null WM090700 PJA EN 1 Programming Guide for the WCM Java API 129 Chapter 8 Application examples This chapter introduces several simple application examples designed to show how server agents can be developed e Basic class ExampleAgent on page 132 introduces an abstract agent class that already implements the necessary properties and demonstrates the localization of texts e The agent AutoSubmissionAgent is an active agent When a website is ready for operation this agent submits all WCM objects of the website if they have not yet been released This example shows how to register for run level events See Automatic submission on page 133 e The agent VetoChangeTitleAgent demonstrates the veto mechanism The users of a certain group are not allowed to change the title of WCM objects They may only use a predefined template The agent checks whether these rules are adhered to and i
25. A context ID is always unique throughout the entire system It thus precisely identifies a user If a context ID is not used over a certain period of time it expires Data storage view The data storage view of a server refers to the aspects of the WCM objects that are currently available Edit view QA view Production view The data storage view available on a server is determined in the routing settings of the website Deployment Deployment is the distribution of data The deployment of Livelink WCM Server performs two main tasks first generating pages from the WCM objects stored in the database and distributing the generated files to the appropriate directories second notifying the WCM servers of changes in the WCM system Deployment system The deployment systems generate pages from the WCM objects and distribute the generated files to the appropriate directories From there the files become visible for the users via an HTTP server Deployment systems may be of various types and categories See also Deployment on page 154 Deployment system types On the basis of the staging concept of Livelink WCM Server a distinction is made between deployment systems of type Edit QA and Production Different views of the website data are generated depending on the type Deployment system category Depending on the way of processing deployment jobs deployment systems are assigned to various categories Standard deployment sy
26. Entity interface you can retrieve the activities assigned to a transition WM090700 PJA EN 1 Programming Guide for the WCM Java API 91 Chapter 5 Object management 5 8 2 5 8 3 5 8 4 5 9 Assigning a workflow Both the Content client and the WCM Java API provide functions for assigning workflow objects to other WCM objects When a workflow is assigned to a WCM object a transition from the starting point to an activity must additionally be selected After the assignment the target activity of this transition is the current activity Please consider the following e When a workflow is assigned to a WCM object the latest released version of the workflow object is always used e The principal that makes the assignment must have the right Read for the workflow object and the WCM object e The target activity of the specified transition must conform to the current staging of the object Forwarding the objects in the workflow It is not possible to perform normal staging actions on a WCM object to which a workflow is assigned The object may only be edited by the principal assigned to the current activity Depending on the principal s access rights the principal may check out edit check in and move the object as well as restore an earlier object version Having edited the WCM object the user forwards the object in the workflow For this purpose the user selects a predefined transition This takes the objec
27. HEIGHT length heightM Integer parseInt tempParam substring HEIGHT length In a regular converter the values getTimeout and getMaxSourceLength should additionally be considered The timeout specifies a period of time in milliseconds after which the converter must return at the latest even without a result The MaxSourceLength value should be read by the converter to determine if the source file does not exceed the specified size in bytes If this is the case a simpler or no conversion at all should be performed Both parameters can be used as additional parameters for the converter Whether they are considered depends on the converter s implementation E mail support By means of the following objects e mails can be created and sent ina WCM system The EMailData interface represents an e mail which is converted into the standard e mail format when sent to the recipient The MailHandler interface allows access to a new instance of EMailData and can send this instance to an SMTP server via a WCM server In the case of status transitions of objects an e mail can be generated by means of the EMailInfo class EMailInfo implements EMailData but generates the content of the e mail itself Usually the objects affected by status changes are listed in the sent e mail 94 Livelink WCM Server WM090700 PJA EN 1 5 10 E mail support 5 10 1 Specifying the content The following functions are provided e s
28. HashSet newKw new HashSet Iterator keyWordIter keywords iterator while keyWordIter hasNext String keyword String keyWordIter next String newKeyword correctString keyword newKw add newKeyword od setKeywords newKw bChange true if description null amp amp description length gt 0 WM090700 PJA EN 1 Programming Guide for the WCM Java API 145 Chapter 8 Application examples String newDescription correctString description if description equals newDescription od setDescription newDescription bChange true if bChange oh change ctxId od messageM catch VipApiException vae System err println KeywordAnalyzerAgent performVipEvent event vae printStackTrace The correctString method modifies the supplied strings by filtering and converting German umlauts and other special characters public String correctString String str StringBuffer output new StringBuffer for int i 0 i lt str length i switch str charAt i case output append break case output append ae break case A output append Ae break case output append oe break default output append str charAt i return output toString 8 6 Multi language websites This example describes an agent for multi language websites In multi language websites objects are maintai
29. TD gt lt TR gt n public String getHTMLForObject ObjectData od Locale loc try String oid od getObjectId toString String title od getTitle return lt TR gt lt TD gt oid lt TD gt lt TD gt title lt TD gt lt TR gt n catch VipApiException e return Exception e public String getHTMLEnd String remark Locale loc return lt TABLE gt lt BODY gt lt HTML gt n 4a 5 10 2 Generating e mails via the WCM Java API E mails cannot only be generated in the case of status changes of WCM objects but also by JSP pages server agents and standalone Java programs accessing the remote API First the e mails are transmitted to a WCM server in the case of a JSP page or a server agent this may be the same server This server forwards the e mails to an SMTP server Use the VipRuntime getMailHandler method to access the MailHandler interface By means of the createEMailData method you can generate an object of type EmailData WM090700 PJA EN 1 Programming Guide for the WCM Java API 97 Chapter 5 Object management Compiling the e mail In the next step the e mail is compiled There are different methods for setting the fields Subject Sender and Reply To The methods addRecipient addCCRecipient and addBCCRecipient add recipients to the fields To CC and BCC To set the content of the e mail and optionally a MIME type use setBody To send an e
30. TheWorkflowHandler interface The interface for managing workflow objects allows you to assign workflows to WCM objects remove this assignment and forward WCM objects in the workflow e The DeploymentHandler interface This interface allows access to the metadata of pages such as path and URL to the generated file It also offers information on the status and errors of the deployment See Information on the deployment on page 103 e The SystemHandler interface This interface provides access to the system administration functions These include reading server reports and logs as well as tracing See System information and administration on page 99 2 2 Server agents Server agents are used to access the Livelink WCM Server functions via the WCM Java API You can also use the so called remote API to develop programs which are executable outside a WCM server The remote API is described in Remote API on page 18 Server agents are Java implementations on the basis of the WCM Java API Server agents are loaded when a server starts They are executed in the same Java Virtual Machine JVM as the respective server For this reason all agents must be developed on the basis of the Java SDK Software Development Kit used for the execution of the servers Figure 2 2 illustrates the implementation on the basis of server agents Figure 2 2 Implementation of a server agent Note To ensure correct loading of a s
31. Thread nameM has configuration reportPM pmM VipRuntime getDeploymentEventDispatcher addListener DeploymentEvent FILE_CHANGED this VipRuntime getDeploymentEventDispatcher addListener DeploymentEvent FILE_DELETED this VipRuntime getDeploymentEventDispatcher addListener DeploymentEvent DEPLOYMENT_SYSTEM_CREATED this VipRuntime getDeploymentEventDispatcher addListener DeploymentEvent DEPLOYMENT_SYSTEM_DELETED this catch Exception ex ex printStackTrace do try synchronized mutexM if stopM if todoM isEmpty try mutexM wait 300000 catch InterruptedException ex Don t do anything else event DeploymentEvent todoM removeFirst if event null printEvent event event null catch Exception ex ex printStackTrace while stopM try VipRuntime getDeploymentEventDispatcher removeListener DeploymentEvent FILE_CHANGED this VipRuntime getDeploymentEventDispatcher removeListener WM090700 PJA EN 1 Programming Guide for the WCM Java API 139 Chapter 8 Application examples DeploymentEvent FILE_DELETED this VipRuntime getDeploymentEventDispatcher removeListener DeploymentEvent DEPLOYMENT_SYSTEM_CREATED this VipRuntime getDeploymentEventDispatcher removeListener DeploymentEvent DEPLOYMENT_SYSTEM_DELETED this System out printin Thread nameM will be stopped i
32. WCM Server before a newly created or changed object can be published it must be submitted to Quality Assurance for checking This makes the changes to the object visible in the QA view Topology A hierarchic organization of WCM objects according to specific criteria In addition to the Navigation topology organization according to topics with their respective subordinate objects there is also a Template topology Transaction A transaction can be used to group together several actions so that none of the changes involved actually becomes effective until the transaction is finalized committed Transition Connection between two activities or a starting end point and an activity ina workflow By means of the transitions the WCM objects are forwarded within the workflow Workflow definition Description of a workflow A workflow definition consists of starting points end points activities and transitions Workflow definitions are saved in XPDL format and can be edited graphically by means of the Content Workflow Modeler WM090700 PJA EN 1 Programming Guide for the WCM Java API 157 Index A access control ACL 89 Access control list 153 access control lists edit 89 access rights fora WCM object 67 for an Enterprise Server item 118 use of parent topic 77 access to Livelink WCM Server via remote API 18 via server agents 13 ACL interface 89 ACL_OWNER search attribute 87 Action 153 actions and deployment
33. WM090700 PJA EN 1 Programming Guide for the WCM Java API 73 Chapter 5 Object management 5 2 4 5 2 5 Thread currentThread sleep 200 System out println Local deployment active prog update User and transaction contexts Every action is executed within a context A distinction is made between a user context and a transaction context Both contexts are represented by objects of the ContextId interface A user context is the result of the login process It contains information on the logged in user in particular the user ID and information on the last action the user performed A user context becomes invalid if no action has been performed for a certain period of time see also Authentication and contexts on page 22 A transaction context extends the user context It contains a reference to the corresponding transaction During a transaction the progress of the action can be checked and the transaction may be aborted if necessary The transaction context becomes invalid as soon as the action has been completed If it was successful the system state will be updated afterwards Notes e When a synchronous or asynchronous action has been finished i e the transaction has been completed successfully the object data on all servers is updated with the current data of the master Content server However the action does not wait for the deployment systems of the servers For this reason the URL of a deployment
34. a basic class from which the following example agents derive In this basic class the common properties of the ServerAgent interface manufacturer description and version of the agent as well as the required Livelink WCM Server version are implemented The UserMessage class can be used to provide a localized description of the agent As the ExampleAgent is a basic class no parameters are expected Abstract basic class for deriving agents implements methods from de gauss vip api ServerAgent that return constant values which are set via a constructor public abstract class ExampleAgent implements ServerAgent final variables for holding constant values private final UserMessage msgM private final String manufacturerM private final String versionM private final int majorM private final int minorM the only constructor public ExampleAgent String manufacturerArg String msgKey String versionArg int majorArg int minorArg manufacturerM manufacturerArg msgM new UserMessage msgKey versionM versionArg majorM majorArg minorM minorArg de gauss vip api ServerAgent implementation except start and stop public String getManufacturer return manufacturerM public String getDescription Locale locale The message keys must be defined in the UserMessage_ lt langcode gt properties file which is loaded via a class loader return msgM getStr
35. a transaction This means that the changes do not come into effect until the transaction has been explicitly completed A A Important To ensure the consistency of the WCM system the methods commitTransaction and rollbackTransaction must be executed as early as possible We recommend that you insert Commit and Rollback mechanisms for started transactions in a finally block This ensures that no unfinished transactions are left behind in case of errors Example 5 4 Code sample transaction public class TransactionExample public void mySpecialOperation ContextId cid ObjectHandler oh ObjectId firstObject ObjectId secondObject throws VipApiException boolean commitTransaction false ContextId transactionId null try transactionId oh beginTransaction cid special operation 2 do some actions oh addRemark transactionId firstObject first remark oh addRemark transactionId secondObject second remark all actions done commitTransaction true finally if transactionId null if commitTransaction oh commitTransaction transactionId else oh rollbackTransaction transactionId Important It is strictly forbidden to request a transaction while waiting for results referring to this transaction Do not use transactions asynchronously Transactions are a limited programming concept that must be used carefully as they may prevent other users from working in the WCM system WM09070
36. any time consuming tasks Otherwise it would block the calling server thread Notification of events Events are fired for all actions in the WCM system that change the status of WCM objects or system components Usually actions of a server agent are triggered by an event e g adding an object or booting a website To be informed about events a server agent must register a so called EventListener with an EventDispatcher The agent is informed about the respective event as long as it is registered with the event dispatcher Thus notification is independent of the status of the agent itself It depends exclusively on the registration For detailed information on events and how they are processed refer to Event processing on page 51 and to Monitoring deployment events on page 137 Remote API The remote API enables you to develop Java programs on the basis of the WCM Java API In contrast to server agents these programs can be executed outside a WCM server The programs developed this way can be executed on any computer that can connect to a WCM server Via the remote API you can use the majority of the WCM Java API interfaces only the way they are called is different 18 Livelink WCM Server WM090700 PJA EN 1 2 3 Remote API The remote API has been implemented on the basis of Java s RMI mechanism remote method invocation Figure 2 4 illustrates the implementation of a Java program that addresses a server via
37. as a String object For system related events e g an event indicating that a new website has been created this method always returns null Each event has arguments that deliver more detailed information on the objective of the status change For example all website related events have a reference to the related WCM object as an argument OID In general you can determine the values of the arguments the kind of which depend on the event type by means of the getArgument method All arguments can also be processed as an object of the java util Map container class Website related events The events of this category refer to the WCM objects of a website For this event category the getConstraint method of the Event interface provides the name of the website as a String object Each event contains the OID of the related WCM object as an argument The constant Event ARG_OID is used for this purpose For the access a corresponding cast is required e g ObjectId oid ObjectId event getArgument ARG_OID 52 Livelink WCM Server WM090700 PJA EN 1 4 1 Normal events The following events belong to this category OBJECT_ACL_CHANGED OBJECT_CHECKED_IN OBJECT_CHECKED_OUT OBJECT_CHECKOUT_UNDONE OBJECT_CREATED OBJECT_DELETED OBJECT_DESTROYED OBJECT_EXPIRED OBJECT_METADATA_CHANGED OBJECT_REJECTED_TO_EDIT OBJECT_SUBMIT_AT_TO_PRODUCTION OBJECT_SUBMITTED_TO_PRODUCTION OBJECT_SUBMITTED_TO_QA OBJECT_CONTENT_SYNCHRONIZED
38. for login userNameM String properties getProperty username String pwd String properties getProperty password if pwd null userPasswordM pwd UserMessage uM new UserMessage KEYWORD_AGENT_MESSAGE messageM uM getString create StringAnalyzer analyzerM new StringAnalyzer The agent is started by the method start First it is checked whether the agent was started on a server of type TYPE_CONTENT i e a Content server Only if this is the case starting is continued Otherwise starting is aborted as the agent can only be executed on Content servers Afterwards the agent registers for the RUNLEVEL_IS event which will later be used to determine whether the server has already reached a run level in which a user can be logged in For this purpose the StringAnalyzer created in the constructor is registered for the events OBJECT_METADATA_CHANGED and OBJECT_CREATED for all desired websites because analysis and conversion of the metadata to be checked is to be performed for each newly created WCM object and after each change to the metadata of a WCM object public boolean start String serverType int majorVersion int minorVersion String patchLevel System out printin Servertype serverType if serverType equals Server TYPE_CONTENT System err println KeywordAnalyzerAgent start Server type is not CONTENT return false WM090700 PJA EN 1 Programming Guide for the
39. gauss vip api event EventDispatcher eventDispatcher de gauss vip api VipRuntime getEventDispatcher private final de gauss vip api event EventListener eventListener new DemoRunlevelListener fraki private final String website Casal public boolean start String serverType int majorVersion int minorVersion String patchLevel tad eventDispatcher addListener null de gauss vip api event Event RUNLEVEL_IS eventListener return true public void stop i eventDispatcher removeListener eventListener Peral private class DemoRunlevelListener implements de gauss vip api event EventListener public void performVipEvent de gauss vip api event Event e Integer level Inte ger e getArgument de gauss vip api event Event ARG_NEW String ws String e getArgument de gauss vip api event Event ARG_WEBSITE if level intValue de gauss vip api admin Runlevel WEBSITE_UP amp amp ws null amp amp ws equals website System out println Website website is up 54 Livelink WCM Server WM090700 PJA EN 1 4 1 Normal events HI 4 1 2 The DeploymentEvent interface Deployment events provide information on changes in the deployment There are two types of events e events referring to the status of the deployment system create and delete e events referring to the status of the pages of the deployment system create change and delete These event
40. interface at the end gt Example 3 3 Editing a user profile The following example changes the e mail address and the language setting of the user with the ID jstein login ContextId cid VipRuntime getContextHandler login load user profile of jstein AdminHandler aH VipRuntime getAdminHandler User usrJOS aH getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS set new e mail address and locale for the user usrJOS setLocale new LocaleValue en_US usrJOS setEMailAddress jstein company example save changes in the user administration aH update cid usrJOS eal Searching principals By means of the getPrincipals method of the AdminHandler interface principals meeting a certain criterion can be retrieved The search criterion is represented by an object of the type Filter i Note For detailed information on the Filter class refer to Searching WCM objects on page 84 The principals found do not have a profile The profile must be loaded subsequently by means of the methods getUserProfile getGroupProfile or getRoleProfile WM090700 PJA EN 1 Programming Guide for the WCM Java API 35 Chapter 3 User administration The SearchableKeys interface provides constants that can be used as search criteria Table 3 1 gives a short overview of the search criteria and some examples Table 3 1 Criteria for searching principals and examples Search criterion
41. item link to the current version of node ID 123 in system livelink and update relator if Enterprise item changes within LES LivelinkRelator llrel new LivelinkRelator livelink new LivelinkId 123 ExternalObject SYNCMODE_RELEASE_FIXED gt Example 7 22 Setting up a connection to a fixed version of an Enterprise Server item The following code sample establishes a connection to a fixed version of an Enterprise Server item link to version 2 of node ID 123 in system livelink and always use this version LivelinkRelator llrel new LivelinkRelator livelink new LivelinkId 0 123 2 External0bject SYNCMODE_ALWAYS_FIXED ce The connection information is required for adding relators For existing relators this information can be retrieved from the 0bjectData instance gt Example 7 23 Retrieving connection information ObjectData od if od getObjectType isLivelinkRelator WM090700 PJA EN 1 Programming Guide for the WCM Java API 125 Chapter 7 Accessing Enterprise Server systems LivelinkRelator llrel LivelinkRelator od getExternal0ObjectRelator or using an attribute llrel LivelinkRelator od getAttribute FieldNames EXTERNALOBJECTRELATOR null 4 gt Example 7 24 Changing the connection to an Enterprise Server item The connection properties of a relator can be modified subsequently The following example illustrates how to refer to a different version of the
42. item the WCM system provides the object type Livelink relator For integrating Livelink folders the WCM object type Livelink folder relator is provided Release Staging action of Livelink WCM Server Quality Assurance checks whether the content and the form of a submitted object meet the quality standards of the company If so the object is released The release transmits the quality assured version of the object to the Production view and thus makes it available to the end user in the published website Remote API The remote API enables you to develop Java programs on the basis of the WCM Java API In contrast to server agents these programs can be executed outside a WCM server The programs developed this way can be executed on any computer that can connect to a WCM server Via the remote API you can use the majority of the WCM Java API interfaces only the way they are called is different Server agent A Java implementation based on the WCM Java API of Livelink WCM Server Server agents can expand or supplement the functionality of the WCM servers Starting point Initial point of a workflow When a workflow is assigned to a WCM object the object is automatically forwarded to the first activity Status The processing state of a WCM object Changes to the state are caused by the corresponding actions on the WCM object 156 Livelink WCM Server WM090700 PJA EN 1 Glossary Submit Staging action of Livelink
43. mail in HTML format with an alternative representation as plain text the method prepareHTMLMail String plainText String htmlText must be called In this case e mail clients that do not support HTML get the plain text In e mail clients that do support HTML the text is displayed in HTML format To attach files to the e mail use the method addAttachment File fileObj String nameInEMail String mimeTyp You may omit the mimeTyp parameter it is automatically determined on the basis of the file extension before the e mail is sent to the SMTP server By means of the method addAttachment Object o the output of the method 0 toString can be used as the data basis for the attachment By means of the method addAttachment InputStream any input stream can be added as an attachment Sending the e mail The EmailData object compiled in the previous step can now be sent from the current WCM server to an SMTP server by means of the method MailHandler sendEMail A valid context ID must be specified The context does not require any further rights it must only be valid on the sending WCM server Optionally a different available WCM server or the SMTP host and port can be specified gt Example 5 24 Sending an e mail with attachment The following code sample shows how to send an e mail with attachment EMailData md VipRuntime getMailHandler createEMailData md setSender sender company example md setSubject a subject
44. message text for the key is listed as follows USER_WELCOME Hello 0 Welcome to i If the current user has the ID jstein and is logged in to the InternetSite website the following code returns the message Hello jstein Welcome to InternetSite UserMessage msg new UserMessage USER_WELCOME userName webSiteName System out printin msg getString Locale en_US al Pool management In a WCM system numerous connections are used The WCM servers communicate with each other connections to the database or the LDAP directory service are required and integration with a third party system may be necessary All connections of a WCM system are managed in pools Each pool is based on a connection type that characterizes the type of connections in this pool There are JDBC pools for the connections to the database and WCM pools for the connections between the WCM servers The predefined connection types are called default connection types Connections on the basis of these connection types are managed by the internal PoolManager of Livelink WCM Server You can create and manage custom connection types On the basis of custom connection types you can create pools for custom connections e g for integrating third party systems with the WCM system Like the pools on the basis of standard WM090700 PJA EN 1 Programming Guide for the WCM Java API 27 Chapter 2 Implementation basics 2 7 1 2 7 2 connect
45. new ObjectId config getProperty template pe de gauss vip api ServerAgent implementation that is not covered by ExampleAgent T register the PrepareChangeListener instance for website event public boolean start String serverType int majorVersion int minorVersion String patchLevel eventDispatcherM addListener websiteNameM PrepareEvent PREPARE_OBJECT_CHANGE_METADATA eventListenerM return true this agent wants to be stopped explicitly deregister the PrepareChangeListener instance for all websites events public void stop eventDispatcherM removeListener eventListenerM will receive events and accesses some fields from enclosing class instance private class PrepareChangeListener 136 Livelink WCM Server WM090700 PJA EN 1 8 4 Monitoring deployment events implements PrepareEventListener throw veto exception if wrong template assignment or if title has been changed public void performVipPrepareEvent PrepareEvent event throws VetoException ObjectId objid ObjectId event getArgument Event ARG_OID RepositoryEntry changed RepositoryEntry event getArgument Event ARG_NEW if changed containsKey FieldNames TEMPLATE ObjectId newTemplate ObjectId changed get FieldNames TEMPLATE if newTemplate null amp amp newTemplate equals templateM throw new VetoException new UserMessage templateVetoKeyM objId getId templateM ge
46. object has a set of additional special attributes metadata Object data Components of a WCM object content metadata and log Object type The specific kind of object e g HTML page HTML template Topic Various properties of the WCM object result from the object type The object type is defined when the object is created There are only a few cases in which it may subsequently be changed Object types can be edited in the Admin client or the Content client Prepare event A prepare event is fired before an action is performed This makes it possible to check the action and if necessary prevent it by a VetoException WM090700 PJA EN 1 Programming Guide for the WCM Java API 155 Glossary Production system The Production system of Livelink WCM Server makes the released pages of a website available to the user By means of a web server these pages can be accessed in the Internet intranet or extranet QA view The QA view of Livelink WCM Server is used for quality assurance of the objects and thus of the website content This view thus performs the control function between editing in the Edit view and publication in the Production view Relator Due to the integration of web content management and Livelink you can add Livelink objects as WCM objects ina WCM managed website These WCM objects are called relators They always refer to a certain version of a Livelink object For integrating a single Enterprise Server
47. objects However if you want to load many objects at once e g for displaying the subordinate objects of a topic in the navigation you should not load the objects individually by means of the ObjectHandler get method as this affects the performance This applies in particular to the remote API because each call of get causes additional network traffic For loading a large number of ObjectData objects at once the interface ObjectLoader is provided This interface offers two methods called blockLoad that make it possible to load a large number of ObjectData objects by a single blockLoad call The objects to be loaded must be specified in a list by means of their OIDs Use the method VipRuntime getObjectLoader String websiteName to request the ObjectLoader interface for a website Specify the name of the website in the call gt Example 5 12 Loading subordinate objects In the following example the subordinate objects of an ObjectData object are loaded get ObjectHandler for the website InternetSite ObjectHandler oh VipRuntime getObjectHandler InternetSite load the root object of the website ObjectData odRoot oh get cid new ObjectId 1 the list contains the OIDs of the objects directly subordinated to the root object root children 80 Livelink WCM Server WM090700 PJA EN 1 5 5 Editing special attributes List rootChildren odRoot getChildren get ObjectLoader for the website Inter
48. of running transactions Iterate through this list to get the DeploymentStatus objects for the individual transactions List runningTransactions ds getRunningTransactions Iterator transactionIter runningTransactions iterator while transactionIter hasNext Long transactionID Long transactionIter next get DeploymentStatus for the individual transactions and output information DeploymentStatus dsTransaction dH getStatus cid InternetSite_edit transactionID System out println oids being analysed in Transaction dsTransaction t dsTransaction getAnalysingOidList System out println dsTransaction getAnalysingMessage Locale getDefault System out printin oids being executed in Transaction dsTransaction dsTransaction getExecutingOidList System out println dsTransaction getExecutingMessage Locale getDefault Ke 6 2 4 Deployment errors The DeploymentHandler interface can also be used to retrieve information on errors that occurred during the deployment For this purpose the following methods are available public List getErrors ContextId cid String dplName ObjectId oid This method provides information on errors that occurred in the specified deployment system while processing a certain object The object is specified by means of its OID WM090700 PJA EN 1 Programming Guide for the WCM Java API 107 Chapter 6 System information and administ
49. respective events will not be triggered until the transaction has been successfully completed Watching the progress of transactions The progress of the transaction processing can be determined using the Progress object This progress control can be updated by another API request Progress update A Progress object can have the following states RUNNING The transaction is currently in progress FINISHED The transaction was finished successfully DEPLOY A locally installed deployment system still has jobs for this transaction DEPLOY_FINISHED The deployment jobs for this transaction on the locally installed deployment systems have been completed ERROR The transaction was cancelled due to an error or an explicit abort request rollbackTransaction 72 Livelink WCM Server WM090700 PJA EN 1 5 2 Actions of the ObjectHandler interface INVALID An attempt was made to determine the progress of an already completed transaction The transaction context is invalid If the current server has its own deployment systems the state of the Progress object changes from FINISHED to DEPLOV In this case you can wait until all locally installed deployment systems have processed the deployment jobs belonging to the transaction all pages generated You can also retrieve the current number of jobs and the number of jobs processed so far The progress of a transaction may look as follows e INVALID e RUNNING gt ERROR e R
50. result gt Example 5 19 Searching objects The following example searches for all WCM objects that were added after a certain date and have the object status released or delayed release RELEASED or PENDING_RELEASE public List filterDemo ContextId cid String websiteName Date createDate ObjectHandler oh VipRuntime getObjectHandler websiteName Filter fi new GreaterFilter FieldNames DATE_CREATED new DateValue createDate Filter f2 new OrFilter new EqualFilter SearchableKeys STATE_NAME new StringValue ObjectState RELEASED new EqualFilter SearchableKeys STATE_NAME new StringValue ObjectState PENDING_RELEASE Filter f new AndFilter f1 f2 List 1 oh filter cid f null null O 1 return 1 4a 5 7 Editing access control lists Each WCM object has an access control list ACL The access control list determines which users groups and roles may access the WCM object and the rights of these principals Access control lists are represented by the Ac1 interface de gauss vip api lang An access control list assigns a Principal object user group role group role or World a set of positive permitted or negative not permitted rights The rights are represented by objects of the VipObjectPermission interface see Table 3 3 on page 43 Use the getACL method of the Obj ectData interface to retrieve the access control list of a WCM object The setACL method changes the access control
51. so the other filters can be used as well gt Example 5 14 Attribute filters new IsNullFilter FieldNames SUBTITLE new StringContainsFilter FieldNames EMAIL_QA new StringValue jstein company example new EqualFilter FieldNames CREATED_BY VipRuntime getAdminHandler getUser jstein new EqualFilter FieldNames CREATED_BY new StringValue jstein 86 Livelink WCM Server WM090700 PJA EN 1 5 6 Searching WCM objects 5 6 2 Predefined search functions as filters The RootTemplateFilter class finds all template objects of a website that do not have a template themselves The SubtreeFilter class can be used to retrieve all WCM objects below a specified WCM object This WCM object may be a topic in the topic structure or a template in the template structure The SubtreeFilter can also be used without entering the Topology parameter see also topology in the glossary In this case the topic structure is considered as default value The PrincipalFilter class searches for WCM objects that have been assigned a certain principal user group or role In addition it is possible to limit the result to WCM objects for which the principal has a certain right VipObjectPermission For further information on principals and access rights see Editing access control lists on page 89 gt Example 5 15 Filter for subordinate objects The following filter returns all WCM objects including the specifi
52. system and on running transactions see Information on the deployment status on page 105 DeploymentHandler interface retrieve error lists and error messages that occurred during a running transaction within a deployment system as well as error messages related to a certain WCM object within a deployment system see Deployment errors on page 107 DeploymentHand1ler interface WM090700 PJA EN 1 Livelink WCM Server 99 Chapter 6 System information and administration 6 1 6 1 1 6 1 2 Changing the system status run levels Retrieve and set run levels see Retrieving and setting run levels on page 109 AdminHand1ler interface Using reports logs and tracing for locating errors e read the logs of the servers see Server logs on page 109 SystemHandler interface e access the reports of the servers see Server reports on page 110 SystemHandler interface e use the tracing functions see Using tracing functions on page 111 SystemHandler interface Note For accessing the system administration functions the administration right Access to system administration is required For further information refer to Administration rights of principals on page 40 You can get an instance of the SystemHandler interface via VipRuntime getSystemHandler an instance of the administration interface via VipRuntime getAdminHand1ler and an instance of the DeploymentHand1ler interface via Vi
53. system might reference a resource that has not yet been generated by the deployment system e The WCM system blocks objects that are currently being edited in a transaction Thus these objects are not available for actions running in parallel Actions and deployment The actual execution of an action continues until the corresponding changes in the WCM objects have been persistently saved on the master Content server and all proxy Content servers have been informed of the changes When an action has been finished this does not necessarily mean that the deployment systems have already generated pages that reflect the changes made to the WCM objects Action and deployment are independent of each other This must be taken into consideration when accessing the generated pages after an action The relevant deployment jobs may not yet have been carried out so that no URL is yet available for a page of a certain deployment system Use the following methods to retrieve information on the progress of the deployment Progress getProcessedJobs Returns the number of completed deployment jobs for a certain transaction 74 Livelink WCM Server WM090700 PJA EN 1 5 2 Actions of the ObjectHandler interface Progress getRemainingJobs Returns the number of deployment jobs for a certain transaction that have not yet been finished It is also possible to wait for the conclusion of deployment jobs for a certain deployment system connected
54. that occurred during a running transaction within a deployment system as well as error messages related to a certain WCM object within a deployment system See Deployment errors on page 107 You can get an instance of the DeploymentHandler interface via VipRuntime getDeploymentHandler Unless otherwise specified all classes and interfaces are included in the package de gauss vip api deployment WM090700 PJA EN 1 Programming Guide for the WCM Java API 103 Chapter 6 System information and administration 6 2 1 6 2 2 Retrieving a list of deployment systems Using the getDeploymentSystems method of the AdminHandler interface you can retrieve the list of all deployment systems The method returns a list of deployment systems as objects of type DeploymentSystem The essential properties of a deployment system are e name e deployment system type EDIT QA PROD e deployment system category STANDARD STANDARD_FLAT DYNAMIC WEBDAV CONTENT and INSITE_EDIT e the website the deployment system is based on e the server on which the deployment system is executed e the directory on the server for storing the generated pages e the base URL used for generating references gt Example 6 3 Reading deployment system information The following code sample shows how to read deployment system information log in user ContextId cid VipRuntime getContextHandler login 3 retrieve AdminHandler Adm
55. the OID of the template to be used The parameter is of type String This agent registers an inner class instance for WM090700 PJA EN 1 Programming Guide for the WCM Java API 135 Chapter 8 Application examples PrepareEvent PREPARE_OBJECT_CHANGE_METADATA events for a configurable website and prevents title changes and template assignments via veto exceptions public class VetoChangeTitleAgent extends ExampleAgent These keys will be localized via UserMessage_ lt langcode gt properties file private final static String templateVetoKeyM VETO_TEMPLATE_FOR_ 0 _SHOULD_BE_ 1 private final static String titleVetoKeyM VETO_TITLE_FOR_ 0 _NOT_CHANGEABLE keep the EventDispatcher singleton private final static EventDispatcher eventDispatcherM VipRuntime getEventDispatcher blank final fields set from website config parameter private final String websiteNameM set from template config parameter private final ObjectId templateM Construct the PrepareChangeListener inner class c f below that will receive events after it has been registered from within start private final PrepareEventListener eventListenerM new PrepareChangeListener constructor reads configuration parameters public VetoChangeTitleAgent Properties config super Company Example VETOCHANGETITLEAGENT_DESC 4 1 8 2 websiteNameM config getProperty website templateM
56. third party system and is managed by the PoolManager 4 The agent that is to establish the connection to the third party system must call the PoolManager method getConnection to get a connection from the user defined pool The PoolManager establishes the connection to the third party system by means of the customOpen method In this process the parameters defined for this pool in the Admin client are supplied 2 7 3 Reports for custom connections For the various software components of the WCM servers reports are created automatically These reports log the actions in the WCM system You can view the reports in the Admin client see Livelink WCM Server Administrator Manual WM AGD The reports can also be accessed via the WCM Java API The SystemHandler interface provides the method public List getCoreReport for requesting a specific report from a server For detailed information refer to Server reports on page 110 Information on custom connections is provided in a corresponding report of the CustomPoolManager which requests the necessary information from the managed custom connections This information is only collected if the method public List getReport String prefix is implemented in the corresponding custom connection The method returns a list This list must be filled with string objects representing the desired report data Each string in the list corresponds to a line in the CustomPoolManager report for this custo
57. with an action For this purpose the additional parameter DeploymentWaitInfo can be used for the corresponding methods of the ObjectHandler interface when performing synchronous staging actions This parameter can also be used to determine how long the system should wait for the deployment to finish gt Example 5 5 Waiting for deployment The following example adds a WCM object and waits a maximum of 10 seconds for the deployment system specified ObjectHandler oh ObjectData objectData oh createInitialObjectData parentOID templateOID type title DeploymentWaitInfo dwi new DeploymentWaitInfo demowebsite_edit 10000 ObjectId oid oh create cid objectData content remark dwi if dwi isTimeout ObjectData od oh get cid oid URL url od getURL demowebsite_edit YH In the case of asynchronous staging actions it is also possible to wait for the conclusion of the deployment The waitForDeployment method of the Progress interface is used for this purpose gt Example 5 6 Asynchronous import and waiting for deployment In the following example the agent carries out an asynchronous import and waits for the specified deployment system for max 10 seconds ContextId tid oh multilmportAsync cid parentOid title startFile initialData remark Progress prog oh getProgress tid if prog waitForDeployment demowebsite_edit 10000 deployment finished f Note I
58. without auxiliary class ObjectHandler oh VipRuntime getObjectHandler DemoWebsite type oh getWebsite getObjectType ObjectType HTML or Website w VipRun time getCurrentServer getWebsite DemoWebsite type w getObjectType ObjectType HTML with auxiliary class type ObjectHandlerUtil getObjectType DemoWebsite ObjectType HTML Editing object data the ObjectData interface By means of the methods of the WCM Java API you can edit the individual components of WCM objects The 0bjectData interface provides the required functions Reading and changing standard metadata on page 77 Retrieving OID and version of WCM objects on page 78 Editing references on page 79 Reading the log on page 79 76 Livelink WCM Server WM090700 PJA EN 1 5 4 Editing object data the ObjectData interface e Editing content on page 79 e Loading several objects at once on page 80 5 4 1 Reading and changing standard metadata The methods for reading and changing the standard metadata of WCM objects are defined in the ObjectData interface The object data of the current WCM object or of an older version of the WCM object is retrieved using the Obj ectHandler interface method get The Javadoc on the ObjectData interface provides detailed information on the respective methods If you want to change attribute values via the ObjectData interface you must consider some points
59. 0 PJA EN 1 3 2 Editing principals t lt a Example 3 4 Searching principals The following example searches for all principals whose e mail address ends with the string company example login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler ah VipRuntime getAdminHandler construct filter expression for searching principals with the domain company example in their e mail address A LikeFilter is used LikeFilter mailFilter new LikeFilter SearchableKeys MAIL new StringValue company example search principals based on this filter List principals ah getPrincipals cid AdminHandler USER_PRINCIPALS null mailFilter 0 1 Example 3 5 Combining filters The second example shows how to combine two filters It searches for all principals with the language setting English and disabled WCM access login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler ah VipRuntime getAdminHandler construct filter expression for searching principals with deactivated access to the WCM system EqualFilter vipAccessFilter new EqualFilter SearchableKeys VIP_ACCESS new BooleanValue false construct filter expression for searching principals with language setting English combine this filter with the vipAccessFilter constructed above EqualFilter languageFilter new EqualFilter SearchableKeys LANGUAGE
60. 0 PJA EN 1 Programming Guide for the WCM Java API 71 Chapter 5 Object management Starting and ending transactions A transaction is requested using the beginTransaction method of the ObjectHandler interface A transaction context an object of the ContextId interface is returned and can be used as an argument for additional actions e g create submit or release All actions using this transaction context are executed within the transaction and do not come into effect until the commitTransaction method is called The changes are not carried out if rollbackTransaction is called By means of the beginTransaction function you can combine several method calls to form a single action With rollbackTransaction the running transaction is aborted or rather the executed changes are undone When the transaction has been performed successfully corresponding changes are confirmed by the commitTransaction method and thus made permanent This means that all actions combined in a transaction are either executed or aborted as a whole After a transaction has been confirmed with commitTransaction the event TRANSACTION_END is fired For detailed information on event processing refer to Event processing on page 51 Notes e Transactions can only be requested and completed on the master Content server i e the beginTransaction and commitTransaction methods are available only there e If actions are executed within a transaction the
61. 26 e Editing relators on page 127 e Deleting relators on page 129 WM090700 PJA EN 1 Programming Guide for the WCM Java API 123 Chapter 7 Accessing Enterprise Server systems 7 3 1 External objects The External0bject interface enables Livelink WCM Server to access external systems e g Livelink ECM Enterprise Server An external object is represented by the External0bject interface Enterprise Server items extend this interface see figure Figure 7 2 on page 119 A relator is a WCM object with an external object as a metadata item gt Example 7 19 Retrieving an external object The following code sample retrieves the external object ContextId cid ObjectHandler oh VipRuntime getObjectHandler mywebsite ObjectId myrelatorOID new ObjectId 123 ObjectData od oh get cid myrelatorOID if od isExternal0dbject ExternalObject extobj od getExternalObject or using an attribute extobj ExternalObject od getAttribute FieldNames EXTERNALOBJECT null Gud If Livelink ECM Enterprise Server is the external system external objects are Enterprise Server documents or Enterprise Server folders Example 7 20 shows how to convert the instances of ExternalObject to the corresponding Livelink interface Example 7 20 Converting an instance of ExternalObject ExternalObject extobj od getExternalObject if extobj getType ExternalObject TYPE_LIVELINK LivelinkObj
62. 7 1 Retrieving information on Enterprise Server systems The following code sample retrieves the connected Enterprise Server systems and outputs the name of the Enterprise Server system as well as the name of the Enterprise Server pool used for the connection LivelinkRuntime 11 LivelinkRuntime getInstance for Iterator i ll getSystemNames iterator i hasNext String systemName String i next System out println System systemNamet uses Enterprise Server pool 11 getSystemConfiguration systemName getPoolName 4 Enterprise Server user administration The LivelinkAdminHandler interface provides methods for reading and searching Enterprise Server principals The users and groups managed in Livelink ECM Enterprise Server are represented by according interfaces Figure 7 1 Class diagram Enterprise Server principals The LivelinkAdminHandler wraps the functions of the Livelink API LAPI for short for administering users and groups In parallel the AdminHand1er interface provides access to the users groups and roles of the WCM system 114 Livelink WCM Server WM090700 PJA EN 1 7 2 Managing Enterprise Server items Use the AdminHandler functions for managing principals if the WCM users are stored in Livelink ECM Enterprise Server i e if both systems use a common user administration If this is not the case use the LivelinkAdminHandler for accessing Enterprise Server users i
63. 74 execute in transactions 71 of object management 68 Activity 153 Activity interface 91 add Enterprise Server item 122 functional area 45 object 68 principal 33 relator 126 addRemark method 68 AdminHandler interface 99 31 administration rights constants of VipAdminPermission 40 edit of principals 100 example for editing 42 Agent 153 agents 13 constructor 14 events 18 ServerAgent interface 14 start 17 stop 18 analyzing deployment orders 106 application examples 131 assignments of principals 46 retrieve 47 substitute 47 Asynchronous action 153 Attribute set 153 attribute sets 81 AttributeHandler interface 81 attributes 81 attribute sets 81 object categories 82 authentication 90 Cc change run level 109 change method 68 checkin 68 Checkin 153 check out 68 undo 68 Check out 154 checkin method 68 checkout method 68 class specific tracing 111 classes BooleanValue 83 DateValue 83 DoubleValue 84 ExternalObjectRelator 125 IntegerValue 83 WM090700 PJA EN 1 Livelink WCM Server 159 Index Link 83 ListValue 83 LivelinkObjectFactory 122 LivelinkRelator 125 LivelinkRuntime 113 LocaleValue 84 LongValue 83 ObjectHandlerUtil 76 ObjectlId 84 78 PoolConnection 28 PrincipalFilter 87 RepositoryEntry 78 RootTemplateFilter 87 SetValue 83 StringValue 83 SubtreeFilter 87 Text 84 TimeValue 84 UserMessage 26 Version 78 VipApiException 25 VipRuntime 11 constants for administratio
64. Case world ctxId ch getWorldContextId 144 Livelink WCM Server WM090700 PJA EN 1 8 5 Converting special characters else ctxId ch login userNameM userPasswordM context should not time out ch startContextRefresh ctxId bLoginM true catch VipApiException vaex The inner class StringAnalyzer is responsible for analyzing and if necessary changing the metadata to be monitored The StringAnalyzer class is implemented as EventListener to make it possible to register objects of this class for certain events In the performVipEvent method the metadata to be checked are retrieved and if necessary modified by calling the correctString method of the StringAnalyzer public class StringAnalyzer implements EventListener public void performVipEvent Event event try String website String event getConstraint ObjectHandler oh VipRuntime getObjectHandler website ObjectId oid ObjectId event getArgument Event ARG_OID ObjectData od oh get ctxId oid String targetGroup od getTargetGroup Set keywords od getKeywords String description od getDescription boolean bChange false if targetGroup null amp amp targetGroup length gt 0 String newTargetGroup correctString targetGroup if targetGroup equals newTargetGroup od setTargetGroup newTargetGroup bChange true if keywords null amp amp keywords isEmpty
65. DIT event 56 PREPARE_RELEASE_OBJECT event 56 PREPARE_REMOVE_WORKFLOW event 56 PREPARE_SUBMIT_OBJECT_TO_QA event 56 PREPARE_UNDO_CHECKOUT_OBJECT events 56 PrepareEvent interface 57 PrepareEventListener interface 57 Principal interface 32 PrincipalFactory interface 33 principals 32 add 33 administration rights 100 164 Livelink WCM Server WM090700 PJA EN 1 Index delete 37 edit assignments 46 edit profiles 35 34 edit rights 40 retrieve profiles 34 search 35 WCM attributes for LDAP principals 38 Production system 156 profiles edit 35 of principals 34 retrieve 34 Progress interface 72 properties of deployment systems 103 of functional areas 45 of servers 100 ofusers 34 of websites 102 Q QA view 156 R read OID 78 references 79 reject 68 reject method 68 related documentation 7 relator 123 add 126 delete 129 edit 127 edit content 128 edit deployment specific metadata 127 edit Enterprise Server metadata 127 Relator 156 release 68 Release 156 release method 68 Release Notes 7 remark add 68 remote API 18 request 19 request via SSL 20 Remote API 156 RemoteRuntime interface 19 remove functional area 45 principal 37 reports 110 reports of servers 110 RepositoryEntry 78 reserve Enterprise Server item 123 restoreVersion method 68 retrieve assignments 47 functional areas 45 profiles of principals 34 rights 67 edit 40 for administrators of the
66. Definition oun Figure 5 1 Object management components The following interfaces are of central importance ObjectHandler interface This interface contains methods for adding and deleting WCM objects for performing staging actions e g submit or release and for getting object data to be processed See Actions of the ObjectHandler interface on page 67 ObjectData interface This interface contains methods for editing the metadata of WCM objects See Editing object data the ObjectData interface on page 76 AttributeHandler interface This interface provides methods for editing attribute sets and object categories WM090700 PJA EN 1 Livelink WCM Server 59 Chapter 5 Object management 5 1 5 1 1 See Editing special attributes on page 81 ACL interface This interface contains methods for editing the access control lists of WCM objects See Editing access control lists on page 89 The ObjectHandlerUtil class provides auxiliary methods to facilitate access to frequently used objects of the WCM Java API see The ObjectHandlerUtil utility class on page 76 Moreover this chapter provides information on searching objects by means of filter functions see Searching WCM objects on page 84 Conditions for editing objects Whether a WCM object can be edited and which functions are available for this purpose depends on several factors e Object statuses constants an
67. HTML to set this text The individual methods are described in detail in the Javadoc of the EMailInfo class It is also possible to use the default text for HTML e mails and a user defined text for plain text e mails and vice versa Configuring e mail In the file lt WCM installation directory gt config mail conf xml you can configure the content of the e mails generated automatically by the WCM system This also includes the e mails generated by the utility Release control and by the server agents ExpirationNotification and ReleaseNotif ication Note Custom server agents can optionally request an EMailInfo object corresponding to the configuration by calling the method EMailInfo CreateConfiguredInstance WM090700 PJA EN 1 Programming Guide for the WCM Java API 95 Chapter 5 Object management In the configuration file you determine whether and in which way e mails in plain text or HTML are generated You also define which e mails are available in Content clients For the changes to take effect all servers must be restarted For further information on the individual configuration parameters refer to the Javadoc of the EMailInfo class Notes e The settings in the configuration file mail conf xm1 apply to all websites that are managed by the Administration server e The encoding of the e mails sent is limited to ISO 8859 1 Adapting the representation There are several possibilities to adapt the representatio
68. Joshua Stein String userId jstein define passwort e mail address and language of the new user String passwd 4711 WM090700 PJA EN 1 Programming Guide for the WCM Java API 33 Chapter 3 User administration String email joshua stein company example LocaleValue loc new LocaleValue en_US create the new user by means of the PrincipalFactory AdminHandler aH VipRuntime getAdminHandler PrincipalFactory princFac aH getPrincipalFactory cid User usrNew princFac createUser userId userCN ldapRootPos email loc passwd true add the new user to the WCM system by means of the AdminHandler method void add ContextId Principal aH add cid usrNew al 3 2 2 Profiles of principals Each principal has a number of properties which constitute this principal s profile Users groups and roles have a number of common properties such as name and e mail address For groups and roles the users belonging to the group role can be specified Users have additional properties such as the user ID and the password for logging in to the WCM system a language and a substitute Notes e Notall of a principal s properties can be changed subsequently e g the user ID or the name of a group role e For information on changing the administration rights and the default object rights of principals refer to Editing rights of principals on page 40 For notes on editing the assignments of
69. OBJECT_WORKFLOW_ASSIGNED OBJECT_WORKFLOW_FORWARDED OBJECT_WORKFLOW_REMOVED TRANSACT ION_END For detailed information on the individual events and the associated arguments refer to the Javadoc For an example of a server agent which registers for the events OBJECT_CREATED and OBJECT_METADATA_CHANGED refer to Converting special characters on page 142 System related events System related events do not refer to the single WCM objects of a website but rather to the WCM system as a whole That is why there is no Constraint argument for these events that contains the name of the website The getConstraint method from the Event interface always returns null The following events belong to this category RUNLEVEL_DECREASES RUNLEVEL_INCREASES RUNLEVEL_IS USER_LOGIN WM090700 PJA EN 1 Programming Guide for the WCM Java API 53 Chapter 4 Event processing USER_LOGOUT WEBSITE_DELETED WEBSITE_NEW For detailed information on the individual events and the associated arguments refer to the Javadoc gt Example 4 1 Registering for an event The following code sample shows a registration for the Run level change complete event RUNLEVEL_IS The agent is notified when the server has completed booting the configured website For additional information on registration for events refer to Event dispatchers on page 58 public class DemoAgent implements de gauss vip api ServerAgent private final static de
70. OUT_OBJECT For detailed information on the individual events and the associated arguments refer to the Javadoc For an example of a server agent that throws a VetoException refer to Vetoing metadata changes on page 135 Preparation events for deployment related actions are represented by the DeploymentPrepareEvent interface Before a persistently stored page is created or changed the corresponding deployment system informs registered event listeners by means of the preparation event PREPARE_FILE_CHANGED This provides the possibility to review the impending change and if necessary prevent it by a VetoException Notes e A veto against page generation usually results in inconsistencies i e the page does not reflect the current state of the WCM object any longer For this reason you should not use this veto possibility 56 Livelink WCM Server WM090700 PJA EN 1 4 3 Event listeners e Deployment related preparation events are available on the Content server on which the deployment system is installed 4 3 Event listeners To be able to react to certain events an agent must register for the desired event by means of an event listener When the event occurs the event dispatcher informs all event listeners registered for this event by calling their method performVipEvent or performVipDeploymentEvent with the respective event as an argument The same applies to preparation events In this case the method perform
71. PJA EN 1 Programming Guide for the WCM Java API 119 Chapter 7 Accessing Enterprise Server systems attributes i e attributes which are always present for the respective item type and attributes from an Enterprise Server category The standard attributes are defined by means of the constants of the respective interface of the Enterprise Server item type The names of these constants start with META_ Use the getAttributeNames method to retrieve the standard attributes gt Example 7 9 Retrieving attributes of an Enterprise Server item The following code sample retrieves all standard attributes of an Enterprise Server item and outputs the associated attribute definitions If the attribute is represented by a string the attribute value is output LivelinkObject llobj for Iterator i llobj getAttributeNames iterator i hasNext Key attr Key i next AttributeDefinition lldef llobj getAttributeDefinition attr System out printin attr attrt attrdef lldef Value val llobj getAttribute attr StringValue if lldef getAttributeType getId AttributeType TYPEID_STRING StringValue sv StringValue val System out printin String attribute value sv 4a In the same way attributes from Enterprise Server categories can be retrieved you only have to supply the category name gt Example 7 10 Retrieving categories of an Enterprise Server item The following code sample
72. Programming Guide for the WCM Java API 117 Chapter 7 Accessing Enterprise Server systems 7 2 2 gt Example 7 7 The following code sample retrieves all items of an Enterprise Server system that the logged in user is allowed to access ContextId cid LivelinkObjectHandler lloh LivelinkRuntime getInstance getObjectHandler systemName LivelinkObject llroot lloh getRoot cid LinkedList items new LinkedList items add llroot while items isEmpty LivelinkObject llobj LivelinkObject items removeFirst System out printin Found Livelink object llobj getName if 1llobj hasChildren for Iterator i llobj getChildrenids iterator i hasNext LivelinkId childid LivelinkId i next LivelinkObject llchild lloh getAccessible cid childid if llchild null ignore objects that cannot be read items addLast llchild 4a Checking permissions for an Enterprise Server item Use the hasPermission method of the LivelinkObjectHandler interface to check the permissions for an Enterprise Server item gt Example 7 8 Checking permissions for an Enterprise Server item The following code sample checks whether the current user is allowed to add an Enterprise Server item ContextId cid LivelinkObjectHandler lloh LivelinkId llparentid new LivelinkId 123 if lloh hasPermission cid 1llparentid LivelinkObject PERM_CREATENODE System out printi
73. Server on page 119 e Retrieving the metadata of an Enterprise Server item on page 119 Reading log entries on page 121 e Reading content on page 121 Performing actions on an Enterprise Server item on page 122 WM090700 PJA EN 1 Programming Guide for the WCM Java API 115 Chapter 7 Accessing Enterprise Server systems 7 2 1 Accessing Enterprise Server items Identifying Accessing Enterprise Server items presupposes that the items can be clearly Pedi oy i identified In Livelink ECM Enterprise Server each object item is identified by means of its node ID For accessing the Enterprise Server item the WCM Java API uses the so called Enterprise Server ID which is generated from the node ID For this purpose the LivelinkId class is used To refer to a certain version of the Enterprise Server item this version must be specified when generating the Enterprise Server ID If no version is specified the ID refers to the current version of the Enterprise Server item Additionally some constructors require the volume ID If you do not know this ID you can specify 0 for more information refer to the LAPI documentation gt Example 7 3 The following example illustrates how to use the different constructors reference to node 123 LivelinkId 1llid1 new LivelinkId 123 reference to node 123 and version 2 with unspecified volume ID LivelinkId 1lid2 new LivelinkId 0 123 2 same as ab
74. Server principals even if the WCM system does not use the Enterprise Server user administration WM090700 PJA EN 1 Livelink WCM Server 31 Chapter 3 User administration 3 1 3 2 For information on accessing the user administration of Livelink ECM Enterprise Server via the LivelinkAdminHandler interface refer to Enterprise Server user administration on page 114 The Principal interface The Administration server manages users groups and roles among other things In the WCM Java API these right bearers are represented by objects that implement the Principal interface Each principal has a unique name and a type The getUser getGroup and getRole methods of the AdminHand1ler interface return a corresponding Principal object The TYPE_GROUPROLE type represents a group role that can be created by an object of the GroupRole class Group roles are not managed in the Admin client they are provided for use in access control lists of WCM objects A group role defines the intersection of the users of a group with the users of a role The group role includes those users who are assigned to both the group and the role please refer to Livelink WCM Server Content Client User Guide WM UCC for further information The TYPE_WORLD type represents the predefined group World and is also used only for the definition of access rights in the access control lists of WCM objects In a WCM system there is only one object of the re
75. System out printin Log e getDate t te getUser getName e getMessage Locale ENGLISH 4a Editing content Livelink WCM Server stores the content of WCM objects in a database table Use the getContent method of the ObjectData interface to read the stored content The content is copied to the specified OutputStream object In addition you can check whether a WCM object has content at all hasContent and if so how many bytes the content consists of getContentSize WM090700 PJA EN 1 Programming Guide for the WCM Java API 79 Chapter 5 Object management 5 4 6 gt Example 5 11 Retrieving object content The following example reads the content of a WCM object and copies it to the file test tmp ObjectData od if od hasContent FileOutputStream out new FileOutputStream test tmp od getContent out out close ea The difference between getContent and getCheckOutContent is that getCheckOutContent adapts references used in the content to the deployment system that is specified as an argument This means that this method returns the content used for editing e g in the Content client You can also supply nu11 in the deployment system parameter of getCheckOutContent In these cases the references are not adjusted accordingly For further information refer to the Javadoc Loading several objects at once Usually the get method of the ObjectHandler interface is used to load ObjectData
76. UNNING gt FINISHED e RUNNING FINISHED DEPLOY DEPLOY_FINISHED i Notes e The progress can only be determined as long as the transaction context remains valid At the end of a transaction the transaction context is invalid whether or not the transaction was successful e The progress of the deployment can only be determined for locally installed deployment systems Example The following WCM objects are to be synchronously submitted and asynchronously released OIDs 1 3 10 15 execution on the master Content server The progress of the release action is displayed After that the sample program waits until all locally installed deployment systems have finished the jobs belonging to the transaction ObjectHandler oh VipRuntime getObjectHandler website ContextId cid VipRuntime getContextHandler login userid password List 1 ObjectHandlerUtil toOIDList 1 3 10 15 oh submit cid 1 null null nul11 ContextId tid oh releaseAsync cid 1 null null Progress prog oh getProgess tid while prog getState Progress RUNNING System out println state prog getMessage Locale getDefault step prog getCurrentStep max prog getNumberOfSteps prog update Thread currentThread sleep 200 if prog getState Progress ERROR System out println error prog getException getMessage else FINISHED prog update while prog getState Progress DEPLOY
77. Utes 0 0 iiiter EREE EEA ERANA 81 Searching WCM Objects nurin a E EE a 84 Editing access Control liSts niriana a i eaaa 89 Performing workflow actions 0 cccccceceseeeeeeeeneeeeeeeeteeeeeetaeeeeentaeeeeenaaes 90 Converting objects 2 2 eee eect eee iai a a aai 92 E Mall SUPDOM E EEE E AE ET A EAE NA 94 System information and administration eee 99 Retrieving information on the WCM system cceeeeeeeeeteeeeenee 100 Information on the deployment ecceeeeeeeeeeeeeteeeeeeeteeeeenaeeeeeenaees 103 Retrieving and setting run levels ceeeeeeeeee eee eeeee eee tteeeeenaeeeeeea 109 Logs reports ANC tracing cccccceececeeeeeeceeeeeeeeeeeeceeaeeeeeeeseteesseaeeees 109 Accessing Enterprise Server system ssseeeeeeeeees 113 Enterprise Server user administration cccccceeceeeeeeeeeeeeeeseeeees 114 Managing Enterprise Server iteMS ccccececceeeeeeeeeeeeenneeeeenaeeeeenee 115 Relator S veri eee tice dees aA AAEE EN Ni EE AAEE EEEN EA 123 Application examples 2 ccccccceceeeeeeeeeeeeeeeeeeeneneseeeeeeeeeanees 131 Basic class ExampleAgent cccccceceeeeceeeesieeeeeeenieeeeetieeeeennieeeeeaea 132 Automatic SUDMISSION airi aee E EEEE AEE N 133 Vetoing metadata changes sssessssessreeserrrrsrrrnnesreneernnnnsrenneasienesene 135 Monitoring deployment events ssessssseessseerreerrresetrssretrrsrrrsssterssent 137 Converting sp
78. Version the major release number of Livelink WCM Server param minorVersion the minor release number of Livelink WCM Server param patchLevel the micro patch level release number of Livelink WCM Server return lt tt gt true lt tt gt because the agent wants link stop to be called IERE E AEL E TE e E TE E e E public boolean start String serverType int majorVersion int minorVersion String patchLevel try stopM false Thread thread new Thread this nameM Start the thread s run method thread start return true catch Exception ex ex printStackTrace return false ek Stops the thread that the agent has started public void stop synchronized mutexM stopM true mutexM notify interface EventListener jee Adds the given event to the internal todo queue param event Event to be handled SI public void performVipDeploymentEvent DeploymentEvent event synchronized mutexM todoM addLast event mutexM notify interface Runnable ae 138 Livelink WCM Server WM090700 PJA EN 1 8 4 Monitoring deployment events Registers for deployment events Waits for events to be performed in a loop Leaves the loop as soon as link stop has been invoked Deregisters for deployment events before returning i public void run DeploymentEvent event null try System out println
79. VipPrepareEvent or performDeploymentPrepareEvent is called with the preparation event as an argument When an event listener receives an event e g OBJECT_METADATA_CHANGED it may be possible that the respective WCM object does no longer exist in the current version e g because it has been finally deleted in the meantime destroy action Unlike preparation events events are sent asynchronously For example a staging action such as submit may have been executed before the event for the previous step in the staging is fired When the WCM object is read as the result of an event the version of the object should be compared with the version of the event This can be done in the method performVipEvent If the versions are different or if the object cannot be found you can try to read the archived object ObjectHandler get oid version The version of a WCM object is saved in the argument ARG_VERSION for each event Event listeners are provided by the following interfaces EventListener for website related and system related events Event listeners for website related and system related events must implement the interface EventListener de gauss vip api event This interface contains a method that is called when a registered event occurs This method is called when the action causing the event has been completed DeploymentEventListener for deployment related events Event listeners for deployment events must implement the interface Dep
80. WCM Java API 143 Chapter 8 Application examples if websitesM null websitesM isEmpty System err printin KeywordAnalyzerAgent start No website specified return false if userNameM null System err printin KeywordAnalyzerAgent start No user specified return false Iterator wsIter websitesM iterator while wsIter hasNext String w String wsIter next register agent on RUNLEVEL_IS for login purposes VipRuntime getEventDispatcher addListener null Event RUNLEVEL_IS this register StringAnalyzer on Events METADATA_CHANGED and OBJECT_CREATED VipRuntime getEventDispatcher addListener w Event OBJECT_METADATA_CHANGED analyzerM VipRuntime getEventDispatcher addListener w Event OBJECT_CREATED analyzerM return true The agent logs in the specified user in the method performVipEvent when the run level required for this action is reached in one of the monitored websites Logout of the user is performed by the method stop of the agent This is however not explained here public void performVipEvent Event event Integer level Integer event getArgument Event ARG_NEW String eventWebsite String event getArgument Event ARG_WEBSITE if level intValue Runlevel WEBSITE_UP amp amp websitesM contains eventWebsite amp amp bLoginM try ContextHandler ch VipRuntime getContextHandler if userNameM equalsIgnore
81. WCM attributes in LDAP on page 38 e editing principal rights see Editing rights of principals on page 40 e adding and deleting functional areas as well as retrieving information on functional areas see Editing functional areas on page 44 e assigning users to groups roles assigning functional areas and websites to principals removing these assignments see Editing principal assignments on page 46 An instance of the administration interface can be created via VipRuntime getAdminHandler i Note For accessing the user administration data administration rights are required e g the right Create change delete principal for adding principals and editing principal information For an overview of all administration rights refer to table 3 2 The following sections briefly describe the administration interface Unless otherwise specified all classes and interfaces are included in the package de gauss vip api admin If Livelink WCM Server uses the user administration of Livelink ECM Enterprise Server you can use the AdminHandler interface of the WCM Java API to access the users in the same way as for user administrations based on an RDBMS or an LDAP system Additionally the WCM Java API provides the LivelinkAdminHandler interface for accessing Enterprise Server groups and users This interface wraps the user management functions of the Livelink API LAPI for short In this way you can access Enterprise
82. WCM system 100 roles 32 add 33 delete 37 edit assignments 46 edit rights 40 profile 34 search 35 run level set 109 Runlevel interface 109 RUNLEVEL_DECREASES event 53 RUNLEVEL_INCREASES event 53 RUNLEVEL_IS event 53 Runtime interface 19 S search additional search attributes 87 predefined search function 87 principals 35 search parameters 88 WCM objects 84 search attributes ACL_OWNER 87 STATE_NAME 87 TYPE_NAME 88 SearchableKeys interface 87 Server interface 100 server administration 100 Server agent 156 server agents 13 configuration 14 constructor 14 WM090700 PJA EN 1 Programming Guide for the WCM Java API 165 Index events 18 ServerAgent interface 14 start 17 stop 18 servers information 100 readlogs 109 read reports 110 set runlevel 109 tracing 111 several objects load 80 special attributes 81 staging views constants 62 standard metadata 81 start server agents 17 Starting point 156 STATE_NAME search attribute 87 Status 156 status change configure e mail 95 generate e mail 95 status information on deployment 105 stop server agents 18 submit 68 Submit 157 submit method 68 substitute assign 47 Support 10 system administration 99 system information 99 system related events 109 SystemHandler interface 99 T Target group 6 terminology 9 Topology 157 TraceFilter interface 111 tracing 111 Transaction 157 transaction context 74 transactions 71 deplo
83. ample 5 20 Editing an access control list retrieve the AdminHandler and the ObjectHandler for the website demosite AdminHandler ah VipRuntime getAdminHandler ObjectHandler oh VipRuntime getObjectHandler demosite retrieve the ObjectData for the object with the oid 14 ObjectData odObj oh get cid new ObjectiId 14 retrieve the ACL for oid 14 Acl acl od0bj getACL grant the rights READ and READ_PRODUCTION to the user jstein for oid 14 User jstein ah getUserProfile cid jstein AdminHandler NO_ASSIGNMENTS acl addPermission jstein VipObjectPermission READ Ac1 GRANT acl addPermission jstein VipObjectPermission READ_PRODUCTION Ac1 GRANT od0bj setACL acl oh change cid odObj granted read rights for user jstein Gul 5 8 Performing workflow actions For general information on the workflow in Livelink WCM Server refer to WCM objects in the workflow on page 64 All classes and interfaces described here are included in the package de gauss vip api wfm A workflow object contains a workflow definition and is represented by the Workf low interface The workflow objects of a website are managed by means of the Workf lowHandler interface To request the Workf lowHandler via the method VipRuntime getWorkf lowHand1er the name of the website must be supplied 90 Livelink WCM Server WM090700 PJA EN 1 5 8 Performing workflow actions To retrieve the names of all
84. ask of the assigned principal 64 Livelink WCM Server WM090700 PJA EN 1 5 1 Conditions for editing objects By means of the transitions the WCM object is forwarded from one activity to the next The necessary staging transitions are automatically performed in the background Note It is not possible to perform normal staging transitions on WCM objects to which a workflow is assigned The following actions are rejected with an error Submit release toQa reject direct release delete destroy The following staging transitions can be represented in the workflow The specified actions are automatically performed in the background Table 5 4 Workflow transitions and required staging actions 5 1 4 to Edit QA Delete Release Destroy from Edit No action submit delete direct direct required release destroy QA reject No action Transition release Transition required impossible impossible Delete reject Transition Noaction Transition destroy impossible required impossible Notes 1 The action direct release releases the object directly The functional area Direct release and the metadata item Direct release are not checked 2 The action direct destroy destroys the object i e permanently deletes it from the WCM system If necessary the object is automatically submitted to Quality Assur ance for deletion When a workflow is assigned to a WCM object the latest rel
85. ation provides most of the LAPI functions For more information refer to the Javadoc of the WCM Java API e You cannot access Enterprise Server systems via the remote API e Objects in Livelink ECM Enterprise Server are called items For this reason the term Enterprise Server items is used for objects from Livelink ECM Enterprise Server The LivelinkRuntime class is the central class for the Enterprise Server integration This class provides the point of access to the interface LivelinkAdminHandler access to the Enterprise Server user administration and to the interface LivelinkObjectHandler access to the object management of Livelink ECM Enterprise Server LivelinkAdminHandler llah LivelinkRuntime getInstance getAdminHandler systemName LivelinkObjectHandler lloh LivelinkRuntime getInstance getObjectHandler systemName WM090700 PJA EN 1 Livelink WCM Server 113 Chapter 7 Accessing Enterprise Server systems 7 1 LivelinkAdminH andler versus AdminHandler Enter the parameters of the Enterprise Server systems which Livelink WCM Server is to access in the livelink systems xml file This file is located in the directory lt WCM installation directory gt config Refer to the Livelink WCM Server Enterprise Server Integration Manual WM CLL for detailed information about this file By means of LivelinkRuntime you can retrieve all connected Enterprise Server systems and their configuration Example
86. bjectHandler interface 115 LivelinkRelator class 125 LivelinkRuntime class 113 LivelinkVersion interface 121 load several objects 80 localization error messages 25 messages 26 logged in users 100 logging in 90 logging out 90 login 90 logout 90 logs of Enterprise Server items 121 of servers 109 of WCM objects 79 read server logs 109 M MailHandler interface 94 message files 26 messages localization 26 translation 26 metadata 81 81 edit of relators 127 edit of WCM objects 68 of an Enterprise Server item 119 of deployment 104 methods synchronous and asynchronous 69 MIME type 98 move 68 move method 68 multilmport method 68 N new Enterprise Server item 122 functional area 45 object 68 principal 33 relator 126 0 object add 68 add remark 68 check in 68 check out 68 68 convert 92 68 copy 68 create method 68 delete 68 edit 59 edit metadata 68 events after actions 52 find filter 84 get for editing 68 identify Enterprise Server 116 import 68 move 68 reject 68 release 68 restore old version 68 submit 68 undo check out 68 WM090700 PJA EN 1 Programming Guide for the WCM Java API 163 Index object category edit 82 Object category 155 object data 84 attributes 81 content 128 log 79 OID 78 references 79 standard metadata 81 version 78 Object data 155 object management 59 object rights 67 constants of VipObjectPermission 43 object status 60 Object t
87. ble to use the methods of the individual interfaces especially object management and administration For many actions the access control lists of the WCM objects are checked to determine whether the user has the required rights The ContextHandler interface is used to log in to or log out of a server The methods of this interface provide the following functions e authenticating a user in the WCM system managing the context of a user login e changing the password e determining the user belonging to a context including the user s profile with all websites and functional areas directly and indirectly assigned e logging in as the substitute for another user A context usually has a limited life span If no actions are performed over a certain period of time the context becomes invalid The WCM Java API provides methods for using a context for any period of time even if no actions are performed In addition to user login functions the ContextHandler interface provides two predefined contexts that can be used for accessing WCM objects World and Backup see Predefined contexts on page 24 Note In addition to user contexts there are transaction contexts see User and transaction contexts on page 74 Login and logout Users may log in as often as they like Each login returns a different ContextId object which is unique within the WCM system 22 Livelink WCM Server WM090700 PJA EN 1 2 4 Authentication and
88. bles you to create and change principals edit assignments request information on servers websites and deployment systems as well as to retrieve and change run levels See User administration on page 31 and System information and administration on page 99 The EventDispatcher and DeploymentEventDispatcher interfaces The event management offers an interface for registering and deregistering event listeners This interface is a central element for the current server and dispatches events to registered listeners These events may refer to the entire WCM system websites or the deployment Agents can register for an event which is triggered before an action is executed PrepareEvent or after the action has been executed successfully Event In the first case an action can be aborted by a veto in the form of an Exception See Event processing on page 51 The ObjectHandler interface The object management interface permits access to the WCM objects of a website All known Content client actions that can be performed on WCM objects are supported e g add submit release filter and delete WCM objects See Actions of the ObjectHandler interface on page 67 The AttributeHandler interface This interface can be used to read all attribute sets and object categories used for a website See Editing special attributes on page 81 12 Livelink WCM Server WM090700 PJA EN 1 2 2 Server agents
89. ceFilter add TraceFilter METHOD_ENTER traceFilter add TraceFilter METHOD_LEAVE traceFilter add TraceFilter FATAL_ERROR J activate global tracing for the current server sysHandler setGlobalTraceFilter cid currentServer traceFilter For reading the content of the trace log use the method getTraceFile To completely delete the trace settings for a server and thus deactivate tracing supply null instead of the list in the method setGlobalTraceFilter 112 Livelink WCM Server WM090700 PJA EN 1 Chapter 7 Accessing Enterprise Server systems The LivelinkRuntim e class The WCM Java API enables access to Enterprise Server systems By means of the appropriate methods you can e retrieve Enterprise Server principals see Enterprise Server user administration on page 114 e read add modify and delete Enterprise Server items see Managing Enterprise Server items on page 115 e add Enterprise Server items as WCM objects to a WCM managed website and modify these objects see Relators on page 123 The package de gauss livelink and its subpackages contain the classes for access to Livelink ECM Enterprise Server i Notes e The classes and interfaces for the Enterprise Server integration are implemented on the basis of the Livelink API LAPI for short The constants used are based on the LAPI constants For more information refer to the LAPI documentation e The Enterprise Server integr
90. certain transaction i e specify a transaction ID when calling DeploymentHandler getStatus you can also retrieve lists with the OIDs of the WCM objects whose pages are being analyzed processed in this transaction Use the methods getAnalysingOidList and getExecutingOidList for this purpose Moreover messages as strings describing the progress of the analysis or job execution can be called for the transaction For 106 Livelink WCM Server WM090700 PJA EN 1 6 2 Information on the deployment this purpose the methods getAnalysingMessage and getExecutingMessage are used If the deployment status was requested without a transaction ID the methods return null After a transaction has been completed status information is no longer available gt Example 6 5 Retrieving information on deployment status The following example shows how to return the OIDs of the WCM objects whose pages are currently being analyzed processed The associated messages are also requested The status information refers to all actions running in a deployment system i e no transaction ID is supplied log in and get DeploymentHandler ContextId cid VipRuntime getContextHandler login DeploymentHandler dH VipRuntime getDeploymentHandler InternetSite get DeploymentStatus interface for the complete deployment system i e not for a specific transaction DeploymentStatus ds dH getStatus cid InternetSite_edit null get list
91. contexts A ContextId object hides the actual implementation of the user context as well as the assigned information which user logged in when and where which actions the user performed etc For security reasons the interface does not contain any methods Using the ContextHandler interface you can log in as the substitute of another user and thus work with the object rights of this user Example 2 5 demonstrates a substitute login gt Example 2 5 Substitute login ContextId cid ContextHandler ch ch VipRuntime getContextHandler cid ch login herbert vip ch substituteLogin cid jstein Executing actions with the cid Log out ch logout cid lt a After logging in as a substitute the existing ContextId represents the context of the substitute and no longer the context of the originally logged in user For each logged in user the profile can be retrieved Example 2 6 returns a User object which automatically contains the profile gt Example 2 6 Retrieving a user profile ContextId cid VipRuntime getContextHandler login userName password User user VipRuntime getContextHandler getUser cid System out printin hasProfile returns user hasProfile a i Notes e The system administration offers a detailed overview of the users that are currently logged in to the WCM system The getActiveUsers method of the SystemHandler interface is used for this purpose
92. d DeploymentEvent see Normal events on page 52 WM090700 PJA EN 1 Livelink WCM Server 51 Chapter 4 Event processing 4 1 4 1 1 e which preparation events are defined in the interfaces PrepareEvent and DeploymentPrepareEvent see Preparation events on page 56 e how to implement event listeners and event dispatchers see sections Event listeners on page 57 and Event dispatchers on page 58 Normal events Ina WCM system events are fired when the status of a WCM object changes a page is being processed or when the status of the entire system changes Accordingly events belong to different categories e website related events that refer to the status changes of a website s WCM objects e system related events that refer to the status change of the WCM system e deployment related events referring to status changes of pages as well as to the creation or deletion of a deployment system Website related and system related events are represented by objects of the Event interface see The Event interface on page 52 deployment related events are represented by the DeploymentEvent interface see The DeploymentEvent interface on page 55 The Event interface After a successful status change events are fired which are represented by objects of the Event interface Website events always refer to exactly one website Use the getConstraint method to determine the name of this website
93. d null try od oh get cid new ObjectId 4711 catch AccessDeniedException aex System out printin cannot access object with oid 4711 aex printStackTrace retrieve object type ObjectType type od getObjectType 66 Livelink WCM Server WM090700 PJA EN 1 5 2 Actions of the ObjectHandler interface System out println object 4711 has type type getDescription Locale getDefault retrieve the name of the attribute set belonging to the object type String attrSetName type getAttributeSetName AttributeSet attributes VipRuntime getAttributeHandler InternetSite getAttributeSet attrSetName System out printin attributes attributes eal 5 1 5 Access rights for WCM objects In Livelink WCM Server there are nine access rights for WCM objects Certain actions on WCM objects are only possible if the respective right for the current user exists directly or indirectly in the WCM object s access control list Directly assigned rights are the rights of the individual user Indirectly assigned rights are the rights of the group or role the user belongs to The object access rights are represented by constants of the VipObjectPermission interface see Table 3 3 on page 43 For information on editing the access control list of a WCM object refer to Editing access control lists on page 89 Whether an action is permitted for a WCM object is checked as follow
94. d Value interfaces The object data can also be represented as a container of attribute value pairs refer to Representation as a RepositoryEntry on page 78 Livelink WCM Server also manages attributes from attribute sets and object categories in the form of attribute value pairs They are also required for constructing search filters see Searching WCM objects on page 84 The Key and Value interfaces are part of the package de gauss Lang This package includes concrete implementations of these interfaces which represent realizations for attribute values The following list contains the elementary classes used in Livelink WCM Server for the attribute values e StringValue e DateValue e IntegerValue e LongValue e ListValue e BooleanValue e SetValue e Link WM090700 PJA EN 1 Programming Guide for the WCM Java API 83 Chapter 5 Object management 5 6 Objectid DoubleValue Text TimeValue LocaleValue The StringValue class implements the Key interface among other things Searching WCM objects The ObjectHandler filter method enables you to search for WCM objects A search condition is represented as an object of the Filter type These filter objects can be used to model logical expressions that can be evaluated as the Boolean value true or false Complex filters can be compiled by means of logical links There are basically three different filter class categories filters based on the attributes of
95. d metadata each WCM object has several special attributes which consist of the following e the attributes of the assigned attribute set of the object type used e the properties of the object category or categories assigned to the WCM object To change special attributes use the AttributeHandler interface see Editing special attributes on page 81 WM090700 PJA EN 1 Programming Guide for the WCM Java API 77 Chapter 5 Object management 5 4 2 For information on searching for attributes see the on Attribute filters on page 85 Representation as a RepositoryEntry The object data of a WCM object can also be processed as attribute value pairs The RepositoryEntry class represents a container java util Map interface which maps keys Key interface to values Value interface Objects of the RepositoryEntry class are of primary importance for the Portal Manager API The RepositoryEntryclass is part of the de gauss vip repository package It is used in the same way as an object of the Map interface of the Java 2 SDK For detailed information on this class refer to the online documentation Use the following methods to represent the object data of a WCM object as a RepositoryEntry object and to set the object data by means of the attributes of this object public interface ObjectData public RepositoryEntry getAsRepositoryEntry Collection attributes String dplSystem public void setFromRepositoryEntry Repo
96. d methods of the WCM Java API are only briefly described here Please refer to the online documentation Javadoc for complete and detailed descriptions The Javadoc documentation is located in the directory lt WCM installation directory gt documentation javadoc The following list gives a short overview of this documentation Implementation basics on page 11 describes the basic procedure for programming server agents via the WCM Java API functionalities This includes for example topics such as starting and stopping agents authentication context management and error handling User administration on page 31 describes the user management functions available to you via the WCM Java API This includes topics such as adding deleting and editing users groups and roles as well as their rights and assignments Event processing on page 51 deals with the basics of event processing in the WCM system Object management on page 59 introduces the basics of editing WCM objects System information and administration on page 99 describes how to use the WCM Java API functions to retrieve information about the components and the status of the WCM system and to change the system status Accessing Enterprise Server systems on page 113 describes how to access Enterprise Server systems and their objects via the WCM Java API Application examples on page 131 contains some examples of using the WCM Java API
97. d possible actions on page 60 e Data storage views on page 62 e WCM objects in the workflow on page 64 e Object types on page 65 e Access rights for WCM objects on page 67 In certain cases preconditions for child or parent objects must also be met For example an object can only be released if the parent topic has already been released Object statuses constants and possible actions Each WCM object has a certain status that describes the current processing state The following statuses exist Table 5 1 Object state constants Status Constant Value changed ObjectState EDITED edited checked out ObjectState CHECKED_OUT checked_out deleted ObjectState DELETED deleted rejected ObjectState REJECTED rejected released ObjectState RELEASED released delayed release ObjectState PENDING_RELEASE release_at submitted ObjectState SUBMITTED submitted 60 Livelink WCM Server WM090700 PJA EN 1 5 1 Conditions for editing objects In the WCM Java API the status of a WCM object is represented by the ObjectState interface In addition to the name of the status see the constants above you can check whether certain status transitions are possible Moreover a localized description of the status can be determined The ObjectState object belonging to a name is determined using a method of the Website object Website getObjectState name see also Informati
98. d returns false By means of the getFunctionalArea method a completely loaded object can be obtained from the Administration server hasAssignment returns true gt Example 3 10 Retrieving functional areas The following code sample shows how to retrieve functional areas login user retrieve AdminHandler ContextId cid VipRuntime getContextHandler login 3 AdminHandler ah VipRuntime getAdminHandler WM090700 PJA EN 1 Programming Guide for the WCM Java API 45 Chapter 3 User administration retrieve all available functional areas List functionalAreas ah getFunctionalAreas cid List faWithAssignments new LinkedList while faIter hasNext FunctionalArea fa FunctionalArea falIter next fill a list with all functional areas including loaded assignments faWithAssignments add ah getFunctionalArea cid fa getName AdminHandler INDIRECT_ASSIGNMENTS lt a 3 6 Editing principal assignments For the principals of the WCM system various assignments can be made Assigning users to groups and roles This gives the users the rights of the respective groups or roles Assigning users as substitutes to other users After login a substitute gets the object rights of the other user Assigning principals to websites If you assign a principal to a website the respective users can access the objects of the website Assigning principals to functional areas The functiona
99. ding an e mail at submission to QA In the second code sample a WCM object is submitted to Quality Assurance An e mail with attachments is sent For the representation of the e mail a user defined format is used This user defined format is realized by means of the utility class MyOwnEMailInfo EMailInfo em new MyOwnEMailInfo set a receiver and 2 bcc receivers 96 Livelink WCM Server WM090700 PJA EN 1 5 10 E mail support em addRecipient user company example String mailBCC testuser company example User 2 lt u2 company example gt em setBCCRecipients VipRuntime getMailHandler separateEMailAddresses mailBCC set content generate htmlText using the messageText and use fixed plainText em setSubject a subject em setMessageText a message em setSendHTML true em setFixedPlain Please upgrade your mailclient add some attachments em addAttachment new File test_file xml filename_in_mail txt em addAttachment some text to read document txt and finally submit the object and send the e mail aObjectHandler submit aContextId aObjectIdList aDate a remark em gt Example 5 23 Sample code of the utility class MyOwnEMaillnfo public class MyOwnEMailInfo extends EMaillinfo public String getHTMLStart String remark Locale loc return lt HTML gt lt HEAD gt lt HEAD gt lt BODY gt remark lt TABLE gt lt TR gt lt TD gt OID lt TD gt lt TD gt Title lt
100. dminHandler ah runtime getAdminHandler retrieve website InternetSite with all indirect assignments flag INDIRECT_ASSIGNMENTS Website ws ah getWebsite cid InternetSite AdminHandler INDIRECT_ASSIGNMENTS print out some information about the website System out printin ws getNavigationRoot System out println ws getProxyServers System out println ws getTemporaryDirectory System out println ws getDeploymentSystems Master Content ea 6 2 Information on the deployment From the WCM objects stored in the database the deployment systems generate files that can be displayed by means of a browser These objects are called pages Using the functions of the WCM Java API you can retrieve a list of deployment systems as well as data on the status of the deployment Use the AdminHandler interface to access the list of deployment systems see Retrieving a list of deployment systems on page 104 To access deployment metadata and status information use the DeploymentHandler interface It offers the following functions e retrieving deployment metadata e g URL and path for a generated page within a deployment system See Deployment metadata on page 104 e retrieving status information on a deployment system and on running transactions within a deployment system See Information on the deployment status on page 105 e retrieving error lists and error messages
101. e for translation is informed by e mail public void performVipEvent Event event int eventId event getId switch eventId case Event RUNLEVEL_IS Integer runlevel Integer event getArgument Event ARG_NEW if runlevel intValue gt Runlevel SERVER_UP amp amp bLoginM 148 Livelink WCM Server WM090700 PJA EN 1 8 6 Multi language websites doLogin doSetup break case Event OBJECT_METADATA_CHANGED createTranslationObjects event break default break private void doSetup StringTokenizer loc_user_token new StringTokenizer loc_usersM false editorsLanguagesM new HashMap languagesM new ArrayList try AdminHandler ah VipRuntime getAdminHandler while loc_user_token hasMoreElements String lang loc_user_token nextToken LocaleValue loc new LocaleValue lang String userName loc_user_token nextToken User translator ah getUserProfile loginCidM userName AdminHandler DIRECT_ASSIGNMENTS editorsLanguagesM put loc translator languagesM add loc catch VipApiException vaex System out printin unable to start TranslationJobAgent vaex printStackTrace From the data of the event the createTranslationObjects method first determines the OID and the website of the object for which the OBJECT_METADATA_CHANGED event was fired Via the ObjectHandler an Obj ectData object is retrieved for t
102. e for any object type e g for HTML and for Microsoft Word files Use the setObjectCategory method of the Obj ectData interface to assign an object category to a WCM object Formally an attribute set and an object category do not differ from each other They have a unique name and contain a list of attribute definitions The definition of an attribute is represented by an object of the AttributeDef inition interface An attribute used in Livelink WCM Server is characterized by the following properties e the name of the Java class that represents the attribute value Value interface The following classes can be used for attributes StringValue DateValue IntegerValue LongValue ListValue BooleanValue SetValue SimpleLink ObjectId DoubleValue Text TimeValue e a unique identifier for the attribute as an object of the Key interface e a localized description of the attribute e the field length limitation only relevant for StringValue classes Classes for attribute values All attributes of a WCM object implement the Key interface The attribute values implement the Value interface As shown in diagram 5 3 this interface extends the Comparable Cloneable and Serializable interfaces of the Java SDK 82 Livelink WCM Server WM090700 PJA EN 1 5 5 Editing special attributes interta terface nterf Serializable Clonable Comparable A L L ArrayList HashMap Figure 5 3 Class diagram Key an
103. e gauss vip api VipRuntime getContextHandler contextId cxtHandler login userName password cxtHandler startContextRefresh contextId catch de gauss vip api exception VipApiException vax vax printStackTrace return false Evan public void stop ead tr cxtHandler stopContextRefresh contextId cxtHandler logout contextId catch de gauss vip api exception VipApiException vax ignored Peas a 2 5 Error handling The WCM Java API uses the Java exception mechanism to report errors in Livelink WCM Server Any method that outputs an error throws an exception in the WCM Java API The basic class for error handling is the class VipApiException In addition the WCM Java API provides several exception classes that derive from VipApiException These exceptions can be thrown due to errors that occur during the execution of a method These derived exception classes include for example AccessDeniedException if an action is not permitted because of the access rights defined for the object or LoginException if login to the WCM system failed For detailed information on the individual exceptions refer to the Javadoc 2 5 1 Localized error messages The following methods are available for returning localized texts for an exception getMessage The method provides a localized text that describes the cause of the error getMessages The method returns all localized messages concerning the erro
104. e without server access the context becomes invalid You can configure this time span Expiration interval in the Admin client To manually refresh a user context use the refreshContextId method After this call the refreshed context remains valid for the specified expiration interval The user context can be automatically refreshed in a separate thread This Refresh thread is activated using startContextRefresh You can specify the refresh time interval If it is not specified half the expiration interval is used The stopContextRefresh method stops the thread belonging to the ContextId Especially when performing actions triggered by received events it is necessary for the user context to be automatically refreshed if the actions are to be executed ina common user context Example 2 7 demonstrates this gt Example 2 7 Refreshing the user context public class DemoAgent implements de gauss vip api ServerAgent Lesa private de gauss vip api admin ContextHandler cxtHandler private de gauss vip api lang ContextId contextId private final String userName private final String password Frari public DemoAgent java util Properties config userName password config getProperty username config getProperty password 24 Livelink WCM Server WM090700 PJA EN 1 2 5 Error handling public boolean start String serverType int majorVersion int minorVersion String patchLevel try cxtHandler d
105. eased version is always used Thus the respective workflow object must be released first before the changed workflow definition can be used The changed workflow definition does not affect WCM objects to which the workflow has already been assigned These objects pass through the old version of the workflow For further information on workflows refer to Performing workflow actions on page 90 Object types Each WCM object has an object type which on the one hand classifies the content used e g HTML page or JSP page and on the other hand determines additional properties e g Template or Topic Thus the object type defines the handling of the object within the WCM system e g regarding page generation The ObjectType interface defines the object type of a WCM object In addition to the unique identifier of an object type further properties are specified e g whether a content file is mandatory when a WCM object of this type is added WM090700 PJA EN 1 Programming Guide for the WCM Java API 65 Chapter 5 Object management The object type name can be assigned to the respective Java object using a method of the Website interface Example 5 1 returns an object of the ObjectType interface on the basis of the object type name HTML gt Example 5 1 ObjectHandler oh VipRuntime getObjectHandler demosite ObjectType ot oh getWebsite getObjectType ObjectType HTML The getDescription method returns a
106. ecial Characters ccecceceeeeceeeeeeeeeeeseeeeeeeseaeeeeeeeeeees 142 Multi language websites eee eeeeee etter cette terete ee eaee eee teeeeetaeeeeenea 146 GOSS ANY E sttcieannaitecenvisesecnced eeadaa rune ainsi eane rn eereaaeiReeNs 153 DEUS ee at caer as Geen aca ees Seatac Pease een d taeed gua cvebee nae rhe 159 Livelink WCM Server WM090700 PJA EN 1 Chapter 1 Introduction The WCM Java API provides access to the functions of Livelink Web Content Management Server Livelink WCM Server for short via a Java based programming interface Using the WCM Java API classes and interfaces you can access the WCM managed content and use it in the context of your own software development Possible applications include integrating third party systems or monitoring actions with the option of preventing an action from being performed veto mechanism The central functions of Livelink WCM Server that you may access via the WCM Java API include e object management e g adding editing and deleting WCM objects user management e g adding editing and deleting users e system administration e g retrieving information on the websites servers and deployment systems of the WCM system including influencing the system status Access to the functions of the WCM Java API is provided by server agents which run in a WCM server Alternately you can use the remote API which enables Java programs running on any computer t
107. ect llobj LivelinkObject extobj if llobj getObjectType getSubType LivelinkObjectType SUBTYPE_DOCUMENT LivelinkDocument lldoc LivelinkDocument 11lobj else LivelinkFolder 11folder LivelinkFolder 110bj 124 Livelink WCM Server WM090700 PJA EN 1 7 3 Relators 7 3 2 Connection to the Enterprise Server item A relator is a WCM object that refers to an external object and is associated with this object To connect a WCM object to an Enterprise Server item an Enterprise Server ID and the name of the Enterprise Server system are required The basic class for the connection is ExternalObjectRelator The LivelinkRelator class extends this basic class and establishes the connection to an Enterprise Server item Establishing the The connection can be established to the current version of the Enterprise Server connection item In this case the Edit view of the relator is updated automatically when the Enterprise Server item changes Alternately the connection can be established to a fixed version of the Enterprise Server item In this case the relator is not updated automatically The constants SYNCHMODE_RELEASE_FIXED and SYNCHMODE_ALWAYS_FIXED of the ExternalObject interface determine the connection type gt Example 7 21 Setting up a connection to the current version of an Enterprise Server item The following example illustrates how to set up a connection to the current version of the Enterprise Server
108. ed start node that are located below the WCM object with the OID 4711 in the topic structure new SubtreeFilter new de gauss vip api lang ObjectId 4711 Gal 5 6 3 Additional search attributes The SearchableKeys interface extends the FieldNames interface by constants that are not directly assigned to an attribute These attributes provide additional search functions or make existing search expressions easier to formulate ACL_OWNER Using this attribute you can determine whether a WCM object has its own access control list ACL or whether it has inherited an ACL gt Example 5 16 The following filter searches for all WCM objects that have an ACL of their own new JoinFilter FieldNames OID SearchableKeys ACL_OWNER Sal STATE_NAME This attribute can be used to search for WCM objects with a certain object status WM090700 PJA EN 1 Programming Guide for the WCM Java API 87 Chapter 5 Object management gt Example 5 17 new EqualFilter SearchableKeys STATE_NAME new StringValue ObjectState RELEASED is equivalent to new EqualFilter FieldNames STATE VipRuntime getObjectHandler website getWebsite getObjectState ObjectState RELEASED lt a TYPE_NAME This attribute can be used to search for certain object types gt Example 5 18 new EqualFilter SearchableKeys TYPE_NAME new StringValue ObjectType HTML is equivalent to new EqualFilter FieldNames TYPE VipRun time getOb
109. eeneeeeeeeeeenees 31 3 1 The Principal interface cccccceceeeeececeeceeeeeeeceenceeaeeeeeeesesncaeeeeeeeeeeeees 32 3 2 Editing principals ea teens aeaa a eaa ainat easel 32 3 3 Setting WCM attributes in LDAP sssssssesesieeesrreseeerrsrrrrssrrssrrrrnsrrennsne 38 3 4 Editing rights Of principals enerne ia EA 40 3 5 Editing functional Areas eee ar a E E T 44 3 6 Editing principal assignments ce ceeeeeeeeceeeeeeeeeeneeeeeeeaeeeeeeenaeeeeeeaas 46 3 7 Saving User SLINGS narini einan ei kaidi aa 47 4 Event PrOCOSSING scisinsicticnisessetarcs actuciecneteendtnanesstdonntadenasescias 51 4 1 Nofimial Vents in n a be eee aes cas ee arden anced 52 4 2 Preparation EVN S a a aa vacded a aa aaa E laces 56 4 3 Event listenersic niiina eia an ae i aden aa n ea 57 4 4 Event dispatchefS inienn a a a a 58 5 Object management ceceeseeeeeeeeeseeeeeeeeeseeeeeeeeeeeeeeeeeeeeees 59 5 1 Conditions for editing objects 2 2 cececeeeeeeeeeeeeeeeeeeeeteeeeetteeeeertneeeeee 60 5 2 Actions of the ObjectHandler interface ececeeceeeeeeeeeeeeeeeeeeneeeeeeaas 67 5 3 The ObjectHandlerUtil utility class 0 eee cette eeeeeeeeeeeeeeeeeeneaees 76 WM090700 PJA EN 1 Livelink WCM Server 3 Table of Contents 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 7 1 7 2 7 3 8 1 8 2 8 3 8 4 8 5 8 6 GL Editing object data the ObjectData interface eeeeeeeeeeeeeeeeeee 76 Editing special attriD
110. eing no longer op erable ERROR Logs errors with the level Error which occur during actions in the WCM system Errors of this level usu ally do not result in the server no longer being oper able WARNING Logs errors with the level Warning INFO_MESSAGE Logs information messages Tracing can be performed globally for the complete server or restricted to one or several classes class specific tracing By default tracing is deactivated To activate the global tracing use the setGlobalTraceFilter method For class specific tracing the method WM090700 PJA EN 1 Programming Guide for the WCM Java API 111 Chapter 6 System information and administration setClassTraceFilter is used The respective tracing settings are supplied in the form of a list with TraceFilter constants In the case of class specific tracing tracing must additionally be activated by means of the method setAcceptClassTraceFilter after setClassTraceFilter has been called This method can also be used to switch off tracing again The tracing settings are stored gt K Example 6 9 Activating tracing The following example activates a global tracing that logs the entry into and exit from methods as well as serious errors get SystemHandler Server currentServer VipRuntime getCurrentServer SystemHandler sysHandler VipRuntime getSystemHandler create list with trace settings List traceFilter new ArrayList tra
111. epresents a so called workflow definition which contains the individual workflow steps Workflow definitions are created and edited with the Content Workflow Modeler Workflow Modeler for short In the Content client workflow objects can be assigned to WCM objects The workflow definitions created with the Workflow Modeler are saved in the XML Process Definition Language XPDL The format XPDL is XML based and is the standard defined by the Workflow Management Coalition WFMC for interchanging process definitions A workflow definition has at least one starting point and at least one end point When an WCM object is forwarded in the workflow and an end point is reached the assignment between WCM object and workflow object is automatically removed The following types of end points exist Release When this end point is reached the WCM object is released If a delayed release date is set for the object the object gets the status delayed release Stop When this end point is reached the assignment between workflow object and WCM object is removed The status of the WCM object does not change Destroy When this end point is reached the WCM object is irretrievably deleted A workflow definition may contain any number of activities and transitions Each activity is assigned to a principal user group or role who may edit the object and forward it in the workflow The three types of activities Edit QA and Delete represent the t
112. er 2 Implementation basics e the name of the computer hosting the server that is to be addressed via the remote API e the name of the desired server e the port of the server for the remote API connection By default port 1099 should be used gt Example 2 3 The Runtime interface is requested by the server Master_Content Afterwards a login is performed RemoteRuntime rtEdit VipRuntime getRuntime weomserver company example Master_Content 1099 ContextHandler ctxHandler rtEdit getContextHandler ContextId cid ctxHandler login admin admin If the remote API connection to the server is to be established via secure connections SSL you can use the getRuntime SSL method instead of getRuntime An SSL secured RemoteRuntime interface is called as follows public RemoteRuntime getRuntimeSSL String host String server int port String clientTrustStoreLocation In addition to the parameters that must be specified for the method getRuntime you must also specify the path to the truststore to be used for verifying SSL certificates This truststore must be located on the local computer and contain the certificate used by Livelink WCM Server Notes e For information on adding the WCM certificate to a truststore refer to Livelink WCM Server Installation Guide WM IGD e Operation of the remote API via SSL is independent of the communication settings for the respective server It may for example be possible that rem
113. er a WCM object is changed Analyzing this order comprises the following tasks e The system checks whether the deployment metadata of the respective page URL path etc must be modified e The system checks whether other pages are affected by the change e g if a template has been edited e For all pages to be generated so called deployment jobs are created i e com mands for generating a page within a deployment system dynamic deployment systems are the exception because they do not generate the pages until they are requested by the HTTP server In this phase the created jobs are processed and the pages affected by the changes to the WCM object are regenerated The generated files HTML pages images etc are saved in the file system of the server on which the deployment system is installed For both phases of the deployment the following information can be retrieved via the DeploymentStatus interface Number of orders and jobs waiting to be processed public long getNoOfWaitingOrders and public long getNumberOfWaitingJobs Number of analyzed orders and processed jobs public long getNoOfAnalysedOrders and public long getNoOfExecutedJobs Average processing time for an order or a job public double getAvgOrderServingTime and public double getAvgJobServingTime Average waiting time for an order or a job public double getAvgOrderWaitingTime and public double getAvgJobWaitingTime If you request the deployment status for a
114. er agent on page 156 Asynchronous action An asynchronous action returns almost immediately after it has been called It does not wait for processing of the associated tasks to finish See also Synchronous action Attribute set Set of attributes Attribute sets can be combined with object types In this way all WCM objects that are created on the basis of this object type can be equipped with the attributes of the assigned attribute set Attribute sets are edited in the Admin client or in the Content client Check in Staging action of Livelink WCM Server An object that has been checked out and edited is returned to the WCM system by the action Check in This makes the changes visible in the Edit view The object is combined with the template again and is available for further editing WM090700 PJA EN 1 Livelink WCM Server 153 Glossary Check out Staging action of Livelink WCM Server The content of a WCM object can only be edited after the object has been checked out A checked out object is locked for access by other users The changes to the object do not become available in the Edit view until the object has been checked in Context Contexts are used to identify users accessing the system or transactions They are managed via the ContextHandler interface A distinction is made between user and transaction contexts Context ID Object that is assigned to a user after successfully logging in to the WCM system
115. er is set to 0 78 Livelink WCM Server WM090700 PJA EN 1 5 4 Editing object data the ObjectData interface 5 4 3 5 4 4 5 4 5 Editing references Use the setLinksTo method of the ObjectData interface to add or remove references in the content of a WCM object A reference can be a WCM managed object or an external URL to any document References are represented by objects of the Link interface de gauss vip api lang A concrete class that implements this interface and that must be used for the setLinksTo method is the SimpleLink class de gauss vip api object Reading the log Use the getLastLogEntries method of the 0bj ectData interface to retrieve the history of a WCM object The first argument of this method specifies the number of the log entry while the second argument determines how many entries are to be retrieved Log entries are always counted backwards gt Example 5 9 Retrieving all log entries All entries can be determined as follows ContextId cid VipRuntime getContextHandler login userName password ObjectData od VipRuntime getObjectHandler demosite get cid new ObjectId 100 List 1 od getLastLogEntries 0 1 gt Example 5 10 Retrieving the last 10 log entries The following example retrieves the last 10 log entries int last od getNoOfLogEntries Iterator i od getLastLogEntries last 1 10 iterator while i hasNext LogEntry e LogEntry i next
116. erface General task Individual task Methods Destroy object i e de destroy lete it permanently from the WCM system The Javadoc contains detailed information on the individual methods It contains information on the required access rights the possible previous object statuses and the resulting status For each method it is specified in which view the respective action is available i e can be performed i Note Since all data storage views are available on the master Content server all actions are permitted and the resulting object statuses are visible on this server gt Example 5 3 Methods for object handling The following code sample illustrates the methods for adding changing submitting releasing deleting and destroying an object log in user ContextId cid VipRuntime getContextHandler login 3 retrieve ObjectHandler for website InternetSite ObjectHandler oh VipRuntime getObjectHandler InternetSite create an initial ObjectData object set a subtitle ObjectData odNew oh createInitialObjectData new ObjectId 1 null html test object odNew setSubtitle testing object creation create a new object from the initial object data ObjectId oidNew oh create cid odNew null create object submit release delete and destroy this object List oids new LinkedList oids add oidNew oh submit cid oids null submit t
117. erprise Server 113 interface Acl 89 Activity 91 AdminHandler 31 AttributeHandler 81 ContentConverter 93 ContextHandler 74 DeploymentError 108 DeploymentEvent 55 DeploymentEventDispatcher 58 DeploymentEventListener 57 DeploymentHandler 104 DeploymentMetaData 104 DeploymentPrepareEvent 58 DeploymentPrepareEventListener 58 DeploymentSystem 103 EmailData 94 Entity 91 Event 52 EventDispatcher 58 EventListener 57 ExternalObject 124 Filter 84 FunctionalArea 45 Key 83 Link 79 LivelinkAdminHandler 114 LivelinkObjectHandler 115 LivelinkVersion 121 MailHandler 94 ObjectData 84 ObjectHandler 68 67 ObjectLoader 80 ObjectState 60 ObjectType 65 PoolManager 27 PrepareEvent 57 PrepareEventListener 57 Principal 32 PrincipalFactory 33 Progress 72 RemoteRuntime 19 Runlevel 109 Runtime 19 SearchableKeys 87 Server 100 SystemHandler 99 TraceFilter 111 Transition 91 162 Livelink WCM Server WM090700 PJA EN 1 Index Value 83 VipAdminPermission 40 VipObjectPermission 89 43 Website 102 Workflow 90 WorkflowHandler 90 J Java API access via remote API 18 access via server agents 13 job execution deployment 106 K Key interface 83 L LDAP set WCM attributes 38 links 79 Livelink ECM Enterprise Server object management 115 user administration 114 Livelink object See Enterprise Server item Livelink terms 9 LivelinkAdminHandler interface 114 LivelinkObjectFactory class 122 LivelinkO
118. ers or Livelink permissions for example 1 5 Contact information There are several ways to contact Open Text Open Text Open Text Online is a unique access point for the information provided by Open Text Online You can access Open Text Online via the Internet at http online opentext com Information and access to resources are organized according to the following roles e Partners e Business Users e Administrators Developers Open Text Online offers access to the following information sources WM090700 PJA EN 1 Programming Guide for the WCM Java API 9 Chapter 1 Introduction Open Text Customer Support Feedback on the documentation e Open Text Knowledge Center e Firstlook server e Expert Service Center If you require additional help with technical problems contact Open Text Customer Support You can find the contact information for your region at http www opentext com services support html If you have any comments questions or suggestions to improve the documentation you can contact us by e mail at documentation opentext com 10 Livelink WCM Server WM090700 PJA EN 1 Chapter 2 Implementation basics 2 1 This chapter introduces the architecture of the WCM Java API It explains how to integrate server agents developed on the basis of the WCM Java API into the WCM system Moreover general implementation principles such as logging in and out of the WCM system context management and e
119. erver agent compress the respective classes in a JAR file and copy this file to the directory external_1lib in the WCM installation directory Restart the respective server If the server on WM090700 PJA EN 1 Programming Guide for the WCM Java API 13 Chapter 2 Implementation basics which the agent is to be executed runs as a web application in an application server copy the JAR file also to the directory lt web application directory gt Web Inf 1lib 2 2 1 Configuring parameters and constructors Server agents can be integrated and configured in the Admin client via Configuration gt Server agents Here you define the required properties of the agent and set the according values The properties are defined by simple parameters to which values are assigned in the Admin client It is also possible to define tree like hierarchies of parameters For this purpose you create nodes A node can contain individual parameters or additional sub nodes Ay Configuration Name v ii m Pools ContentMinerNotification Custom connection types DatabaseUpdate a A Servers H 7 W Websites ExpirationNotification Deployment systems LinkResolving Server agents ManualDeployment ContentMinerNotification ReleaseNotification DatabaseUpdate ExpirationNotification q LinkResolving Websitelmport ManualDeployment i ReleaseNotifica
120. etadata ofan the Enterprise Server item is created first In this copy the new values are set by Enterprise i Serveritem Means of the setAttribute method After this the changes are saved with the change method of the LivelinkObjectHandler gt Example 7 16 LivelinkChangeableObject llchange lldoc getChangeable lichange setAttribute LivelinkObject META_COMMENT new StringValue a new comment lloh change cid llchange com Reserving and In Livelink ECM Enterprise Server users can reserve items The WCM Java API pega provides the methods reserve and unreserve LivelinkObjectHandler interface Server items fOr this purpose gt Example 7 17 lloh reserve cid lldoc getLivelinkId null object cannot be modified now lloh unreserve cid 1lldoc getLivelinkId object can be modified now Qa Deleting Use the delete method of the LivelinkObjectHandler interface to remove Enterprise Enterprise Server items from the Enterprise Server system Server items Example 7 18 lloh delete cid lldoc getLivelinkId 7 3 Relators You can add objects from external systems as WCM objects to WCM managed websites These objects are called relators Livelink ECM Enterprise Server is an example for such an external system This section deals with the following topics e External objects on page 124 e Connection to the Enterprise Server item on page 125 e Adding relators on page 1
121. ew Constant for data storage Status of the WCM ob view jects Website interface Edit DATA_VIEW_EDIT all QA DATA_VIEW_QA all except EDITED and CHECKED_OUT Production DATA_VIEW_PROD RELEASED Older versions of the WCM objects are archived in a version table independent of the respective view WM090700 PJA EN 1 Programming Guide for the WCM Java API 63 Chapter 5 Object management 5 1 3 Note The available views of the deployment systems of the WCM objects are determined by analogous type constants in the DeploymentSystem interface see Information on the deployment on page 103 The object management actions and the changes resulting from an action are only available in certain data storage views In the QA view it is for example not possible to add a WCM object to submit a changed WCM object etc For this reason the Javadoc on the object management actions always contains information about the data storage view in which the action is possible WCM objects in the workflow In Livelink WCM Server the predefined stages editing quality assurance publication for productive operation can be extended by user defined workflow steps in order to realize editing by several editors or a multi stage quality assurance process For this purpose the object type Workflow exists For adding objects of the type Workflow the user requires the functional area Workflow An object of type Workflow r
122. f a server or a website are defined in the Runlevel interface When a server starts the run level progresses from SERVER_DOWN to WEBSITE_UP when the server shuts down from WEBSITE_UP to SERVER_DOWN accordingly The run levels of servers and websites can also be controlled separately For further information on run levels refer to Livelink WCM Server Administrator Manual WM AGD and to the Javadoc on the Runlevel interface The administration interface AdminHandler provides methods for changing the run level of the current server or website e g in order to shut down the system to back up the website The getRunlevel method is used to retrieve the run level of the server or website The setRunlevel method changes it accordingly This is usually a time consuming process similar to starting up or shutting down an operating system i Note For information on the events fired in the case of run level changes refer to System related events on page 53 6 4 Logs reports and tracing Each server creates several logs These logs contain information and error messages of the servers The reports of the servers contain messages on the actions in the WCM system Both reports and logs can be used to analyze and solve problems Tracing is another means of locating errors By means of the tracing function of Livelink WCM Server you can create a log with the running actions and messages of a server Additionally it is possible to trace indi
123. f necessary vetoes the change of a title or template See Vetoing metadata changes on page 135 e The agent DplEventTester illustrates registration for deployment events See Monitoring deployment events on page 137 e The agent KeywordAnalyzerAgent searches keywords target group and description of a newly created or changed WCM object for German umlauts and some special characters and converts them by means of the WCM Java API a H Matt into ae 6 into oe etc See Converting special characters on page 142 e The agent TranslationJobAgent works in multi language websites As soon as an object to be translated is added to the website the agent informs the editors responsible for translation See Multi language websites on page 146 The examples shown here are primarily designed to demonstrate how server agents can be programmed For the sake of simplicity certain functions were not implemented at all or only partially This applies for example to the areas of error handling and error logging Under real conditions these functions must be implemented using the corresponding interfaces WM090700 PJA EN 1 Livelink WCM Server 131 Chapter 8 Application examples Note The JAVA files of the server agents are located in the directory examples serveragents of the WCM installation directory 8 1 Basic class ExampleAgent Configuration parameters This example implements
124. g 2 port arg 3 secure true false catch de gauss vip api exception VipApiException vae vae printStackTrace catch Throwable t t printStackTrace System out printin RemoteTestClient stopped public RemoteTestClient public void start String args throws Exception hostname String host args 0 name of the WCM server String serverName args 1 the remote port of the WCM server int remotePort Integer parseInt args 2 flag indicating whether to use a secure connection boolean secure Boolean getBoolean args 3 reference to API implemenation de gauss vip api RemoteRuntime runtime null WM090700 PJA EN 1 Programming Guide for the WCM Java API 21 Chapter 2 Implementation basics if secure initialize ssl set up location of trust store in the file system String trustStoreLocation d wem keys gauss_vip80 trust Create remote API implementation instance runtime VipRuntime getRuntimeSSL host serverName remotePort trustStoreLocation else Create remote API implementation instance runtime VipRuntime getRuntime host serverName remotePort start using remote API ContextHandler ctxHandler runtime getContextHandler ContextId cid ctxHandler login 3 2 4 Authentication and contexts 2 4 1 Access to a WCM system via the WCM Java API requires user authentication in order to be a
125. he respective OID to check on the basis of the translate attribute whether the object is to be translated If the translate attribute has the value true the content of the object to be translated is loaded and the file is saved in the directory temp of the server on WM090700 PJA EN 1 Programming Guide for the WCM Java API 149 Chapter 8 Application examples which the agent is running After this the agent creates a new object for each target language below the root object of the website The content of the new objects is the content of the source object Afterwards the informEditor method is called and e mails are sent to the editors responsible for the translation In the informEditor method the respective e mails are created and sent via the Mail API private void createTranslationObjects Event event try ObjectId oidNew ObjectId event getArgument Event ARG_OID String ws String event getConstraint ObjectHandler oh VipRuntime getObjectHandler ws Website website VipRuntime getAdminHandler getWebsite loginCidM ws AdminHandler INDIRECT_ASSIGNMENTS ObjectData od oh get loginCidM oidNew BooleanValue translate BooleanValue od getAttribute new StringValue translate null if translate null amp amp translate getBool true Server server VipRuntime getCurrentServer String tempdir website getTemporaryDirectory getAbsolutePath String contentFileName
126. ht to reproduce or disclose any part of the contents hereof No part of this document may be reproduced in any form by any means without prior written authorization of Gauss Interprise AG or Gauss Interprise Inc Moreover the regulations of the software license agreement apply to this documentation All brand names and trademarks mentioned are the property of their respective owners http www opentext com bridging gauss html Table of Contents 1 Introduction ahinata ccacvecees dis deans asana abana aE 5 1 1 About this Quide iesnsnrsnarria a i aia aN 6 1 2 Overview of documentation for Livelink WCM Server eseese 7 1 3 CONVENTIONS 5 5 fede E EEN EEE E E ee eae a Seated 8 1 4 TEQITMIMNOIOGY pez dace sxe ca setae ete E inet sce uvagenspinddycvin dea sevagds os ima dagewaeth seers 9 1 5 Contact information c ccccecceeeeeececeeceeeeeeeseaeaeeceeeeseesecaeeeeeseeeeeeeeeeaees 9 2 Implementation DaSiCS c ccccceceeeeeeeeeeeeeeceeeeeaneneeeeeeeesenees 11 2 1 Architecture of the WCM Java API sccceeeeeeeeeeceeeeeeeeeeteeesteeeeeees 11 2 2 DENVER AGSINS E D PE E EE T E E Gunesanecnnaas 13 2 3 RReMmOte AR r a a a a iets E 18 2 4 Authentication and contexts 0 ccccececeeecceceeeeeeeeeeeeaeeeeeeesetseesneeeeees 22 2 5 Eror handing sedione aee E RAER 25 2 6 Localized messages iiae ni ERE 26 2 7 Poolmanagemn ent enaren a a ET NAR 27 3 User administration c cceceececeeceseeeeeeeeeseeeeea
127. i e the WCM object that represents the root of the navigation tree the set of all users roles and groups that are assigned to this website Only users with a corresponding assignment a direct assignment as a user or an indirect assignment based on the user s group or role membership have access to this website The sets contain respective objects of the classes User Role and Group the name of the website s master Content server as well as the name of the JDBC pool used by the master Content server for saving the website data a list of proxy Content servers String objects that have read access to this website and delegate write accesses a list of all object types that are defined for this website The list contains objects from the ObjectType interface the list of all object statuses with objects of the ObjectState interface the encoding used for generating the pages a list of deployment systems String objects for this website the routing information of the website the temporary website directory This directory is used for files to be written by the server e g to save the content of a checked out WCM object Example 6 2 Reading website information The following code sample shows how website information is read log in user 102 Livelink WCM Server WM090700 PJA EN 1 6 2 Information on the deployment ContextId cid VipRuntime getContextHandler login PERNE u retrieve AdminHandler A
128. ically be given the rights Access to configuration and Change configuration entry K Table 3 2 gives an overview of the individual rights and their dependencies It also shows the constants defined for the rights in the VipAdminPermission interface Individual rights such as Access to user administration Access to configuration or Access to system administration have a direct impact on the views displayed in the Admin client The right Website administration influences individual functions both in the Admin client and in the Content client 40 Livelink WCM Server WM090700 PJA EN 1 3 4 Editing rights of principals Table 3 2 The individual administration rights Right Constant Possible actions Read access to user administration API USER_MANAGEMENT_ READ_ACCESS If a server agent is to read the user information the user used for logging in the agent must have this right Access to user administration USER_MANAGEMENT_ Read access to the user information In the Admin client the tree items Users Groups and ACCESS Roles in the User administration view are only dis played if the user has this right Change principal Change the settings of users groups and roles as well MODIFY_PRINCIPAL as the assignments between these items e g assignment of a user to a group To be able to change the assignment of principals to functional areas and websites the right Change assignment
129. in order to retrieve the running transaction DeploymentStatus ds dH getStatus cid InternetSite_edit null List runningTransactions ds getRunningTransactions iterate through the running transactions in order to output deployment errors Iterator transactionIter runningTransactions iterator while transactionIter hasNext Long transactionID Long transactionIter next get list with deployment errors of the current transaction iterate through the list of DeploymentError objects output messages List dplErrors dH getErrors cid InternetSite_edit transactionID Iterator dplErriIter dplErrors iterator while dplErriIter hasNext DeploymentError dplErr DeploymentError dplErriter next output OID and error message System out printin deployment error occured for oid dplErr getOID in transaction transactionID System out println error message dplErr getErrorMessage Locale getDefault 108 Livelink WCM Server WM090700 PJA EN 1 6 3 Retrieving and setting run levels a 6 3 Retrieving and setting run levels The run level describes the current state of a server or a website It defines which functional components of the server or the website are currently active or inactive The run levels are divided into server run levels and website run levels The website run levels are based on the server run levels The possible states o
130. inHandler ah runtime getAdminHandler retrieve a list of all available deployment systems includes the deployment systems of all websites List dplSys ah getDeploymentSystems cid retrieve a deployment system by name DeploymentSystem ds ah getDeploymentSystem cid InternetSite_edit ea Deployment metadata The deployment metadata include for example the URL and the path to the generated page Depending on the number of deployment systems installed several pages are created for each WCM object The deployment metadata of these pages differ from each other because the pages can be generated for different data storage views Edit QA or Production Moreover the servers to which the deployment systems belong may be located on different computers You can use the method get of the DeploymentHandler interface to request the deployment metadata of a page In addition to the context ID of a logged in user the OID of the associated WCM object and the name of the deployment system as a string are supplied The deployment metadata returned are represented by the DeploymentMetaData interface 104 Livelink WCM Server WM090700 PJA EN 1 6 2 Information on the deployment 6 2 3 By means of the methods of the DeploymentMetaDate interface you can retrieve the URL and the path to the generated page and if existing to the surrogate page or the statified page Whether a surrogate page is generated depends o
131. informed by e mail The attachment of the e mail contains the text to be translated Configuration parameters username and password user ID and password of a user used for creating the objects The user must have read and write permission in the monitored website Both parameters are of type String translation_lang_user parameter for specifying the supported languages and the responsible editors This parameter is of type String Here the locales of the supported languages followed by the user IDs of the responsible translators must be entered As separator a comma without space is used Example 8 1 The user j stein is responsible for translation into English the user claurent is responsible for translation into French This results in the following entry translation_lang_user en_US jstein fr_FR claurent Ka The constructor of the agent reads the values for the user ID the password and the assignment of the editors to the languages from the configuration of the agent public TranslationJobAgent Properties properties super company example TRANSLATIONJOB_AGENT_DESC 1 1 WM090700 PJA EN 1 Programming Guide for the WCM Java API 147 Chapter 8 Application examples 8 2 userNameM String properties get username String pwd String properties get password if pwd null passwordM pwd loc_usersM String properties get translation_lang_user UserMessage uM new UserMe
132. ing locale public String getVersion return versionM public int getRequiredVIPMajorVersion 132 Livelink WCM Server WM090700 PJA EN 1 8 2 Automatic submission return majorM public int getRequiredVIPMinorVersion return minor 8 2 Automatic submission This agent demonstrates how active agents are programmed The agent is not controlled by staging events it becomes active directly after the configured website has been started The WCM objects of the website cannot be accessed until the website has reached the run level WEBSITE_UP For this reason the agent registers for the run level change event and checks whether the website run level has been reached Only then does it become active After the website has booted the agent looks for all WCM objects that have never been released for this purpose it uses the search function from the 0bjectHandler interface and submits the WCM objects it finds Configuration parameters website name of the website to be monitored The parameter is of type String agent user and agent password user ID and password of a user with read and write permissions for the monitored website Both parameters are of type String The agent logs the specified user in to the system at startup because the context ID of a logged in user is later required for submitting objects at a later stage This agent registers itself for RUNLEVEL_IS events for a configu
133. ion types custom pools are managed via the pool mechanism of Livelink WCM Server For detailed information on pools and connection types refer to Livelink WCM Server Administrator Manual WM AGD WCM Java API components for custom connections The following WCM Java API components support the creation and administration of connections based on custom connection types The class de gauss vip api pool PoolConnection Connections based on custom connection types must be derived from this class In this way they can be managed by the pool mechanism of Livelink WCM Server In the following these connections are called custom connections The methods close isValid execute and customOpen of the PoolConnection class must be programmed completely in a derived class The de gauss vip api pool PoolManager interface The de gauss vip api pool PoolManager interface encapsulates the internal PoolManager of Livelink WCM Server The PoolManager manages the connections in pools i e it establishes and closes the connections on demand The connections in these pools must be derived from the PoolConnection class The pools must have unique names Use the Admin client to create and edit pools If an agent requires a custom connection it can use the getConnection method of the PoolManager interface to request the connection The pool name must be specified when calling this method When the connection is no longer required it must be returned
134. ired by the server in the case of status changes referring to the system or to individual WCM objects If the agent starts threads of its own these threads can only be terminated by the agent itself In this case the start method must return the value true This guarantees that the stop method of the agent is called if required in order to terminate the started threads For an example of starting and stopping agents refer to Monitoring deployment events on page 137 WM090700 PJA EN 1 Programming Guide for the WCM Java API 17 Chapter 2 Implementation basics 2 2 4 2 2 5 2 3 Note The return value of the start method indicates whether the agent has been started successfully If the start method returns the value false the Admin client immediately displays the agent as stopped Stopping server agents Server agents are stopped by means of the stop method of the ServerAgent interface This method should be used to release bound resources It is called when e the start method has returned the value true or if it has been called but not yet terminated and either e the server changes from run level WEBSITE_INACCESSIBLE to run level AGENTS_STOPPED or e the agent is stopped by means of the Admin client Notes e The return value of the start method determines whether the stop method is called at all If start returns the value false the stop method is never called e The stop method should not perform
135. ivelink WCM Server Administrator Manual WM AGD The DeploymentStatus interface can be retrieved via the getStatus method of the DeploymentHandler interface In addition to the context ID of a logged in user and the name of the deployment system the transaction ID of a transaction for which the status information is to be retrieved must be specified when the method is called If null is supplied instead the DeploymentStatus object returned contains information on all running transactions of the deployment system Note If a Progress object has been requested for a transaction the transaction ID can also be retrieved via this object see Watching the progress of transactions on page 72 Alternately the IDs of all transactions running in a WM090700 PJA EN 1 Programming Guide for the WCM Java API 105 Chapter 6 System information and administration Order analysis Executing the deployment jobs Available status information deployment system can be retrieved via the method getRunningTransactions of the DeploymentStatus interface Via the DeploymentStatus interface you can retrieve the following information on a deployment system e status information on the order analysis e status information on the execution of deployment job After each change to WCM objects the deployment systems must generate new pages that reflect the current state of the WCM objects For this purpose a deployment order is created whenev
136. jectHandler website getWebsite getObjectType ObjectType HTML ea 5 6 4 Search parameters In addition to the filter object you can specify various other parameters for the search in the filter methods As an example one of the four filter methods is described in the following public List filter ContextId cid Filter filter ObjectId startoID List sortList int startResult int numberOfResults throws VipApiException startOID When you specify a start node the search starts below the specified WCM object In this case the start node itself startOID and all child objects in the topic structure are taken into consideration The search result is a list of OIDs The startOID must refer to a topic object Tip To search the entire website supply null as the startOID In this case the navigation tree is not taken into consideration as all WCM objects are included in the search process anyway If on the other hand the OID of the root node is entered as the startOID the entire navigation tree must be browsed This process takes considerably longer sortList In this parameter you can specify a list of attribute constants according to which the result set is to be sorted By default the hitlist is sorted by OID Livelink WCM Server WM090700 PJA EN 1 5 7 Editing access control lists numberOfResults This parameter determines the maximum number of WCM objects in the hitlist The value 1 returns the entire search
137. l areas are used to determine which types of objects the users may edit via the clients of Livelink WCM Server and which dialog boxes and functions are available in the Content client For editing assignments the AdminHandler interface provides the methods defineAssignment and removeAssignment gt Example 3 11 Assigning principals to groups roles websites and functional areas The following example shows how to assign a user to a group Afterwards the user will be assigned to a website and all available functional areas login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler aH VipRuntime getAdminHandler load user jstein and group Administration assign user jstein to this group User usr aH getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS Group grpAdmin aH getGroupProfile cid Administration aH defineAssignment cid usr grpAdmin assign the user to website InternetSite Website InternetSite aH getWebsite cid InternetSite 46 Livelink WCM Server WM090700 PJA EN 1 3 7 Saving user settings AdminHandler NO_ASSIGNMENTS aH defineAssignment cid InternetSite usr assign all available functional areas to the user List faList aH getFunctionalAreas cid Iterator falter faList iterator while faIter hasNext FunctionalArea fa FunctionalArea falter next ah defineAssignment cid fa
138. lator test In the example above nu11 is passed in the file argument as relators do not have content of their own in the WCM system The content of the relator is stored in the Enterprise Server database Editing relators The WCM Java API provides functions for editing the metadata and content of relators Each Enterprise Server item has a number of metadata Thus each relator has the Enterprise Server metadata of the associated Enterprise Server item in addition to the WCM metadata WCM metadata and Enterprise Server metadata can be modified simultaneously gt Example 7 26 Editing a relator The following code sample changes the relator s title and the comment of the associated Enterprise Server item i e the modifications refer both to the WCM system and to the Enterprise Server system ContextId cid ObjectHandler oh ObjectData od change title od setTitle A new title change Enterprise Server comment LivelinkObject llobj LivelinkObject od getExternalObject LivelinkChangeableObject llchange llobj getChangeable lichange setAttribute LivelinkObject META_COMMENT new StringValue A new Livelink comment pass change to ObjectData instance od setExternal0bject llchange change it now oh change cid od relator test al In Livelink ECM Enterprise Server any content can be added to a document as a new version It is possible for example that the first version of a docu
139. les iterator while logFileIter hasNext String logFileName String logFileIter next get logs int logFileNumOfLines sysHandler getLogFileNumOfLines cid currentServer logFileName String logFileContents new String logFileNumOfLines logFileContents sysHandler getLogFile cid currentServer logFileName 0 w a Note The trace logs of a server can be read in the same way Server reports The system automatically creates reports for the various software components of the servers These reports reflect the current status of the WCM system Depending on the type and configuration of the server different reports are created For example deployment reports are only available for servers on which deployment systems have been set up You can view the reports in the Admin client see Livelink WCM Server Administrator Manual WM AGD The SystemHandler interface provides the method public List getCoreReport for requesting a specific report from a server The name of the report is supplied as a string The returned list contains the individual lines of the report as string objects If null is supplied instead of the report name this method returns the names of all report objects available on this server as a list of strings Note For retrieving the report of the CustomPoolManager on custom connections in the WCM system the respective custom connection must provide the required information see
140. list This modification does not take effect until the WCM object is changed using the ObjectHandler change method To change a WCM object s access control list a special permission is required VipObjectPermission CHANGE_RIGHTS Access control lists can be inherited if a certain WCM object does not have its own object specific access settings the WCM object inherits the access control list of the parent topic The topic itself can in turn have an inherited access control list etc The isInherited method checks whether the access control list is inherited In this case getOwner provides the WCM object owning the ACL WM090700 PJA EN 1 Programming Guide for the WCM Java API 89 Chapter 5 Object management The checkPermission method checks whether a given user has a certain right in regard to the access control list of a WCM object If access to the user profile is possible the groups and roles of the user are also checked the hasPermission method only checks the rights directly assigned to the principal A user logged in via the context management always has a profile see also Login and logout on page 22 The additional methods are used for adding rights to or removing rights from a given Principal object Note It is not possible to supply an object specific ACL when creating an object By default a new object inherits the ACL of the parent topic You can edit the ACL after the object has been created gt Ex
141. localized description of the object type e g for a client Every object type can be assigned an attribute set that defines special attributes for this object type The getAttributeSetName method returns the name of the attribute set Attribute sets are explained in detail in Editing special attributes on page 81 The actions that can be applied to a WCM object partly also depend on the type of the object Changing the object type is only possible for some of the default object types Notes e You can only delete an object type if no current versions of objects exist in the Edit QA or Production view that use this object type Older versions of the objects with this object type may however exist e If an object version is restored that uses the deleted object type the object type will also be restored The utility Database clean up finally removes deleted object types if there are no older object versions that use these types gt Example 5 2 Outputting object type and attribute set for an object The following code sample shows how to output the object type and attribute set for an object with the OID 4711 and catch an AccessDeniedException log in user retrieve AdminHandler ContextId cid VipRuntime getContextHandler login 3 retrieve ObjectHandler for website InternetSite ObjectHandler oh VipRuntime getObjectHandler InternetSite retrieve object with oid 4711 ObjectData o
142. loymentEventListener de gauss vip api event This interface contains a method that is called when a registered event occurs This method is called when the action causing the event has been completed PrepareEventListener for website related and system related preparation events This listener is required for processing website related and system related preparation events There is a preparation event for almost every website related and system related event see The PrepareEvent Interface on page 56 In this listener it is possible to veto performing an action To do this a VetoException de gauss vip api event must be thrown The UserMessage class is used for the message argument in the VetoException The message is displayed in the client when the exception is thrown WM090700 PJA EN 1 Programming Guide for the WCM Java API 57 Chapter 4 Event processing 4 4 DeploymentPrepareEventListener for deployment related preparation events This listener is required for processing deployment related preparation events There is one deployment related preparation event see The DeploymentPrepareEvent Interface on page 56 In this listener it is possible to veto generating a page To do this a VetoException de gauss vip api event must be thrown Event dispatchers When an event occurs central event dispatchers distribute the event to all event listeners that have registered for it For this purpose the event listeners
143. m connection The supplied string prefix represents an indentation It is usually filled with spaces The respective report can be called via the SystemHandler or the Admin client gt Example 2 10 Report for a custom connection The following code sample shows how the getReport method is programmed in the custom connection TestConnection The method writes the name of the computer to which the connection has been established and the connection status to the list The filled in list is returned public List getReport String prefix List report new ArrayList report add prefix TestConnection report add prefix connected with getConnectionPeerName WM090700 PJA EN 1 Programming Guide for the WCM Java API 29 Chapter 2 Implementation basics report add prefix connection status getConnectionStatus empty line report add return report Keal 30 Livelink WCM Server WM090700 PJA EN 1 Chapter 3 User administration Accessing Enterprise Server users The WCM Java API provides access to the user administration functions of Livelink WCM Server For this purpose the AdminHandler interface offers the following functions e adding and deleting principals retrieving and editing profiles of principals searching principals see Editing principals on page 32 e assigning WCM attributes to LDAP principals thus allowing them access to the WCM system see Setting
144. ment is a GIF image and the second version an HTML file This affects the deployment of relators as the relator s representation in the file system may change For this reason a distinction is made between the normal WCM object type and the object type used for the deployment of relators WM090700 PJA EN 1 Programming Guide for the WCM Java API 127 Chapter 7 Accessing Enterprise Server systems Editing the content of relators gt Example 7 27 ContextId cid ObjectHandler oh ObjectData od output object type for WCM object System out printin object type od getObjectType getName output object type used by the deployment System out printin deployment object type od getDeploymentObjectType getName K This difference between object type and deployment object type only exists for relators The icon representing the object type in the Content client and the MIME type of relators is not determined by the object type but by the WCM object itself For this reason the icon s URL and the MIME type can be retrieved from an ObjectData instance gt Example 7 28 String imageurl od getImageURL intranet_edit String mimetype od getMimeType System out println objectdata imageurl imageurl mimetype mimetype returns different results for relators imageurl od getObjectType getImageURL intranet_edit mimetype od getObjectType getMimeType S
145. ment method All arguments can also be processed as an object of the java util Map container class The following events belong to this category e FILE_CHANGED e FILE_DELETED e FILE_URL_CHANGED e DEPLOYMENT_SYSTEM_CREATED e DEPLOYMENT_SYSTEM_DELETED For detailed information on the individual events and the associated arguments refer to the Javadoc WM090700 PJA EN 1 Programming Guide for the WCM Java API 55 Chapter 4 Event processing 4 2 The PrepareEvent Interface The DeploymentPrep areEvent Interface Preparation events Preparation events for website related and system related actions are represented by the PrepareEvent interface They are fired before the underlying action is executed This provides the possibility to review the impending status change and if necessary prevent it by a VetoException Each preparation event contains a reference to the related WCM object as an argument Note Preparation events for website related and system related actions are only available on the master Content server The following events belong to this category e PREPARE_ASSIGN_WORKFLOW e PREPARE_CHECKIN_OBJECT e PREPARE_CHECKOUT_OBJECT e PREPARE_CREATE_OBJECT e PREPARE_DELETE_OBJECT e PREPARE_DESTROY_OBJECT e PREPARE_FORWARD_WORKFLOW e PREPARE_OBJECT_CHANGE_METADATA e PREPARE_REJECT_OBJECT_TO_EDIT e PREPARE_RELEASE_OBJECT e PREPARE_REMOVE_WORKFLOW e PREPARE_SUBMIT_OBJECT_TO_QA e PREPARE_UNDO_CHECK
146. mmediately catch Exception ex ex printStackTrace Tools pre Prints the given event param event Event to be printed private void printEvent DeploymentEvent event switch event getId case DeploymentEvent FILE_CHANGED case DeploymentEvent FILE_DELETED System out println Thread nameM n Event event getId reportEvent event getId n Dpl StringValue event getConstraint n Oid Me ap ObjectId event getArgument DeploymentEvent ARG_OID n Path StringValue event getArgument DeploymentEvent ARG_PATH n Url StringValue event getArgument DeploymentEvent ARG_URL break case DeploymentEvent DEPLOYMENT_SYSTEM_CREATED case DeploymentEvent DEPLOYMENT_SYSTEM_DELETED System out println Thread nameM n Event event getId reportEvent event getId n Dol StringValue event getArgument DeploymentEvent ARG_DEPLOYMENT_SYSTEM break default System out println Thread nameM n Event event getId reportEvent event getId break He Converts the given event ID to a lt tt gt String lt tt gt param id Event id return String describing the event private String reportEvent int id Livelink WCM Server WM090700 PJA EN 1 8 4 Monitoring deployment events switch id case DeploymentEvent
147. must register with the event dispatcher Two event dispatchers are available EventDispatcher for distributing website related and system related events This interface can be retrieved via VipRuntime getEventDispatcher It offers methods for registering for website related and system related events In the case of website related events the name of a website must be supplied for the constraint argument of the addListener or removeListener method To register a listener an event type of the Event or PrepareEvent interface is specified It is possible to use the same listener for several event types and to separate them in the corresponding methods However the best solution is to create a separate class or object for each event type DeploymentEventDispatcher for distributing deployment related events This interface can be retrieved via VipRuntime getDeploymentEventDispatcher The interface provides methods that can be used to register for events relating to the deployment In the constraint argument of the method addListener or removeListener the name of the deployment system is supplied To register a listener an event type of the DeploymentEvent or DeploymentPrepareEvent interface is specified 58 Livelink WCM Server WM090700 PJA EN 1 Chapter 5 Object management The WCM Java API provides various interfaces for editing WCM objects Diagram 5 1 shows the object management components interface Attribute
148. must be called afterwards Use the getPrincipalFactory method of the AdminHandler interface to get an instance of PrincipalFactory When a principal is added by means of one of the methods createUser createRole or createGroup various parameters with the properties of the new principal are supplied Users groups and roles have a number of common properties that can be set when they are added e aname cn e an LDAP position ldapPosition only if an LDAP directory service is used for storing the user data If an RDBMS or Livelink ECM Enterprise Server is used null must be supplied e ane mail address email Additionally the following properties have to be set for users e the user ID for logging in to the WCM system user ID e the password for login vipUserpassword e a flag indicating whether the password must be changed when the user logs in to the WCM system for the first time initPassword e the user s preferred language language Note The permission to access the WCM system vipAccess is implicitly granted when the principal is added gt Example 3 1 Adding a user to LDAP The following example adds a user to an LDAP user administration login with appropriate administration rights ContextId cid VipRuntime getContextHandler login define the LDAP position of the new user String ldapRootPos ou admin o test c de define the name cn and ID of the new user String userCN
149. n This user is not allowed to add items in parent llparentidt 118 Livelink WCM Server WM090700 PJA EN 1 7 2 Managing Enterprise Server items For more information on managing permission in Livelink ECM Enterprise Server refer to the Javadoc on the LivelinkObject interface read the information about the constants whose names start with PERM_ as well as to the LAPI documentation 7 2 3 Item types in Livelink ECM Enterprise Server 7 2 4 Note The Livelink WCM Server Enterprise Server Integration Manual WM CLL contains some examples for working with the different Enterprise Server item types a_ LOL Sas Figure 7 2 Class diagram Enterprise Server item types The Enterprise Server item types are represented by constants of the LivelinkObjectType interface The names of these constants start with SUBTYPE_ After retrieving an Enterprise Server item a cast to the appropriate subinterface of LivelinkObject is usually required LivelinkObject llobj lloh get cid llid if llobj getObjectType getSubType LivelinkObjectType SUBTYPE_DISCUSSION LivelinkDiscussion lldisc LivelinkDiscussion 110bj System out printin topics lldisc getTopics Retrieving the metadata of an Enterprise Server item You can use the getAttribute method of the LivelinkObject interface to retrieve the metadata of an Enterprise Server item A distinction is made between standard WM090700
150. n of the e mail e For both the representation as plain text and in HTML format either the text predefined in the files MailMessage_ properties default setting or a user defined text can be used properties fixedPlain and fixedHTML For detailed information on editing properties files and on localizing GUI texts refer to Livelink WCM Server Administrator Manual WM AGD e The predefined representation can be adapted system wide For this purpose the properties file containing the texts must be modified e You can derive from the EmailInfo class and overwrite the methods getPlainStart getHTMLStart etc This way the desired representation can be generated individually for each e mail see the second code sample The EmailInfoWithLinks class is an example of this procedure Note For detailed information on the individual keys and values of the properties files refer to the Javadoc of the package de gauss vip api mail This Javadoc also contains information on how to adapt the representation of the e mails by means of the properties files gt Example 5 21 Sending an e mail in HTML and plain text The first code sample shows how an e mail with a predefined text is sent both in HTML format and in plain text when a WCM object is rejected EMailInfo anEMailInfo new EMailInfo Subject null MessageText true true anObjHandler reject aContextId anObjectIdList Remark anEMailInfo t gt Example 5 22 Sen
151. n order to wait for the conclusion of relevant deployment jobs a bi directional connection with the corresponding deployment system is required in this case communication with the deployment system must not be blocked by a firewall in one direction WM090700 PJA EN 1 Programming Guide for the WCM Java API 75 Chapter 5 Object management 5 3 The ObjectHandlerUtil utility class The ObjectHandlerUtil class provides auxiliary methods to simplify access to frequently used API objects Using the auxiliary methods of this class facilitates the following tasks 5 4 lt a determining the object types of a website Various methods of the ObjectHandler interface require an object type as an argument In the WCM system the object types are defined separately for each website and are thus retrieved via the Website interface Accessing this information by means of the methods of the Obj ectHandler or the Website interface is not very easy see example 5 7 determining attribute sets and object categories creating OID lists Most methods of the 0bjectHandler interface require an OID list as an argument The 0bjectHandlerUtil toOIDList method can be used to create a list of one or more OIDs from a string determining the product version of Livelink WCM Server Example 5 7 Determining the object type The following example shows how to determine the object type with and without using the utility class ObjectType type
152. n rights 40 for data storage views 62 for functional areas 45 for object rights 43 constructor for server agents 14 Contact information 9 content 128 add to Enterprise Server item 122 edit of relators 128 edit of WCM objects 128 read of Enterprise Server items 121 Content Workflow Modeler 64 ContentConverter interface 93 Context 154 Context ID 154 context management 74 contexts 74 predefined 24 refresh 24 Conventions Conventions in this documentation 8 convert objects 92 68 convertContent method 68 converter Executable 92 copy 68 copy method 68 create method 68 D Data storage view 154 data storage views constants 62 default object rights edit of principals 43 example 43 delete Enterprise Server item 123 functional area 45 page 68 principal 37 relator 129 WCM object 68 delete method 68 deployment and actions 74 DeploymentHandler interface 104 errors 107 events 55 job execution 106 metadata 104 order analysis 106 status information 105 103 wait for completion 75 Deployment 154 Deployment system 154 Deployment system category 154 Deployment system types 154 deployment systems information 103 DEPLOYMENT_SYSTEM_CREATED event 55 DEPLOYMENT_SYSTEM_DELETED event 55 DeploymentError interface 108 DeploymentEvent 155 DeploymentEvent interface 55 DeploymentEventDispatcher interface 58 DeploymentEventListener interface 57 DeploymentHandler 155 DeploymentHandler interface 104 DeploymentMe
153. n the object type To configure statification for a deployment system use the Admin client If the object does not have a surrogate both getSurrogateURL and getSurrogatePath return null The methods getStaticURL and getStaticPath return null if the object has not been statified gt Example 6 4 Retrieving metadata of root object The following example shows how to retrieve the metadata of the root object of a website log in ContextId cid VipRuntime getContextHandler login get DeploymentHandler DeploymentHandler dep1H VipRuntime getDeploymentHandler InternetSite get and output deployment metadata for the root object OID 1 ObjectId oidRoot new Objectid 1 DeploymentMetaData rootDp1MD deplH get cid InternetSite_edit oidRoot System out printnin root obj URL rootDp1MD getURL System out printnin root obj Path rootDp1MD getPath a Information on the deployment status The DeploymentHandler can be used to retrieve status information on deployment systems and the transactions running in the deployment systems Status information is encapsulated in the DeploymentStatus interface i Note The information that can be retrieved via the DeploymentStatus interface is available in the Admin client via System administration gt Active servers gt lt server name gt gt Reports gt DeploymentSystemHandler For information on the contents of the report refer to the L
154. ndler load profile of user Joshua Stein User usr ah getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS read the default object rights of the user InitialPrincipalRights initialRights usr getInitialRights The rights CREATE DELETE and READ are to be granted to the user These rights have to be created as a list List granted new LinkedList granted add VipObjectPermission CREATE granted add VipObjectPermission DELETE granted add VipObjectPermission READ The rights WRITE and TREE_OPERATIONS are to be denied to the user List denied new LinkedList denied add VipObjectPermission WRITE denied add VipObjectPermission TREE_OPERATIONS Set objects right lists at the InitialRights object initialRights setDeniedPermissions denied initialRights setGrantedPermissions granted Save the changed object rights with the user by calling setInitialRights at the AdminHandler ah setInitialRights cid usr initialRights 3 5 Editing functional areas In Livelink WCM Server users must be directly or indirectly assigned to functional areas in order to perform certain actions via the clients e g in the context of website management Note The functional areas of users are only checked when WCM objects are edited via the clients of Livelink WCM Server They are not checked when objects are edited via the WCM Java API Functional areas perform two essential tasks
155. ned in different languages As soon as an object to be 146 Livelink WCM Server WM090700 PJA EN 1 8 6 Multi language websites translated source object is added to the website the agent informs the editors responsible for translation by e mail For this purpose the attribute set htm1 in the monitored website must be extended by the attribute translate This attribute indicates whether an object must be translated If an editor has finished working on an object that is to be translated the editor changes the value of this attribute in the metadata of the object to true For notifying the editor responsible for the translation the agent registers for the event OBJECT_METADATA_CHANGED For all objects for which it is informed about this event the agent checks whether the attribute translate has the value true If this is the case the agent creates a new object of type HTML page for each supported language by means of the respective API call After the required objects have been created the value of the attribute translate of the source object is set to false Note As the agent is intended for demonstration purposes only and is not to be too complex the agent creates the new objects directly below the root object of the website This mechanism would have to be adapted in practice The content of the new objects is the content of the source object After the new objects have been created the editors responsible for translation are
156. netSite ObjectLoader oL VipRuntime getObjectLoader InternetSite use blockload to load the ObjectData objects of the child objects List childrenOD oL blockLoad cid rootChildren cea 5 5 Editing special attributes The attribute management can be retrieved using VipRuntime getAttributeHandler website This interface enables you to read all attribute sets and object categories used for a website gt Example 5 13 Reading attribute sets and object categories The following code sample shows how to read attribute sets and object categories of a website retrieve the AttributeHandler for website InternetSite AttributeHandler attrH VipRun time getAttributeHandler InternetSite retrieve a list which contains all available attribute sets for the website List attrSets attrH getAttributeSets retrieve a list which contains all available object categories for the website List categories attrH getObjectCategories YH 5 5 1 Attribute sets In Livelink WCM Server attribute sets are identified by a name and contain so called attribute definitions An attribute definition contains all attribute properties e g the unique identifier the Java class used for the attribute value or the maximum number of characters for text attributes Each WCM object has a set of standard attributes the standard metadata see Reading and changing standard metadata on page 77 The standard attrib
157. nt types of permissions administration rights and object rights The administration rights determine which users are allowed to access the administration functions of Livelink WCM Server The object rights determine which functions are available to the user when editing WCM objects The AdminHandler interface provides functions for assigning administration rights and default object rights to principals In the WCM Java API the access rights are represented by the following interfaces e VipAdminPermission see Administration rights of principals on page 40 e VipObjectPermission see Default object rights of principals on page 43 Administration rights of principals Principals with administration rights have access to the configuration user administration and system administration as well as to the system overview of Livelink WCM Server It is possible to assign graded access rights Thus a user may only be allowed to view and edit parts of the administration To perform specific functions of the WCM Java API the user that is used for logging in an agent needs administration rights For example users can only be added if the administration right Create change delete principal has been assigned Certain rights can only be assigned in combination with other rights i e they include other rights D Example 3 7 If you assign a principal the right Create modify delete configuration entry this principal will automat
158. o access the WCM Java API Caution Incorrect use of the programming interface described in this manual may lead to errors in the WCM system including system crashes and data loss Incorrect programming can also cause problems concerning performance and system resources For this reason it is essential to test the developed software with regard to correctness stability robustness and performance before putting it to productive operation Open Text cannot assume any liability for the correct functionality of the developed software Our Professional Services Group can help you plan and implement solutions This may help you avoid problems right from the start WM090700 PJA EN 1 Livelink WCM Server 5 Chapter 1 Introduction 1 1 What this document describes Target group Structure of the guide About this guide This manual describes the Java programming interface of Livelink WCM Server which allows external programs to use the functionality of the WCM servers Note For detailed information about installation requirements and supported software versions refer to the Livelink WCM Server Release Notes which are available at the Open Text Knowledge Center https knowledge opentext com knowledge This documentation is designed for software developers with the necessary knowledge of the programming language Java and the functionality of Livelink WCM Server Note The individual classes interfaces an
159. o qa null oh release cid oids release object to production null oh delete cid oids delete object null oh destroy cid oids destroy object permanently null A 5 2 2 Synchronous and asynchronous methods The methods of the ObjectHandler interface are divided into synchronous and asynchronous methods see also asynchronous actions and synchronous actions in the glossary Asynchronous methods can be recognized by the suffix Async All other methods are synchronous methods Table 5 6 contains the methods of the ObjectHandler interface that can be called synchronously or asynchronously WM090700 PJA EN 1 Programming Guide for the WCM Java API 69 Chapter 5 Object management Table 5 6 Synchronous and Asynchronous Methods Synchronous methods Asynchronous methods change changeAsync copy copyAsync delete deleteAsync depublishPage depublishPageAsync destroy destroyAsync directRelease directReleaseAsync generatePage generatePageAsync move moveAsync multiImport multiImportAsync reject rejectAsync release releaseAsync submit submitAsync undoCheckOut undoCheckOutAsync The difference between synchronous and asynchronous methods lies in the time of their return If a synchronous method is called it returns when the actual task has been completed and the local deployment has been informed the deployment however has not yet been executed at this time
160. objHandler VipRuntime getObjectHandler websiteNameM cxtHandler VipRuntime getContextHandler contextId cxtHandler login agentUserM agentPasswordM toCharArray find objects and sort the result so that parents will be displayed before their children List objects objHandler sortParentsFirst contextId objHandler filter contextId filterM null null 0 1 submit no pending release date and no e mail objHandler submit contextId objects null agent s remark null catch VipApiException vae vae printStackTrace finally try if cxtHandler null amp amp contextId null cxtHandler logout contextId catch VipApiException vax vax printStackTrace 8 3 Vetoing metadata changes This agent demonstrates how to register for and process preparation events PrepareEvents The agent prohibits WCM object titles from being changed or using a template other than the configured one If the title has been changed or a template has been selected that does not correspond to the configured template of the agent the agent throws a VetoException This prevents the action from being performed The localized message used will then be displayed e g in the user s Content client This example uses an inner class to implement the PrepareEventListener interface Configuration parameters website name of the website to be monitored The parameter is of type String template
161. of a newly created or changed WCM object for German umlauts or some special characters and converts them by means of the WCM Java API a to ae 6 to oe etc For this purpose the agent registers an inner class StringAnalyzer for the events OBJECT_CREATED and OBJECT_METADATA_CHANGED Moreover the agent logs ina configurable user to the system via the WCM Java API because the context ID of a logged in user is required for changing the metadata of a WCM object This user must have the right Change metadata which must be defined in the access control list for the respective WCM object If these two events occur the StringAnalyzer checks whether the metadata Keywords Description and Target group contain terms with German umlauts or special characters and converts these characters accordingly Afterwards the StringAnalyzer causes a metadata change via the WCM Java API For this purpose the change method is called for the object whose metadata were changed The agent must first be configured with the user ID and password in the Admin client via the parameters username and password Also at least one website must be specified that the agent is to monitor For this purpose the websites parameter must be created for the agent in the Admin client If several websites are to be monitored they must be separated by semicolons The constructor reads the parameters website username and password from the configuration data that
162. on on websites on page 102 for more information Depending on the object status different actions such as submit or release are possible for an object Normally a successfully executed action will change the object status of the respective WCM object A WCM object submitted to Quality Assurance for example has the status SUBMITTED before it is released If the WCM object is successfully released by the release method it acquires the status RELEASED Table 5 2 offers an overview of the possible actions for the object statuses and the resulting status changes Table 5 2 Object statuses and possible actions Original object status Possible actions Resulting object status EDITED change unchanged checkOut CHECKED_OUT copy Source object unchanged Target object gt EDITED delete gt DELETED directRelease gt RELEASED PENDING_RELEASE move unchanged restoreVersion unchanged submit gt SUBMITTED CHECKED_OUT checkIn gt EDITED undoCheckOut back to the status the object had before DELETED destroy Object is finally deleted from the WCM system reject REJECTED REJECTED change gt EDITED checkOut CHECKED_OUT copy Source object unchanged Target object gt EDITED WM090700 PJA EN 1 Programming Guide for the WCM Java API 61 Chapter 5 Object management 5 1 2 Original object s
163. onstants in the Event DeploymentEvent PrepareEvent and DeploymentPrepareEvent interfaces Note Events are fired on the generating server Website related and system related events as well as preparation events are triggered on the master Content server and should also be processed there Deployment related preparation events are available on the Content server on which the deployment system is installed Deployment events DeploymentEvents and deployment preparation events DeploymentPrepareEvents are not associated with a user context This is an essential difference to website related and system related events Events as well as to preparation events PrepareEvents An important difference between preparation events PrepareEvent interface and normal events Event interface is the fact that preparation events only have access to the user ID of the user who performed the relevant action Normal events however retrieve an authentication object ContextId that allows them to perform additional actions under the logged in user context This means that e normal events have all the rights of the user who performed the related action e preparation events cannot perform any changes to the actual action Instead a veto exception may be thrown before the action is executed This exception prevents the action This chapter provides information on e which normal events are defined in the interfaces Event an
164. onverters The following example describes a converter that resizes JPG files to a fixed size and generates an HTML page i Notes e The complete code of the sample converter is located in the directory lt WCM installation directory gt examples converter e The sample converter described here does not catch errors e For further information on configuring a converter refer to Livelink WCM Server Administrator Manual WM AGD For the WCM system to call an implemented converter the interface de gauss vip api object ContentConverter must be implemented This interface contains only the convert method The master Content server calls the convert method when a WCM object is to be converted that has the file extension specified in the configuration The call is made synchronously The object to be converted is locked and released again when the convert method returns For this reason implementation must be very accurate The following method contains the file name of the source file to be converted which the master Content server generated before the method was called public void convert String source String destination ContentConverterProperty contentConverterProperty throws VipApiException The source file can be directly instantiated as data type File File orgImage new File source In contrast to this the supplied parameter destination contains a file name When the convert has returned the master Content se
165. or and 6 for Minor If the product version running on the server is lower than the version returned by the agent the server will not start the agent 2 2 3 Starting server agents Server agents are started by means of the start method of the ServerAgent interface The server calls this method in the following situations e during startup i e when switching from run level AGENTS_STOPPED to run level SINGLE_USER see also Retrieving and setting run levels on page 109 This has some implications as the server has not completed booting at this point In particular it is not possible to access any website at this time e when explicitly starting the agent via the Admin client Before each start of the agent a new instance of the agent class is created by using the constructor of this class see above Afterwards the start method of the agent instance is started in a separate thread This thread terminates when the call of the start method returns Depending on the actions of the agent this may be very shortly or a long time after the call Note When implementing the start method make sure that no time consuming actions are performed as this would delay the booting process of the server In the start method it is not possible to wait for the servers to boot Instead it is advisable to only register for the respective event e g SERVER_UP or WEBSITE_UP in the method In the start method the agent can register for events f
166. or usrSettingsIter allUserSettings keySet iterator while usrSettingsIter hasNext Retrieve the UserSettings object UserSettings uS UserSettings allUserSettings get usrSettingsIter next System out println Settings uS getName contains keys values n Iterate over the individual keys of the UserSettings and output the associated values Iterator keyIter uS getEntryKeys while keyIter hasNext String key String keyIter next System out printin t key key value uS getValue key System out printin see Tee a es See et ee fe ee ei aSnS n WM090700 PJA EN 1 Programming Guide for the WCM Java API 49 Chapter 4 Event processing When statuses change ina WCM system events are fired These include events that are fired after the action once the status change has occurred as well as prepare events that are fired before the actual action In order to receive notification of the occurrence of certain events server agents can register an event listener EventListener or DeploymentEventListener with the event dispatcher EventDispatcher or DeploymentEventDispatcher When an event occurs the central event dispatcher distributes the event to all event listeners that have registered for it In general each event has a definitive type which represents the type of status change or of the impending change The possible event types are defined as c
167. orena Groups without WCM attributes The following example searches the nodes ou users and ou groups for principals that do not yet have the WCM attributes and assigns the attributes to the principals found login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler ah VipRuntime getAdminHandler retrieve principals without WCM attributes in the LDAP context o company c en ou users The returned list contains the LDAP DNs as StringValue objects List unassignedUsers ah getUnassignedLDAPPrincipals cid ou users o company c en false set WCM attributes for these users Iterator usrIter unassignedUsers iterator while usrIter hasNext StringValue usrDN StringValue usrIter next ah importLDAPPrincipalAsUser cid usrDN retrieve principals without WCM attributes in the LDAP context o company c en ou groups and assign the WCM attributes to these principals List unassignedGroups ah getUnassignedLDAPPrincipals cid ou groups o company c en false Iterator grpIter unassignedGroups iterator while grpIter hasNext StringValue grpDN StringValue grpIter next ah importLDAPPrincipalAsGroup cid grpDN WM090700 PJA EN 1 Programming Guide for the WCM Java API 39 Chapter 3 User administration lt a 3 4 Editing rights of principals 3 4 1 Livelink WCM Server differentiates two differe
168. ote For information on configuring the LDAP integration for Livelink WCM Server refer to the Livelink WCM Server Installation Guide WM IGD The required WCM attributes for principals in the LDAP directory service can also be set via the WCM Java API Use the getUnassignedLDAPPrincipals method to retrieve the principals within a certain search node that are not yet equipped with the WCM attributes The returned list contains the distinguished names DN of the principals as StringValues These principals can then be equipped with the WCM attributes by means of the methods importLDAPPrincipalAsUser importLDAPPrincipalAsGroup and importLDAPPrincipalAsRole In addition to the ContextId you have to specify a StringValue with the DN of the principal to be imported as parameter gt Example 3 6 Setting WCM attributes in LDAP In the LDAP directory services there is a node o company c en Below this node there is among other things a node for users ou users and a node for groups ou groups These two nodes contain the principal entries that do not yet have the WCM attributes and that are to be equipped with these attributes via the WCM Java API The following figure illustrates the LDAP structure 38 Livelink WCM Server WM090700 PJA EN 1 3 3 Setting WCM attributes in LDAP o company cen Users without WCM attributes uid jstein cn Joshua Stein uid hshepard en Helen Shepard uid mmorens cn Maria M
169. ote API connections run via SSL whereas the other connections of the server are not secure 2 3 2 Requirements for developing a remote API application To develop an executable Java program by means of the remote API you require the following files from the WCM installation directory on the computer on which the Java program is executed e From the subdirectory lib jcert jar 20 Livelink WCM Server WM090700 PJA EN 1 2 3 Remote API jnet jar e jsse jar e vipcore jar e From the subdirectory config the complete subdirectory resource This directory contains the properties files with the messages and GUI texts of Livelink WCM Server required for starting the Java program Create a directory on the local computer and copy the directory structure config resource to this directory In the class path of the Java program there must be a reference to the new directory gt Example 2 4 The following code sample is part of a simple remote API program package import com sun net ssl internal ssl Provider import java security Security import de gauss vip api admin ContextHandler import de gauss vip api lang ContextId import de gauss vip api VipRuntime public class RemoteTestClient public static void main String args System out println starting RemoteTestClient try RemoteTestClient test new RemoteTestClient test start args arg 0 hostname arg 1 servername ar
170. other documentation User interface This format is used for elements of the graphical user interface GUI such as buttons names of icons menu items names of dialog boxes and fields Filename command sample data This format is used for filenames paths URLs and commands in the command line It is also used for example data text to be entered in text boxes and other literals Note Ifa guide provides command line examples these examples may contain special or hidden characters in the PDF version of the guide for technical reasons If you want to copy commands to your application or command line use the HTML version of the guide Key names Key names appear in ALL CAPS for example Press CTRL V lt Variable name gt The brackets lt gt are used to denote a variable or placeholder Enter the correct value for your situation for example Replace lt server_name gt with the name of the relevant server e g serv01 Hyperlink and Weblink http www opentext com These formats are used for hyperlinks In all document formats these are active references to other locations in the documentation hyperlink and on the Internet Weblink providing further information on the same subject or a related subject Click the link to move to the respective target page Note The hyperlink above points to itself and will therefore produce no result Tip Tips offer extra information that may make your work more efficient o
171. ove but with volume ID 2000 LivelinkId 11lid3 new LivelinkId 2000 123 2 ea Reading Use the LivelinkObjectHandler interface for reading Enterprise Server items The Enterprise Enterprise Server ID is used to identify the items Server items Example 7 4 The following code sample reads a current and a versioned Enterprise Server item If the logged in user does not have the permission See Contents for the item a LivelinkAccessDeniedException is thrown If the item does not exist or has been deleted a LivelinkObjectNotFoundException is thrown ContextId cid LivelinkId 1lid1 new LivelinkId 123 LivelinkObjectHandler lloh LivelinkRuntime getInstance getObjectHandler livelink try LivelinkObject llobj lloh get cid llid1 System out printin current object 11lob j LivelinkId 1lid2 new LivelinkId 0 123 2 llobj lloh get cid 11lid2 System out println object version 2 11o0bj catch LivelinkAccessDeniedException lade System out println access denied catch LivelinkObjectNotFoundException lonfe 116 Livelink WCM Server WM090700 PJA EN 1 7 2 Managing Enterprise Server items System out printin object not found 4a gt Example 7 5 To read an Enterprise Server item you can also use the getAccessible method If the item cannot be read this method does not throw an exception but returns null LivelinkObject llobj lloh getAccessible cid 1llid1
172. p al Example 7 2 Examples for using the LivelinkAdminHandler interface The following code sample retrieves the user with the ID j stein and outputs the user s last name ContextId cid VipRun time getContextHandler login admin admin LivelinkAdminHandler llah LivelinkRuntime getInstance getAdminHandler systemName LivelinkUser lluser LivelinkUser llah getUser cid jstein System out printin lastName lluser getLastName LivelinkPrincipalFilter is the basic class for searching principals in Livelink ECM Enterprise Server Use the LivelinkUserFilter class for searching users and the LivelinkGroupFilter class for searching groups The following code sample searches all groups whose names start with the ow letter n ContextId cid LivelinkAdminHandler llah LivelinkGroupFilter f new LivelinkGroupFilter n LivelinkPrincipalFilter OP_STARTSWITH for Iterator i llah filter cid f 100 iterator i hasNext LivelinkGroup g LivelinkGroup i next System out printin Found group g getName gt 7 2 Managing Enterprise Server items The LivelinkObjectHandler interface provides methods for reading and editing Enterprise Server items This section deals with the following topics Accessing Enterprise Server items on page 116 Checking permissions for an Enterprise Server item on page 118 Item types in Livelink ECM Enterprise
173. pRuntime getDeploymentHandler Unless otherwise specified all classes and interfaces are included in the package de gauss vip api admin and de gauss vip api deployment Retrieving information on the WCM system The interfaces AdminHandler and SystemHandler provide methods for retrieving information on the WCM system This includes among other things the logged in users the installed servers and the configured websites Retrieving logged in users The system administration SystemHandler interface offers an exact overview of the users that are currently logged in to the WCM system Use the getActiveUsers method for this purpose If a server name is specified in the request only the users logged in to this server are returned If nu11 is specified as the server name all users logged in to the WCM system are listed Note Via the AdminHandler interface you can create and edit principals and retrieve their profiles see User administration on page 31 Information on servers A WCM system consists of a set of WCM servers that communicate with each other For detailed information on the server concept of Livelink WCM Server refer to 100 Livelink WCM Server WM090700 PJA EN 1 6 1 Retrieving information on the WCM system Section 4 1 Understanding server concepts in Livelink WCM Server Administrator Manual WM AGD Each server is clearly identified by a logical name and has a type that defines the server s role
174. pal To edit the administration rights of a principal use the setAdminRights method of the AdminHandler interface The constants for the administration rights are supplied in a list gt Example 3 8 Assigning administration rights A new user does not yet have any administration rights The following example shows how to assign administration rights to a user login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler ah VipRuntime getAdminHandler load profile of user Joshua Stein User usr ah getUserProfile cid jstein 42 Livelink WCM Server WM090700 PJA EN 1 3 4 Editing rights of principals AdminHandler INDIRECT_ASSIGNMENTS grant the administration rights MODIFY_PRINCIPAL and SET_ADMIN_ACL to the user List admGranted new LinkedList admGranted add VipAdminPermission MODIFY_PRINCIPAL admGranted add VipAdminPermission SET_ADMIN_ACL ah setAdminPermissions cid usr admGranted lt a 3 4 2 Default object rights of principals The default object rights are used as predefined settings for the object rights when a principal is added to the access control list of a WCM object The exact access settings for a WCM object are part of the metadata of the object and can be changed via the Obj ectHandler interface see Editing access control lists on page 89 The VipObjectPermission interface provides the following constants for the objec
175. pecifying several e mail recipients addRecipient addCCRecipient addBCCRecipient and addReplyTo e sending e mails in HTML format prepareHTMLMail String plaintext String html e adding attachments to the e mail addAttachment File addAttachment Object and addAttachment InputStream e modifying the text generated by the EmailInfo class by means of configuration parameters e inserting references into the e mail by means of the EMailInfoWithLinks class If a reference is selected the respective WCM object is displayed directly in the Content client and can be edited To achieve a better compatibility with SMTP servers the JavaMail API by Sun Microsystems is used for generating the e mails In addition to the already known format for e mail addresses e g jstein company example it is possible to specify a name with the e mail address e g Joshua Stein lt jstein company example gt Generating e mails at status changes When WCM objects change their status an e mail can be generated via the ObjectHandler interface For this purpose an object of type EMailInfo is supplied to the respective method e g ObjectHandler submit myEMailInfo The content of the e mail is generated automatically by EMailInfo By default the WCM objects that changed their status are listed in the e mail Alternately you can add a predefined text to the e mail instead of the list Use the methods setFixedPlain or setFixed
176. principals refer to Editing principal assignments on page 46 The functions of the WCM Java API can be used to read and edit the profiles of principals The interfaces User Group and Role supply methods for this purpose Retrieving profiles To retrieve the profile of a user group or role use the getUserProfile method of the AdminHandler interface gt Example 3 2 Retrieving a user profile The following example determines the profile for the user with the ID j stein In this example the profile also contains all indirectly assigned functional areas and websites i e the functional areas and websites of jstein s roles and groups AdminHandler ah VipRuntime getAdminHandler ContextId cid VipRuntime getContextHandler login admin password User user ah getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS 34 Livelink WCM Server WM090700 PJA EN 1 3 2 Editing principals 3 2 3 List websites user getWebsites Iterator i websites iterator while i hasNext Website w Website i next System out printin User user getName is assigned to website w getName t al Editing profiles In order to modify a profile it must be loaded first Use the appropriate methods of the User Group or Role interface to set the desired properties To persistently store the changes in the user administration call the update method of the AdminHandler
177. propriate access methods gt Example 3 13 Saving an address in the user settings In the first code sample an address is to be saved in the settings of the user jstein ContextHandler ctxHandler VipRuntime getContextHandler Log in a user with Admin rights ContextId cid ctxHandler login AdminHandler ah VipRuntime getAdminHandler Load the profile of user jstein User usrJS ah getUserProfile cid jstein AdminHandler INDIRECT_ASSIGNMENTS Create a UserSettings object for saving the address data address is used as the name for the settings UserSettings adr usrJS createUserSettings address set address data adr setValue Office Street new StringValue Weidestr 120 adr setValue Office City new StringValue Hamburg adr setValue Office ZIPCode new StringValue 22083 save data permanently by calling update 48 Livelink WCM Server WM090700 PJA EN 1 3 7 Saving user settings for the user jstein ah update cid usruJS Example 3 14 Read and output user settings In the second code sample all settings of the user j stein are read and output on the console retrieve all UserSettings for the user These are returned in a map containing the UserSettings objects as values and their names as keys Map allUserSettings usrJS getAllUserSettings The iterator contains the names of the UserSettings objects as strings Iterat
178. r show alternative ways of performing a task Note Notes provide additional useful information help you avoid problems and clear up misunderstandings Livelink WCM Server WM090700 PJA EN 1 1 4 Terminology i Important Important information is identified in this way If you ignore such information you may encounter major problems i Caution Cautions contain very important information that if ignored may cause irreversible problems Read this information carefully and follow all instructions Cross The documentation uses different types of cross references references e Internal cross references Clicking on the colored part of a cross reference takes you directly to the target of the reference This applies to cross references in the index and in the table of contents External cross references in PDF documents In PDF documents external cross references are references to other manuals For technical reasons these external cross references often do not refer to specific chapters but to a manual in general 1 4 Terminology In this documentation all terms relating to Livelink ECM Enterprise Server start with Enterprise Server to differentiate them from other Open Text products and to keep them short Examples are Enterprise Server item Enterprise Server users or Enterprise Server permission In the Livelink ECM Enterprise Server documentation these terms are referred to as Livelink items Livelink us
179. r as a string array WM090700 PJA EN 1 Programming Guide for the WCM Java API 25 Chapter 2 Implementation basics gt Example 2 8 If submitting an object fails the following messages could be returned via getMessages First message Could not submit object 4711 Second message The parent topic has not yet been submitted In this case the second message indicates the actual cause of the error The first message describes the result i e that the object could not be submitted ea 2 6 Localized messages If you want your application to use the same localization mechanism as Livelink WCM Server and to output translated messages depending on the language settings of the logged in user you can use the functions of the basic class UserMessage de gauss vip api UserMessage The most important method of this class is getString locale This method returns a representation of the message in the specified language without considering the country code A message always consists of a key in the form of a language independent character string and optionally several arguments arbitrary Java objects The translation of the language independent key is read from a message file properties Every message class has a file containing an assignment of message keys to message texts For each supported language a separate file exists Note The language independent key must be entered in the message file exac
180. rable website and synchronously submits any edited object that has never been released public class AutoSubmissionAgent extends ExampleAgent implements EventListener holds EventDispatcher singleton private final static EventDispatcher eventDispatcherM VipRuntime getEventDispatcher set from website parameter private final String websiteNameM set from agent user parameter private final String agentUserM set from agent password parameter private final String agentPasswordM private Filter filterM Constructor reads configuration parameters and prepares the filter public AutoSubmissionAgent Properties config throws VipApiException WM090700 PJA EN 1 Programming Guide for the WCM Java API 133 Chapter 8 Application examples AUTOSUBMISSIONAGENT_DESC will be localized via UserMessage_ lt langcode gt properties file super Company Example AUTOSUBMISSIONAGENT_DESC 1 1 8 2 websiteNameM config getProperty website agentUserM config getProperty agent user agentPasswordM config getProperty agent password Jex de gauss vip api ServerAgent implementation that is not covered by ExampleAgent register this instance for events public boolean start String serverType int majorVersion int minorVersion String patchLevel eventDispatcherM addListener null Event RUNLEVEL_IS this return true success deregister this ins
181. ration The method returns a list containing the errors as objects of the type DeploymentError public List getErrors Contextld cid String dplName Long transactionId This method provides information on errors that occurred in the specified deployment system during a certain transaction The transaction is specified by means of a transaction ID The method returns a list containing the errors as objects of the type DeploymentError public List getErroneousTransactionIds Contextld cid String dplName This method provides information on errors that occurred in the specified deployment system The method returns a list with the IDs of the transactions during which errors occurred By means of the methods of the DeploymentError interface you can retrieve the OID of an object or the ID of a transaction in which the respective error occurred methods getOID and getTransactionId Moreover the actual error message can be requested by means of the method getErrorMessage The method getCreationDate retrieves date and time of the error gt Example 6 6 Retrieving deployment error information for transactions The following example shows how to retrieve the deployment errors for the currently running transaction log in and get DeploymentHandler ContextId cid VipRuntime getContextHandler login DeploymentHandler dH VipRuntime getDeploymentHandler InternetSite get DeploymentStatus for the deployment system
182. reas to principals refer to Editing principal assignments on page 46 The AdminHandler interface makes it possible to add read and delete functional areas For more information refer to e Adding and deleting functional areas on page 45 e Retrieving functional areas of the WCM system on page 45 3 5 1 Adding and deleting functional areas Functional areas are added by means of the FunctionalAreaFactory The factory is only used for creating functional area objects To persistently add the new functional areas to the WCM system the add method of the AdminHandler interface must be called afterwards The FunctionalAreaFactory interface has only one method createFunctionalArea To request an instance of the FunctionalAreaFactory use the getFunctionalAreaFactory method of the AdminHand1ler interface When a functional area is added with the createFunctionalArea method the name of the new functional area is supplied as string To delete functional areas use the remove method of the AdminHand1er interface 3 5 2 Retrieving functional areas of the WCM system To retrieve the functional areas used within a WCM system and their specific properties you can use the methods getFunctionalArea and getFunctionalAreas of the AdminHandler interface The getFunctionalAreas method returns a list of FunctionalArea objects yet without their properties i e without users groups and roles In this case the hasAssignment metho
183. retrieves all categories of an Enterprise Server item and outputs the according attribute values LivelinkObject llobj for Iterator i llobj getCategoryNames iterator i hasNext String catname String i next for Iterator j llobj getAttributeNames catname iterator j hasNext Key attr Key j next Value val llobj getAttribute catname attr 120 Livelink WCM Server WM090700 PJA EN 1 7 2 Managing Enterprise Server items System out printin category catnamet attribute attr value val 4a 7 2 5 Reading log entries Use the getAuditTrail method of the LivelinkObject interface to retrieve the history of an Enterprise Server item gt Example 7 11 Reading the log of an Enterprise Server item The following code sample reads the log entries of an Enterprise Server item for Iterator i llobj getAuditTrail iterator i hasNext AuditEntry ae AuditEntry i next System out printin date t ae getDate description tae getDescription event t ae getEvent identifier ae getIdentifier user t ae getUser getName ea 7 2 6 Reading content Use the getContent method of the LivelinkObject interface to read the content of an Enterprise Server item First you should call the hasContent method to check whether the item has any content gt Example 7 12 Reading the content of an Enterprise Server item current version
184. rror handling are described Highlighted topics include e Architecture of the WCM Java API on page 11 e Server agents on page 13 e Remote API on page 18 e Authentication and contexts on page 22 e Error handling on page 25 e Localized messages on page 26 e Pool management on page 27 Architecture of the WCM Java API The central class of the WCM Java API is the class VipRuntime the point of access to all WCM Java API interfaces interface Deployment EventDispatcher Event Dispatcher interface Figure 2 1 Basic WCM Java API interfaces The individual interfaces offer the following functionalities WM090700 PJA EN 1 Livelink WCM Server 11 Chapter 2 Implementation basics The ContextHandler interface The context management interface provides methods for logging into and out of the current server changing the password or retrieving the profile of a logged in user See Authentication and contexts on page 22 The PoolManager interface This interface provides access to connections that are based on custom connection types e g for integrating third party systems These types of connections can be managed via the pool mechanism of Livelink WCM Server See Pool management on page 27 The AdminHandler interface This interface allows access to the data and functions of the user and system administration of Livelink WCM Server This ena
185. rrormessages 25 localization 25 errors deployment 107 Event 155 Event interface 52 event processing 72 event dispatchers 58 event listeners 57 EventDispatcher interface 58 EventListener interface 57 events 52 deployment related 55 preparation events 56 system related 109 website related 52 examples 131 automatic submission 133 convert special characters 142 monitoring deployment events 137 vetoing metadata changes 135 exceptions 25 translated messages 25 VipApiException basic class 25 execute deployment jobs 106 external object 124 WM090700 PJA EN 1 Programming Guide for the WCM Java API 161 Index ExternalObject interface 124 ExternalObjectRelator class 125 F factory FunctionalArea 45 PrincipalFactory 33 Feedback 10 FILE_CHANGED events 55 FILE_DELETED event 55 FILE_URL_CHANGED event 55 filter 84 attribute filter 85 Filter interface 84 filter method 68 functional areas 44 add and delete 45 assign to principal 46 constants 45 information 45 FunctionalArea interface 45 G generatePage method 68 generateTopic method 68 get method 68 getPrincipals method 35 global tracing 111 groups 32 add 33 delete 37 edit assignments 46 edit rights 40 profile 34 search 35 l import 68 information on deployment 104 on deployment errors 107 on deployment systems 103 on functional areas 45 on pages 104 on servers 100 on the WCM system 99 on websites 102 integration with Ent
186. rver s temporary directory In the server s temporary directory there is a temporary directory for each website This directory is required for object management e g for checking out WCM objects gt Example 6 1 Reading server information The following code sample shows how to read server information log in user ContextId cid VipRuntime getContextHandler login aS u retrieve AdminHandler AdminHandler ah runtime getAdminHandler retrieve Admin server Server admin ah getServer cid Admin WM090700 PJA EN 1 Programming Guide for the WCM Java API 101 Chapter 6 System information and administration 6 1 3 ee print out some information about the server System out println admin getHostname System out printin admin getSocketPort System out printin admin getHTTPPort System out printin admin getMailHost J Information on websites In a WCM system a website is clearly identified by a logical name The AdminHandler interface provides methods for retrieving information about a website A website is modeled by an object of the Website class The getWebsite method of the AdminHand1er interface provides the essential website properties The list of all websites in a WCM system is determined by means of getWebsites The result is a list of Website objects The following properties can be determined for a Website object the website s root object
187. rver tries to find a file with this name This file is imported into the WCM system All files that are relatively referenced by this file are also created as WCM objects The following code sample illustrates the generation of such a target file File destHTML new File contentConverterProperty getTempDir destination The sample converter generates an HTML file which contains the reference to the resized image The file name used is generated from the source parameter The contentConverterProperty parameter is a reference to the configuration of the converter Special parameters in this example HEIGHT and WIDTH can be queried by means of getEnvironment The method returns a list of strings Each string has the WM090700 PJA EN 1 Programming Guide for the WCM Java API 93 Chapter 5 Object management 5 10 structure key value By means of this mechanism it is possible to supply the appropriate configuration to the converter The sample converter reads the height and width of the image to be generated This is realized by the following code sample private void loadImageSize List params if params null for int i1 0 i lt params size 1i String tempParam String params get i if tempParam startsWith WIDTH amp amp tempParam length gt WIDTH length widthM Integer parseInt tempParam substring WIDTH length else if tempParam startsWith HEIGHT amp amp tempParam length gt
188. s The WCM system reads the WCM object s access control list ACL and checks whether the logged in user has the right required for the action The rights required for specific actions are listed in the Javadoc 5 2 Actions of the ObjectHandler interface The ObjectHandler interface provides access to the WCM objects of a website To request the ObjectHandler via the method VipRuntime getObjectHandler the name of the website must be supplied as an argument The names of all websites managed by the agent s server can be retrieved by means of VipRuntime getCurrentServer getWebsiteNames The respective website contains for example the object types and statuses used The Website object can be retrieved by means of ObjectHandler getWebsite The ObjectHandler interface provides different methods for performing actions on WCM objects Overview of the ObjectHandler methods on page 68 gives you an overview of these methods The methods of the Obj ectHandler interface are divided into synchronous and asynchronous methods For an overview refer to Synchronous and asynchronous methods on page 69 Several actions on WCM objects can only be performed within one transaction see Transactions on page 71 Every action is executed within a context A distinction is made between a user context and a transaction context see User and transaction contexts on page 74 WM090700 PJA EN 1 Programming Guide for the WCM Java API 67
189. s always refer to persistently saved generated pages in the context of the dynamic deployment there may also be pages that are temporarily generated They result from a status change of the respective WCM object which is transmitted by means of events or from a GENERATE_PAGE event All events are fired after the respective change has been made An important difference compared to website related and system related events is that there are no preparation events in the case of the deployment the only exception being PREPARE_FILE_CHANGED The reason for this is that the deployment only generates the representation of the WCM objects but does not make any changes to the WCM objects Conflicts that may occur are solved by the deployment itself The generation of the pages is optimized in such away that in the case of changes the respective page is generated only once if possible Deployment events are represented by objects of the DeploymentEvent interface and always refer to exactly one deployment system The name of this deployment system as a String object can be retrieved by means of the method getConstraint Each event has arguments that deliver more detailed information on the objective of the status change For example all deployment related events have a reference to the related WCM object as an argument OID In general you can determine the values of the arguments the kind of which depend on the event type by means of the getArgu
190. sitoryEntry entry The constants for the attributes used are defined in the FieldNames interface If the getAsRepositoryEntry method contains null as the argument for the attribute set all attributes in the RepositoryEntry object will be set In particular all attributes of the object type s attribute set and all properties of the object category are adopted Setting the object data considers these attributes and properties Please note that setting all attributes requires some time if you only need certain attributes you should supply them explicitly as arguments for the attribute set The parameter for the deployment system is only significant for the URL and the path name as these attributes depend on the deployment system If these attributes are not required null can be supplied Retrieving OID and version of WCM objects A reference to a WCM object is represented by an object of the ObjectId class Each WCM managed object has a version represented by an object of the Version class de gauss vip api lang A version consists of three numbers a major version a minor version and a micro version number The micro version number changes when a WCM object is changed in the Edit view check out change metadata The minor version number changes when a WCM object is submitted to Quality Assurance in this case the micro version number is set to 0 The major version number is incremented at release in this case the minor version numb
191. spective World class singleton pattern For the user administration the TYPE_USER TYPE_GROUP and TYPE_ROLE types are particularly relevant These types have three associated classes User Group and Role Users are identified by a user ID while groups and roles are identified by a unique name The further properties Profile are retrieved via the AdminHandler interface Each of the three classes provides a hasProfile method which checks whether the other properties exist Editing principals The administration interface provides methods for editing users groups and roles This section explains the methods for the following purposes e Adding principals on page 33 e Profiles of principals on page 34 e Searching principals on page 35 e Deleting principals on page 37 Note For editing and deleting principals it does not matter whether the user data is stored in an RDBMS in Livelink ECM Enterprise Server or an LDAP directory service Whether it is possible to add principals depends on the LDAP directory service used see Livelink WCM Server Installation Guide WM IGD 32 Livelink WCM Server WM090700 PJA EN 1 3 2 Editing principals 3 2 1 Adding principals Principals are added by means of the PrincipalFactory The factory is only used for creating principal objects To persistently add the new users groups or roles to the WCM system the add method of the AdminHand1ler interface
192. ssage TRANSLATIONJOB_AGENT_MESSAGE messageM uM getString By means of the start method the agent is registered for the events RUNLEVEL_IS and OBJECT_METADATA_CHANGED Registration for the event RUNLEVEL_IS is required for logging the agent s user in to the WCM system at the right point of time e g ina run level higher than or equal to SERVER_UP public boolean start String argO int argi int arg2 String arg3 EventDispatcher eventDispatchM VipRun time getEventDispatcher eventDispatchM addListener Event RUNLEVEL_IS this eventDispatchM addListener Event OBJECT_METADATA_CHANGED this return true In the performVipEvent method the respective events are processed As soon as the SERVER_UP run level is reached the configured user is logged in by means of the dologin method As the login is trivial it is not explained here The doSetup method reads the assignments between users and languages saved in the translation_lang_user parameter Via the method AdminHandler getUserProfile the user profile is loaded for each user ID and saved together with the locale in a map editorsLanguagesM From the user profile the e mail addresses of the translators will be retrieved later on However if the event indicates a change to the metadata of an object the createTranslationObjects method is called This method ensures that a new object is created for each language supported Afterwards the editor responsibl
193. stems automatically generate a new page every time a WCM object is changed The generated pages are stored in the file system Dynamic deployment systems generate the pages on 154 Livelink WCM Server WM090700 PJA EN 1 Glossary the basis of user defined settings and only when the page is requested via the HTTP server The generated files are stored in a flat file structure By means of Search engine deployment systems you can prepare your website data for use with a search engine WebDAV deployment systems are required for the use of WebDAV clients InSite Editing deployment systems provide the basis for editing and adding content directly in the website without the Content client DeploymentEvent An event that indicates activities on searching and receiving WCM systems relating to the distribution of data between WCM servers DeploymentHandler Instance that actively initiates deployment actions Edit view In the Edit view of Livelink WCM Server the objects of a website are created and edited Here the most current status of the objects is visible End point When a WCM object is forwarded in the workflow and an end point is reached the assignment between WCM object and workflow is removed Event Events are fired by the WCM system when the state of a WCM object or a generated page or the system state changes Object category Assignment of a WCM object to a specific category Due to this assignment the WCM
194. t rights Table 3 3 Constants of the access rights for WCM objects Access right Constant Read VipObjectPermission READ Change object VipObjectPermission WRITE Delete VipObjectPermission DELETE Create VipObjectPermission CREATE Release VipObjectPermission RELEASE Change metadata VipObjectPermission WRITE_META Change rights VipObjectPermission CHANGE_RIGHTS Move and copy VipObjectPermission TREE_OPERATIONS Read Production VipObjectPermission READ_PRODUCTION Use the getInitialPrincipalRights method of the User Group or Role interface to read the default object rights of a principal The method returns an object of the InitialPrincipalRights class This class provides methods for requesting and setting granted and denied object rights The object rights that are set by means of the methods provided by InitialPrincipalRights must subsequently be saved as default object rights of the principal Use the setInitialRights method of the AdminHandler interface for this purpose gt Example 3 9 Assigning default object rights A new user does not yet have any default object rights The following example illustrates how to set default object rights for a user WM090700 PJA EN 1 Programming Guide for the WCM Java API 43 Chapter 3 User administration ea login and get AdminHandler ContextId cid VipRuntime getContextHandler login AdminHandler ah VipRuntime getAdminHa
195. t systems 5 Server agents ContentMinerNotification DatabaseUpdate Demoagent amp Servers 4 Parameters password username website Name Value bad password pass H F 0 G4 The constructor of the DemoAgent class looks like this public class DemoAgent implements de gauss vip api ServerAgent private final String userName private final String password private final String website public DemoAgent java util Properties config userName config getProperty username password config getProperty password website1 config getProperty website 16 Livelink WCM Server WM090700 PJA EN 1 2 2 Server agents 2 2 2 Additional information on server agents For each server agent several entries must be defined that offer more detailed information about the agent manufacturer description and version These values are read by means of the methods getManufacturer getDescription and getVersion These entries are for example displayed in the Admin client under System administration gt Active servers gt lt server name gt gt Reports gt ServerAgentManager required version of Livelink WCM Server These values are read by means of the methods getRequiredVIPMajorVersion and getRequiredVIPMinorVersion They define the Livelink WCM Server version required by the agent e g version 8 6 is specified by 8 for Maj
196. t to the next activity If this involves a staging transition the user must have the required access rights If an e mail is to be sent it is automatically sent to the e mail address of the principal assigned to the target activity In the case of staging transitions no e mails are sent to the e mail addresses saved in the metadata of the object Unassigning a workflow If the WCM object reaches an end activity in the workflow Destroy Release Stop the assignment between workflow and object is automatically removed However it is possible that an object cannot be forwarded in the workflow e g because the principal assigned to the current activity does not have the required access rights In this case you must remove the workflow manually A principal with the right Change rights can change the assignment of a workflow toa WCM object at any time The principal who assigned the workflow is allowed to unassign it even without the right Change rights provided that the object has not yet been forwarded within the workflow Converting objects Converters are used to transform contents that exist in a certain file format into other formats The Executable converter is supplied with Livelink WCM Server 92 Livelink WCM Server WM090700 PJA EN 1 5 9 Converting objects This converter calls executable files and supplies the file to be converted as a parameter On the basis of the existing interfaces you can implement custom c
197. tId if changed containsKey FieldNames TITLE throw new VetoException new UserMessage titleVetoKeyM objId getId 8 4 Monitoring deployment events This example shows a simple implementation of an agent that monitors all deployment events and writes them to the console Configuration parameters No parameters are required for this agent Ex Title Description A small agent for deployment events lt br gt Starts a thread printing out deployment events Copyright Copyright c 2002 Company author version 1 0 public class DplEventTester extends ExampleAgent implements DeploymentEventListener ServerAgent Runnable private static int counterM 0 private Object mutexM new Object private String nameM DeplEventTester_ private boolean stopM false private LinkedList todoM private de gauss vip config PropertyMap pmM public DplEventTester de gauss vip config PropertyMap pm super Gauss Interprise AG Java API Test Deployment Agent 0 2 8 0 pmM pm counterM nameM nameM counterM WM090700 PJA EN 1 Programming Guide for the WCM Java API 137 Chapter 8 Application examples todoM new LinkedList interface ServerAgent Caution some methods are inherited from the super class Starts a thread for printing out events param serverType the type of the WCM server that will execute this agent param major
198. taData interface 104 DeploymentPrepareEvent interface 58 160 Livelink WCM Server WM090700 PJA EN 1 Index DeploymentPrepareEventListener interface 58 DeploymentSystem interface 103 DeploymentWaitInfo 75 depublishPage method 68 destroy method 69 direct release 68 directRelease method 68 Documentation general 6 documentation for Livelink WCM Server 7 E e mail adapt layout 96 compile 98 configuration file 95 generate via WCM Java API 97 HTML format 98 plain text 98 send 98 specify content 95 status change 95 e mail support 94 edit access control list 89 assignments 46 attributes 81 content of relators 128 content of WCM objects 128 deployment specific metadata of relators 127 Enterprise Server metadata of relators 127 functional areas 44 object data 84 principals 32 profiles of principals 35 references 79 relator 127 rights of principals 40 standard metadata 81 WCM objects 59 edit objects actions of the ObjectHandler 68 Edit view 155 EmailData interface 94 End point 155 Enterprise Server navigating 117 object management 115 user administration 114 Enterprise Server integration 113 Enterprise Server item add 122 add content 122 cache 117 change connection 126 change metadata 123 check permissions 118 delete 123 establish connection 125 identify 116 log 121 read 116 read content 121 read log entries 121 reserve 123 retrieve metadata 119 unreserve 123 Entity interface 91 e
199. tance for all websites events public void stop eventDispatcherM removeListener this pex de gauss vip api event EventListener implementation If the configured website has just been started this method submits any edited object that has never been submitted to QA the submisson is done synchronously so event propagation will pause until the submission completes For real agents this should be changed to asynchronous submission but special care would have to be taken for context refresh and subsequent events e g WEBSITE_INACCESSIBLE public void performVipEvent Event event Integer level Integer event getArgument Event ARG_NEW String website String event getArgument Event ARG_WEBSITE if level intValue Runlevel WEBSITE_UP amp amp website null amp amp website equals websiteNameM ContextHandler cxtHandler null ContextId contextId null try construct filter ObjectState objState ObjectHandlerUtil getObjectState websiteNamemM ObjectState EDITED Filter objStateFilter new EqualFilter SearchableKeys STATE objState Filter versionFilter new AndFilter new EqualFilter SearchableKeys VERSION_MINOR new LongValue 0 new EqualFilter SearchableKeys VERSION_MAJOR 134 Livelink WCM Server WM090700 PJA EN 1 8 3 Vetoing metadata changes new LongValue 0 filterM new AndFilter objStateFilter versionFilter ObjectHandler
200. tatus Possible actions Resulting object status delete gt DELETED move gt EDITED restoreVersion gt EDITED submit gt SUBMITTED RELEASED change gt EDITED checkOut gt CHECKED_OUT copy Source object unchanged Target object gt EDITED delete gt DELETED move gt EDITED restoreVersion gt EDITED PENDING_RELEASE change gt EDITED checkOut gt CHECKED_OUT copy Source object unchanged Target object gt EDITED delete gt DELETED PENDING_RELEASE restoreVersion Edit view gt EDITED QA view unchanged SUBMITTED reject REJECTED release gt RELEASED gt PENDING_RELEASE Data storage views According to the staging of Livelink WCM Server there are three data storage views ina WCM system Edit view QA view and Production view Depending on the object status the WCM objects of a website are available in different views and can be edited A new object for example is only available in the Edit view It cannot be seen in the QA or Production view During staging a WCM object goes through various object statuses and different views The availability of the WCM object in the different data storage views can change as the result of an action After release the current state of a WCM object is also available in the Production view for example Further actions on the WCM object in the QA view however would not be possible until the object has been resubmitted to Quality Assurance Figure 5 2 illustra
201. tes the staging for processing WCM objects 62 Livelink WCM Server WM090700 PJA EN 1 5 1 Conditions for editing objects Production view OQ Edit view w N EAn i directReleaso s s s ss checkOut reject release Se een ba Konfpocccectectestecteteespens a a Ga anaana A ODjOCE and A gt OYA ie checkin submit generatePage oder delete Konsap Figure 5 2 Staging for processing a WCM object Which view of the WCM objects of a website is available on a server depends on the routing for the website A master Content server always has all views The views on a proxy Content server depend on which view this server gets in the routing chain between the Content servers This is determined when the website is created or when proxy Content servers are assigned to a website It is for example recommendable that the proxy Content server used for editing the WCM objects gets the Edit view of the WCM objects This view also comprises the QA and Production views and contains the largest amount of data The proxy Content server used for the published website by contrast only needs the Production view of the WCM objects When accessing WCM objects the data storage view used must be specified For this purpose the type constants in the Website interface are used Table 5 3 shows which object statuses are available in the different views Table 5 3 Visible statuses of WCM objects in the data storage views Vi
202. the WCM objects for an overview of the standard metadata refer to the Javadoc on the Obj ectData interface see also Editing object data the ObjectData interface on page 76 These filters extend the abstract AttributeFilter class filters that logically link existing filters and thus allow the construction of complex queries A difference is made between filters with one argument and filters with two arguments parent class UnaryFilter or BinaryFilter The following filter classes belong to this category NotFilter AndFilter OrFilter Note It is not possible to use a filter which considers both the object position in the topic structure and the assigned template such as topic 1 and template 123 filters that execute a predefined search function RootTemplateFilter SubtreeFilter and PrincipalFilter 84 Livelink WCM Server WM090700 PJA EN 1 5 6 Searching WCM objects Figure 5 4 Class diagram Filter classes and interfaces 5 6 1 Attribute filters Livelink WCM Server manages the data of a website including the content and the metadata in a database For the search a query suited for the respective database system a SQL statement in the form SELECT FROM WHERE ORDER BY is formulated on the basis of the filter object There are however limitations regarding the use of attributes for formulating SQL statements For this reason not all attributes can be used for searching
203. the remote API Figure 2 4 Implementation on the basis of the remote API 2 3 1 Basic components of the remote API Note For using the remote API you must first activate the remote API functionality for the desired server in the Admin client For more information refer to Livelink WCM Server Administrator Manual WM AGD In order to provide the remote API two interfaces were introduced in the WCM Java API Runtime The interface de gauss vip api Runtime This interface provides almost the same interface methods as VipRuntime For detailed information refer to the Javadoc The Runtime interface constitutes the basis for the other interfaces RemoteRuntime The interface de gauss vip api RemoteRuntime This interface extends the interface Runtime interface and offers functions for establishing a connection to a server This interface can be seen as the counterpart of the VipRuntime interface of the WCM Java API Most interfaces of the WCM Java API that can be requested via VipRuntime are also available via RemoteRuntime Exceptions are the interfaces of the following packages de gauss vip api wfm de gauss vip api pool de gauss vip api mail The RemoteRuntime interface is requested via the getRuntime method of the VipRuntime interface public RemoteRuntime getRuntime String host String server int port Three parameters must be supplied WM090700 PJA EN 1 Programming Guide for the WCM Java API 19 Chapt
204. tion 150 Livelink WCM Server WM090700 PJA EN 1 8 6 Multi language websites System out printin loc MailHandler mh VipRuntime getMailHandler EMailData emd mh createEMailData User translator User editorsLanguagesM get loc String emailRec translator getEMailAddress emd setSubject translation job for object with oid oid toString emd setBody the attached content must be translated into loc getLocale getDisplayLanguage emd addRecipient emailRec emd addAttachment content content for Object oid toString ot getMimeType try mh sendEMail loginCidM emd catch VipApiException vaex System out printin could not send email to editor emailRec vaex printStackTrace WM090700 PJA EN 1 Programming Guide for the WCM Java API 151 Glossary Access control list For each WCM object users groups roles and group roles that have access to this object can be specified The individual access rights are specified separately for each principal authorized to access the object Also called ACL Action Step required to manage website objects It generally results in a change in status of the object in question Activity Workflow step to which a principal user group or role is assigned An activity step represents the tasks of the assigned principal There are three types of activities Edit QA and Delete Agent See Serv
205. tion Microsoft and Microsoft SQL are either registered trademarks or trademarks of Microsoft Corporation in the United States and or other countries Oracle is a registered trademark of Oracle Corporation Netscape and the Netscape N and Ship s Wheel logos are registered trademarks of Netscape Communications Corporation in the U S and other countries Contacting Us Open Text Corporation Corporate Headquarter 275 Frank Tompa Drive Waterloo Ontario Canada N2L 0A1 1 519 888 7111 If you subscribe to our Customer Assistance Program or would like more information about the support program write to Open Text Corporation s Customer Support at support opentext com or telephone 1 800 540 7292 or 1 519 888 9933 Our support hours are Monday through Friday 8 30 a m to 8 p m EST If you have comments or suggestions regarding this documentation write to the Open Text Corporation Publications Group at documentation opentext com For more information about Open Text Corporation s products and services visit our home page at http www opentext com 2007 Gauss Interprise AG a member of the Open Text Corporation Group This document and the related software are property of Gauss Interprise AG or its suppliers and are protected by copyright and other laws They are distributed under licenses restricting their use copying distribution and decompilation Neither receipt nor possession of this document confers or transfers any rig
206. tion amp Servers Parameters interval starttime unit WebsiteExport E Websitelmport O Figure 2 3 Managing server agents in the Admin client Each server agent must implement the ServerAgent interface package de gauss vip api The agent always requires a constructor declared as public This constructor must expect either e a parameter of type java util Properties or e a parameter of type de gauss vip config PropertyMap The de gauss vip config PropertyMap interface is described in the Javadoc on the WCM Java API 14 Livelink WCM Server WM090700 PJA EN 1 2 2 Server agents If the parameters are not organized in a flat structure but in a hierarchy of nodes you must use an argument of type de gauss vip config PropertyMap The constructor should not perform any time consuming tasks Otherwise it would block the calling server thread When the agent object is created the respective constructor is called with the properties set in the configuration The method getProperty or getPropertyValue reads the properties The settings of an agent also contain the Java class of the agent which must be accessible via the class path gt Example 2 1 Agent with hierarchical arguments The following figure shows the configuration of an agent whose arguments are summarized in nodes Ay Configuration Name Value v H Pools password pass Custom connection types i
207. tly in the same way as it is used in the code The message files are located in the following subdirectories of the WCM installation directory config resource e admin config resource e contentminer config resource When using an application server the message files are also located in the following directories lt WCM installation directory gt admin web WEB INF classes config resource e lt web application directory gt WEB INF classes config resource The file names have the following format lt className gt _ lt langCode gt properties 26 Livelink WCM Server WM090700 PJA EN 1 2 7 Pool management 2 7 The language code lt langCode gt in the file names of the message files complies with ISO 639 a list of language codes according to ISO 639 can be found at http www w3 org WAI ER IG ert iso639 htm The file for user defined messages in English thus has the following name UserMessage_en properties To make the localized messages available on the different servers of the WCM system the respective configuration files must be copied to the server s directories provided for this purpose gt Example 2 9 The code contains the following language independent key for a simple welcome text USER_WELCOME This message has two arguments 0 and 1 For both arguments the toString method is called In the UserMessage_en properties properties file the English
208. to the pool by means of the freeConnection method If the connection is not returned it is regarded as open even if it is not used Thus it cannot be used for other actions The PoolManager interface is accessed via VipRuntime getPoolManager Procedure for setting up custom connections When developing an agent that is to establish a custom connection to a third party system proceed as follows 1 Create a class for the connection derived from the basic class PoolConnection Program the methods close isValid execute and customOpen according to the requirements of the third party system If for example a port is required for establishing the connection to the third party system this value can be supplied in the method customOpen If you want to make it possible to request a report for the user defined pool via the Admin client or the SystemHand1ler interface the getReport method must additionally be implemented see Reports for custom connections on page 29 28 Livelink WCM Server WM090700 PJA EN 1 2 7 Pool management 2 Inthe Admin client create a custom connection type for connections to the third party system As Class name enter the name of the connection class that you have derived from the basic class PoolConnection Depending on the third party system additional parameters may have to be defined 3 Create a new pool on the basis of this connection type This pool contains the connections to the
209. to website functional area is also required Includes the right Access to user administration Change assignment to website functional area MODIFY_PRINCIPAL_ ASSIGNMENT Change the assignments of users groups and roles to websites and functional areas Includes the right Access to user administration Create modify delete principal CREATE_MODIFY_ REMOVE_PRINCIPAL Add edit and delete users groups and roles as well as configure existing principals from an LDAP directory service as WCM principals Includes the rights Change principal Access to user administration Change assignment to website functional area Change administration rights SET_ADMIN_ACL Edit the administration rights of principals Includes the right Access to user administration Access to configuration CONF 1G_MANAGEMENT_ ACCESS Read access to the configuration of Livelink WCM Server In the Admin client the Configuration view is only displayed if the user has this right Change configuration entry MODIFY_CONFIG_ENTRY Edit items in the Configuration view of the Admin client including assignments between the items e g assignment of proxy Content servers to websites Includes the right Access to configuration WM090700 PJA EN 1 Programming Guide for the WCM Java API 41 Chapter 3 User administration Right Constant Possible actions Create modify delete config
210. uration entry CREATE_MODIFY_REMOVE CONFIG_ENTRY Add edit and delete items in the Configuration view of the Admin client e g websites or deployment systems Includes the rights Change configuration entry and Access to configuration Access to system administration SYSTEM_MANAGEMENT_ ACCESS Read access to system administration and system overview In the Admin client the System administration and System overview views are only displayed if the user has this right Change system status CHANGE_SYSTEM_ STATE Log out users change run levels of servers and websites abort actions in progress on a server and use the commands in the Tools menu of the Admin client Includes the right Access to system administration Website administration WEBSITE_ ADMINISTRATION Admin client manage object types attribute sets and object categories configure converters change website run levels Content client manage object types attribute sets and object categories For working in the views Configuration and System administration of the Admin client the rights Access to configuration and Access to system administration must also be granted Use the getAdminPermissions method of the User Group or Role interface to read the administration rights of a principal The returned list contains the constants of the VipAdminPermission interface representing the administration rights of the princi
211. utes of a WCM object can be retrieved by means of the getStandardAttributes method of the AttributeHandler interface To read the definition of standard attributes use the getStandardAttributeDefinition method In addition to the standard attributes WCM objects can be assigned attributes from attribute sets The precondition is that the underlying object type is associated with WM090700 PJA EN 1 Programming Guide for the WCM Java API 81 Chapter 5 Object management 5 5 2 5 5 3 an attribute set This association is created in the Admin client see Livelink WCM Server Administrator Manual WM AGD Please note that attribute sets can be used only in connection with the object type Every WCM object of the HTML type for example can have properties that are only relevant to HTML documents To determine the attribute set of an object type use the getAttributeSet method of the Obj ectType interface Object categories An object category is also a named set of attribute definitions The term attribute set is not used in this case however because object categories are used in another context An object category can be assigned to every WCM object in a website In contrast to the attribute set this assignment has nothing to do with the object type of the WCM object There may be an Invoice object category for example that defines typical properties of an invoice as attributes e g invoice state These attributes can have a valu
212. vidual classes via class specific filters The SystemHandler interface provides access to server logs server reports and tracing functions 6 4 1 Server logs The logs of the servers are stored in the directories log log deployment and log contentminer of the WCM installation directory on the computer hosting the respective server The individual logs can be viewed via the Admin client see Livelink WCM Server Administrator Manual WM AGD The logs can also be accessed via the WCM Java API The SystemHandler interface provides methods for this purpose By means of the method public List WM090700 PJA EN 1 Programming Guide for the WCM Java API 109 Chapter 6 System information and administration 6 4 2 getLogFiles for example you get a list of the log files belonging to a specified server The content of an individual log file can be retrieved by means of the method public String getLogFile by specifying the file name and the server gt Example 6 7 Retrieving server logs The following example first retrieves a list with the names of the log files and then calls the content of the individual log files get SystemHandler SystemHandler sysHandler VipRuntime getSystemHandler load list with log file names of the current server Server currentServer VipRuntime getCurrentServer List logFiles sysHandler getLogFiles cid currentServer iterate through the result Iterator logFileIter logFi
213. was specified for the agent in the Admin client and saves them in the respective variables of the agent From the file UserMessage_ lt language code gt properties which is located in the directory lt WCM installation directory gt config resource the text is read that is to be written to the log of the object after the metadata change key KEYWORD_AGENT_MESSAGE Also an instance of the StringAnalyzer class is created which will later be used for analyzing and if necessary changing the metadata Keywords Description and Target group Configuration parameters websites list of the names of the websites to be monitored separated by semicolons The parameter is of type String username and password user ID and password of a user with read and write permissions for all monitored websites Both parameters are of type String public class KeywordAnalyzerAgent extends ExampleAgent implements ServerAgent EventListener 142 Livelink WCM Server WM090700 PJA EN 1 8 5 Converting special characters public KeywordAnalyzerAgent Properties properties super company example KEYWORDAGENT_DESC 1 1 8 2 String w String properties get websites if w null StringTokenizer websiteNames new StringTokenizer w 5 false websitesM new HashSet while websiteNames hasMoreElements String wsName websiteNames nextToken websitesM add wsName set user ID and password
214. websites of the current Content server use the method VipRuntime getCurrentServer getWebsiteNames 5 8 1 A workflow definition consists of activities and transitions which implement the Entity interface This ensures a clear assignment of the workflow elements Elements of a workflow definition Activities The individual activities of a workflow are represented by the Activity interface This interface extends the Entity interface The activity type represents the staging of Livelink WCM Server The following types of activities exist Table 5 8 Activity types Activity type Value Description Removes the work flow Activity START Start Start activity of the work flow corresponds to the assignment of the work flow object to the WCM ob ject Activity EDIT Edit Corresponds to the object status changed or rejected Activity QA QA Corresponds to the object status submitted Activity DELETE Delete Corresponds to the object status deleted Activity DESTROY Destroy Corresponds to destroying Y the object Activity RELEASE Release Corresponds to the object Y status released Activity STOP Stop Corresponds to removing a the assignment between workflow object and WCM object Transitions A targeted transition between two workflow activities is represented by the Transition interface This interface extends the Entity interface In addition to the name and the description of the transition via the
215. yment 105 progress control 72 Transition 157 Transition interface 91 translation error messages 25 messages 26 tree operations 68 TYPE_NAME search attribute 88 Typography 8 U undoCheckOut method 68 unreserve Enterprise Server item 123 URL of the page 104 user administration 31 user authentication 90 user context 74 USER_LOGIN event 53 USER_LOGOUT event 54 UserMessage class 26 users 32 add 33 delete 37 edit assignments 46 edit rights 40 profile 34 retrieve logged in 100 search 35 V Value interface 83 version read of a WCM object 78 views on data storage constants 62 VipAdminPermission example 42 VipAdminPermission interface 40 VipApiException 25 VipObjectPermission constants 43 example 43 VipObjectPermission interface 89 43 Ww WCM object edit 59 events after actions 52 find filter 84 166 Livelink WCM Server WM090700 PJA EN 1 Index WCM system events 109 Website interface 102 WEBSITE_DELETED event 54 WEBSITE_NEW event 54 websites assign to principal 46 information 102 set runlevel 109 wording 9 workflow activity 91 assign 92 forward object 92 remove assignment 92 transition 91 Workflow interface 90 workflow definition 64 Workflow definition 157 WorkflowHandler interface 90 WM090700 PJA EN 1 Programming Guide for the WCM Java API 167
216. ype 155 object types 65 OBJECT_ACL_CHANGED event 53 OBJECT_CHECKED_IN event 53 OBJECT_CHECKED_OUT event 53 OBJECT_CHECKOUT_UNDONE event 53 OBJECT_CONTENT_SYNCHRONIZED event 53 OBJECT_CREATED event 53 OBJECT_DELETED event 53 OBJECT_DESTROYED event 53 OBJECT_EXPIRED event 53 OBJECT_METADATA_CHANGED event 53 OBJECT_REJECTED_TO_EDIT event 53 OBJECT_SUBMIT_AT_TO_PRODUCTION event 53 OBJECT_SUBMITTED_TO_PRODUCTION event 53 OBJECT_SUBMITTED_TO_QA event 53 OBJECT_TRANSACTION_END event 53 OBJECT_WORKFLOW_ASSIGNED event 53 OBJECT_WORKFLOW_FORWARDED event 53 OBJECT_WORKFLOW_REMOVED event 53 ObjectData interface 84 ObjectHandler class 76 ObjectHandler interface 67 Objectid class 78 ObjectLoader interface 80 ObjectState interface 60 ObjectType interface 65 old version restore 68 Open Text Online 9 order analysis deployment 106 overview of documentation 7 P page delete 68 information 104 regenerate 68 remove 68 path of the page 104 pool management 27 PoolConnection 28 PooManager interface 27 preparation events 56 Prepare event 155 PREPARE_ASSIGN_WORKFLOW event 56 PREPARE_CHECKIN_OBJECT event 56 PREPARE_CHECKOUT_OBJECT event 56 PREPARE_CREATE_OBJECT event 56 PREPARE_DELETE_OBJECT event 56 PREPARE_DESTROY_OBJECT event 56 PREPARE_FILE_CHANGED event 58 PREPARE_FORWARD_WORKFLOW event 56 PREPARE_OBJECT_CHANGE_METADATA event 56 PREPARE_REJECT_OBJECT_TO_E
217. ystem out printin objecttype imageurl imageurl mimetype mimetype lt a The content of relators is stored in the Enterprise Server database Nevertheless it can be edited via the WCM Java API just like the content of other WCM objects see Editing content on page 79 In order to decide whether the content can be changed and how to analyze it the relator s deployment object type is used gt Example 7 29 Retrieving the content of a relator The following code sample reads the content of the relator and copies it to a new file ContextId cid ObjectHandler oh ObjectId relatorOID new ObjectiId 123 checkout oh checkOut cid relatorOID test relator get content ObjectData od oh get cid relatorOID File outputFile od getCheckOutContent cid intranet_edit null 128 Livelink WCM Server WM090700 PJA EN 1 7 3 Relators modify content check in oh checkIn cid relatorOID outputFile test relator 7 3 5 Deleting relators Relators are WCM objects For this reason they can be deleted via the ObjectHandler interface Note In the connection properties of a relator you can determine whether the referenced Enterprise Server item is to be deleted when the relator is deleted To set this property use the setLiable method of the External0bjectRelator class If this method is not called the Enterprise Server item will not be deleted by default Example

Download Pdf Manuals

image

Related Search

Related Contents

Consignes d`installation 7184.101 Série TIME SQUARE™  和文取扱説明書(PDF、680 KB)  Untitled - Filmtechniek  PlayNetwork Media Player Installation & User Manual  Supermicro Pentium® D Board PDSLA Motherboard  724*取扱説明書  Cambridge Audio 640Hazur User's Manual  

Copyright © All rights reserved.
Failed to retrieve file