Presentation is loading. Please wait.

Presentation is loading. Please wait.

FROM TITLE MASTER: [Insert Directory Location] [Insert File Name] [Insert Revision Date] Documentum Lifecycles Using Lifecycles To Trigger External Events.

Similar presentations


Presentation on theme: "FROM TITLE MASTER: [Insert Directory Location] [Insert File Name] [Insert Revision Date] Documentum Lifecycles Using Lifecycles To Trigger External Events."— Presentation transcript:

1 FROM TITLE MASTER: [Insert Directory Location] [Insert File Name] [Insert Revision Date] Documentum Lifecycles Using Lifecycles To Trigger External Events

2 2 Introduction Robert Harper / Anheuser – Busch Training and Development Group

3 3 Introduction – Our Agenda External Application Server Downloads a file from Documentum Manipulates the file Places the new file in Documentum External Web Server Makes selected Documentum content available via the web.

4 4 Introduction – Our Agenda Gathering The Pieces Lifecycles Lifecycle Procedures AutoRender Pro As Model For The External Server Putting The Pieces Together

5 5 Our Agenda Gathering The Pieces Lifecycles Lifecycle Procedures AutoRender Pro As Model For The External Server Putting The Pieces Together

6 6 Lifecycles – What They Are

7 7 The Publishing Lifecycle

8 8 Publishing Lifecycle - The REVIEW State

9 9 Our Agenda Gathering The Pieces Lifecycles Lifecycle Procedures AutoRender Pro As Model For The External Server Putting The Pieces Together

10 10 The Lifecycle Procedures

11 11 The EntryRequirements Procedure

12 12 The StateAction Procedure

13 13 The PostProc Procedure

14 14 Our Agenda Gathering The Pieces Lifecycles Lifecycle Procedures AutoRender Pro As Model For The External Server Putting The Pieces Together

15 15 Documentum AutoRender Pro

16 16 AutoRender Pro

17 17 AutoRender Pro

18 18 AutoRender Pro - Queues And User Accounts

19 19 AutoRender Pro - Requesting A PDF Rendition

20 20 AutoRender Pro - Requesting A PDF Rendition 'dm_rendPDF_autoact.ebs -- This script extracts the 'attached objects from a work item and calls the 'appropriate method to generate a PDF rendition for 'it. queueID = dmAPIGet("queue,c," & docID &_ ",dm_autorender_win31,rendition, 0,F" &_ ",,rendition_req_ps_pdf")

21 21 AutoRender Pro - Requesting A PDF Rendition TRACE: Rendering PS_PDF request Start Time: 2/22/ :30:18 PM | Processing: Course Catalog Issue | Docbase = MyDocbase // Queue = dm_autorender_win31 // Sent By = dmadmin TRACE: MoveFile from file: C:\Documents and Settings\Administrator\dmcl\ \abtdgdev003\ \Course Catalog Issue.doc To file: c:\dmautop\temp\Course Catalog Issue.doc TRACE: Generating OLE automation: ARPGENERIC.WORDDOC | TRACE: Attempting to perform rendering via plugin: ARPGENERIC.WORDDOC Word Render, Maximum wait interval is 10 seconds

22 22 AutoRender Pro - Requesting A PDF Rendition | Generating PS from Word (OLE) | TRACE: Checking for file: C:\DISTASST.PS | TRACE: File C:\DISTASST.PS is ok to open....continue | TRACE: MoveFile from file: C:\DISTASST.PS To file: c:\dmautop\temp\7.PS | TRACE: Checking for file: c:\dmautop\temp\7.LOG | TRACE: Checking for file: c:\dmautop\temp\7.PDF | TRACE: File c:\dmautop\temp\7.LOG is ok to open....continue | TRACE: Checking for file: c:\dmautop\temp\7.LOG | TRACE: File c:\dmautop\temp\7.LOG is ok to open....continue

23 23 AutoRender Pro - Requesting A PDF Rendition | | TRACE: Checking for file: c:\dmautop\temp\7.PDF | TRACE: File c:\dmautop\temp\7.PDF is ok to open....continue | TRACE: Generating PDT | TRACE: Created AcroExch.app object | TRACE: Created AcroExch.AVDoc object | TRACE: PDF Text Render, Maximum wait interval is 10 seconds | TRACE: PDF not linearized....optimizing | TRACE: Setting pdf attributes | TRACE: ResetExitTimer | PDF rendition created

24 24 AutoRender Pro - Requesting A PDF Rendition

25 25 AutoRender Pro - Requesting A PDF Rendition Here we find the PDF request # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 45 rpc) API> execquery,s0,T,select stamp,message,content_type,item_id,item_name,sent_by, date_sent, router_id from dm_queue where name = 'dm_autorender_win31' and message = 'rendition_req_ps_pdf' order by date_sent # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 45 rpc) Server RPC: EXEC ( ) select stamp,message,content_type,item_id,item_name,sent_by, date_sent, router_id from dm_queue where name = 'dm_autorender_win31' and message = 'rendition_req_ps_pdf' order by date_sent # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 46 rpc) Res: 'OK' # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 46 rpc) API> getlastcoll,s0 # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 46 rpc) Res: 'q0' # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 46 rpc) API> next,s0,q0 # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 46 rpc) Server RPC: MultiNext (5) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 47 rpc) Res: 'OK'

26 26 AutoRender Pro - Requesting A PDF Rendition # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 50 rpc) Res: 'Craycroft, Aaron' # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 50 rpc) API> close,s0,q0 # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 50 rpc) Server RPC: Close (5) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 51 rpc) Res: 'OK' We've got the job, so now we dequeue it # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 51 rpc) API> dequeue,s0,1b a5af # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 51 rpc) Server RPC: InboxItemDelete (1b a5af) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 52 rpc) Res: 'OK' # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 52 rpc) API> fetch,s0, # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 52 rpc) Server RPC: IsCurrent ( )

27 27 AutoRender Pro - Requesting A PDF Rendition get,s0, ,a_compound_architecture # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 64 rpc) Res: '' So we now we finally go and get the Word document. # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 64 rpc) API> getfile,s0, ,,msw8 # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 64 rpc) Server RPC: IsCurrent ( ab2) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 65 rpc) Server RPC: FetchType (dm_format) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 66 rpc) Server RPC: OBJECT_FROM_CACHE

28 28 AutoRender Pro - Requesting A PDF Rendition # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 70 rpc) Server RPC: BEGIN_TRANS ( ) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 71 rpc) Res: 'OK' And we put the rendition back up on the server # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 71 rpc) API> addrendition,s0, ,c:\dmautop\temp\3.PDF,pdf,,,T # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 71 rpc) Server RPC: ID_FROM_CACHE ( ) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 72 rpc) Server RPC: OBJECT_FROM_CACHE ( d) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 73 rpc) Server RPC: FetchType (dm_store) # [ 1256 ] Wed Feb 18 09:24: ( sec) ( 74 rpc) Server RPC: ID_FROM_CACHE

29 29 What We Know We know that lifecycles allow us to define different lifecycle states for our documents. We know that the EntryRequirements, StateAction and PostProc procedures allow us to spell out what happens at each of those lifecycle states. We know how to create a queue in our Docbase in which to place action requests. We know how to place a job request in that queue. We know how to build an external server that can: Communicate with the Docbase. Check a queue for job requests. Copy files out of Documentum on to a local hard drive. Place files back in the Docbase

30 30 Our Agenda Gathering The Pieces Putting The Pieces Together (REVIEW STATE) Creating the User Accounts and Queue Creating the Lifecycle Procedures Creating the Lifecycle Building The External Server

31 31 The Publishing Lifecycle – The Review State

32 32 The Publishing Lifecycle – The Review State

33 33 The Publishing Lifecycle – The Review State

34 34 The Publishing Lifecycle – The Review State

35 35 The Publishing Lifecycle – The Review State

36 36 The Publishing Lifecycle – The Review State

37 37 Our Agenda Gathering The Pieces Putting The Pieces Together (REVIEW STATE) Creating the User Accounts and Queue Creating the Lifecycle Procedures Creating the Lifecycle Building The External Server

38 38 Creating The Queue # execquery,c,T,CREATE dm_user OBJECTS SET user_name = 'xy_publish_win2000', SET user_os_name = 'xy_publish_win2000', SET home_docbase= 'XYDOCBASE', SET user_address = 'xy_publish_win2000', SET client_capability = 8, (8 = System Administrator) SET user_privileges = 8, (8 = Sysadmin) SET description = 'XY Publishing Account' close,c,q0 #

39 39 Creating The User Account execquery,c,T,CREATE dm_user OBJECTS SET user_name = 'xy_communicate', SET user_os_name ='dmacct123', SET user_address = dmacct123, SET home_docbase='MyDocbase', SET default_folder = 'xy_communicate', SET user_group_name = 'xy_creators', SET client_capability = 4, SET description = 'Our Publishing Account' close,c,q0

40 40 Our Agenda Gathering The Pieces Putting The Pieces Together (REVIEW STATE) Creating the User Accounts and Queue Creating the Lifecycle Procedures Creating the Lifecycle Building The External Server

41 41 Creating The Procedures # First we create the entryrequirements procedure object create,c,dm_procedure set,c,l,object_name entryrequirements # And place it in the System/Procedures folder link,c,l,/System/Procedures # Next, we insert the code for the procedure from a text file setfile,c,l,entryrequirements.txt,text # And now we save it to the docbase save,c,l # Now we create our stateaction procedure object create,c,dm_procedure set,c,l,object_name stateaction # And place it in the System/Procedures folder link,c,l,/System/Procedures # Next, we insert the code for the procedure from a text file setfile,c,l,stateaction.txt,text # And now we save it to the docbase save,c,l # And finally we create our postprocessing procedure object create,c,dm_procedure set,c,l,object_name postproc # And place it in the System/Procedures folder link,c,l,/System/Procedures # Next, we insert the code for the procedure from a text file setfile,c,l,postproc.txt,text # And now we save it to the docbase save,c,l

42 42 Creating The Lifecycle Procedures 'EntryCriteria Function ' Const REMOVE_ALL_VALUES As Integer = -1 Const ADD_TO_END As Integer = -2 ' Public Function EntryCriteria _ (ByVal SessionId As String, _ ByVal ObjectId As String, _ ByVal UserName As String, _ ByVal TargetState As String, _ ByRef ErrorStack As String) As Boolean EntryCriteria = False sttus$ = dmAPISet("set," & SessionId & "," & ObjectId & ",title", "DRAFT") mssg$ = dmAPIGet("getmessage," & SessionId & ",3") If (mssg <> "") Then ErrorStack = mssg Else EntryCriteria = True End If End Function

43 43 Putting The PDF Request In Queue 'Send a queue item to request that a 'composite PDF be created ErrorStack = "Send request for PDF Rendition" rcs$ = dmAPIGet("queue," & SessionID & "," & ObjectID & ",xy_publish_win2000, CompositePDF,1,nulldate,null")

44 44 Our Agenda Gathering The Pieces Putting The Pieces Together (REVIEW STATE) Creating the User Accounts and Queue Creating the Lifecycle Procedures Creating the Lifecycle Building The External Server

45 45 Creating The Lifecycle

46 46 The Lifecycle

47 47 Configuring The Lifecycle States

48 48 Associating States With Procedures

49 49 Our Agenda Gathering The Pieces Putting The Pieces Together (REVIEW STATE) Creating the User Accounts and Queue Creating the Lifecycle Procedures Creating the Lifecycle Building The External Server

50 50 The Documentum Developer Site

51 51 The Login Form

52 52 The Main Application

53 53 The Main Application

54 54 AppendPDF Pro

55 55 Main Application Functions

56 56 Our Agenda Gathering The Pieces Putting The Pieces Together (APPROVED STATE) Building The Infrastructure Selecting The Documents To Publish Creating the URLs

57 57 Our Agenda Gathering The Pieces Putting The Pieces Together (APPROVED STATE) Building The Infrastructure Selecting The Documents To Publish Creating the URLs

58 58 Infrastructure – The APPROVED State

59 59 Our Agenda Gathering The Pieces Putting The Pieces Together (APPROVED STATE) Building The Infrastructure Selecting The Documents To Publish Creating the URLs

60 60 Publishing Lifecycle – The APPROVED State SELECT DISTINCT b.My_TrainingDoc DOC_NAME, a.r_object_id DOC_ID, a.title, a.object_name, c. My_TrainingDoc AB_STSNUM, a.cpe_location AB_LOCATION, FROM dmadmin.dm_sysobject_s a, dmadmin. My_TrainingDoc _s b, dmadmin. My_TrainingDoc _r c, dmadmin.dm_sysobject_r d WHERE a.r_object_id = b.r_object_id AND b.r_object_id = c.r_object_id AND c.r_object_id AND a.i_cabinet_id = '0c ' AND a.r_current_state > 1 AND a.r_current_state < 5 AND c.Course_ID = Number'

61 61 Our Agenda Gathering The Pieces Putting The Pieces Together (APPROVED STATE) Building The Infrastructure Selecting The Documents To Publish Creating the URLs

62 62 Publishing Lifecycle – The APPROVED State


Download ppt "FROM TITLE MASTER: [Insert Directory Location] [Insert File Name] [Insert Revision Date] Documentum Lifecycles Using Lifecycles To Trigger External Events."

Similar presentations


Ads by Google