home *** CD-ROM | disk | FTP | other *** search
/ Computerworld: Vánoce 97 / Computerworld_1997-12_cd.bin / rocenka / notes4wm / data / approve4.ntf (.txt) next >
Encoding:
Lotus Notes Storage Facility  |  1996-04-05  |  290.5 KB  |  2,397 lines

  1. Approval Cycle (R4)
  2. #1StdR4Approval
  3. CN=Ann Innis/O=Iris
  4. 19zS+
  5. VoE!    
  6. 5i4XM
  7. Z||,}
  8. La03[
  9. Lotus Notes
  10. CN=Catherine Duffy/OU=NAHQ/O=LotusCN=Catherine Duffy/O=IrisLotus NotesCN=Catherine Duffy/O=IrisLotus Notes
  11. ##########################
  12. 5i4XM
  13. $Modified
  14.     1S2S3S
  15. $TITLE$FormPrivs$FormUsers$Body$Flags$Class$Modified$Comment$AssistTrigger$AssistType$AssistFlags$UpdatedBy$$FormScript_O
  16.     0SL1S3724
  17. $TITLE
  18. CN=Catherine Duffy/O=Iris
  19. ##########################
  20. EnterCommentsEnterComments
  21. Lotus NotesCDd_ApprComment############################
  22. Application Profiles|ApplicationProfiles
  23. CN=Catherine Duffy/O=Irisd
  24. WorkflowObject$Conflict$REF
  25. ApplicationProfile
  26.     L1S2S3S1
  27. WorkflowObject
  28. WorkflowObjectApproval Form Name&
  29. Used for lookups and creation of profile docsY#######################
  30. All Requests|All
  31. Debbie Branco
  32. RequesterNameRequestDateWorkflowObjectStatusNextApprover$Conflict$REF
  33. ApplicationProfile
  34.     L1S2S3S1a
  35. RequesterNameRequestDateWorkflowObjectStatusNextApprover
  36. RequesterName
  37. RequesterName
  38. RequestDate
  39. RequestDate
  40. WorkflowObject
  41. WorkflowObject
  42. Status
  43. Status
  44. NextApprover
  45. NextApprover
  46. @RequesterNameRequesterRequestDateDateWorkflowObjectRequest TypeStatusStatusNextApproverNext Approver&
  47. This lists all requests - the columns can be sorted on the flyY####################################################
  48. Z||,}
  49. wwwwww
  50. wwwww
  51. Paul DiCristinaCN=Catherine Duffy/O=Iris############################################
  52. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  53. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  54. Lotus Notes
  55. LV<A-
  56. PURSAF
  57. Lotus Notes
  58. LV<A-
  59. PURSAF
  60. Notes Product Development
  61. )I^-.
  62. PURSAF
  63. Qr8@=x
  64. $ACLDigest
  65.  EnterComments'++LotusScript Development Environment:2:5:(Options):0:66
  66. '++LotusScript Development Environment:2:5:(Forward):0:1
  67. Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  68. '++LotusScript Development Environment:2:5:(Declarations):0:2
  69. '++LotusScript Development Environment:2:2:BindEvents:1:129
  70. Private Sub BindEvents(Byval Objectname_ As String)
  71.      Static Source As NOTESUIDOCUMENT
  72.      Set Source = Bind(Objectname_)
  73.      On Event Queryopen From Source Call Queryopen
  74. End Sub
  75. '++LotusScript Development Environment:2:2:Queryopen:1:12
  76. Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  77.      
  78.      
  79. End Sub
  80. FlowControl
  81.     1S2S
  82. Enter any comments below:
  83. d_ApprComment
  84.  @  @@ @` @
  85. @@ @@@@@`@@
  86. `@ `@@`@``@
  87. FlowControl
  88.     1S2S
  89. Categori_ze
  90. _Edit Document
  91. Send Docu_ment
  92. _Forward
  93. _Move to Folder...
  94. _Remove from Folder
  95. Create Application Profile6
  96. Application Profile
  97.     9S11S12S13S14S
  98. Categori_ze
  99. _Edit Document
  100. Send Docu_ment
  101. _Forward
  102. _Move to Folder...
  103. _Remove from Folder...
  104. Instructions 
  105.     0S0E
  106.     9S11S12S13S14S
  107. Categori_ze
  108. _Edit Document
  109. Send Docu_ment
  110. _Forward
  111. Create New Request
  112. tList
  113. ApplicationProfiles
  114.     1S2S6S8S10S
  115. tList
  116. Error
  117. An error has occured.  Please try again.
  118. tList
  119.     0R1S2S9S15S17S21S
  120. DocType
  121. New Request
  122. Choose one of the following:
  123.     0RR1S2S3S7S9S11S15S18S
  124. DocType
  125.     0RR4S
  126. _Move to Folder...
  127. _Remove from Folder...
  128. Instructions 
  129.     0S0E
  130. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  131. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  132. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  133. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  134. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  135. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  136. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  137. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  138. CN=Catherine Duffy/OU=NAHQ/O=Lotus#
  139. ApprovalComment
  140. DisplayCommentsDisplayComments
  141. Lotus NotesCD##############################
  142. Debbie Branco#########################################################
  143. Debbie Branco#
  144. Process Past Due Approvals
  145. Sends e-mail when approval date has passed.1
  146. Lotus NotesSfL3
  147. #######################################################
  148. La03[
  149. Application ProfileApplicationProfile
  150. Lotus NotesC
  151. StatusListFinalDestinationDbPromptTitleFormAdminCommentsAllowedEditableListMaximumApproversNotificationMethodRoutingMethodWorkflowObject###############
  152. 19zS+
  153. (ApproverInfo)(ApproverInfo)
  154. Lotus NotesCD
  155. tmpLateActiontmpSourcetmpFunctiontmpNametmpWin###########################
  156. (ApproverRetrievalInfo)(ApproverRetrievalInfo)
  157. Lotus NotesCD
  158. tmpRetrievalKeytmpListElementtmpSourceServertmpSourceViewtmpSourcePathtmpSourceField#################
  159. ##########################################################
  160. ##########################################################
  161. ##########################################################
  162. ##########################################################
  163.  DisplayComments'++LotusScript Development Environment:2:5:(Options):0:66
  164. '++LotusScript Development Environment:2:5:(Forward):0:1
  165. Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  166. '++LotusScript Development Environment:2:5:(Declarations):0:2
  167. '++LotusScript Development Environment:2:2:BindEvents:1:129
  168. Private Sub BindEvents(Byval Objectname_ As String)
  169.      Static Source As NOTESUIDOCUMENT
  170.      Set Source = Bind(Objectname_)
  171.      On Event Queryopen From Source Call Queryopen
  172. End Sub
  173. '++LotusScript Development Environment:2:2:Queryopen:1:12
  174. Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  175.      
  176.      
  177. End Sub
  178. ApprName
  179. ApprName1
  180. ApprStatus
  181. ApprStatus1
  182. ApprStatus1
  183.     3S4S6S8S
  184. ApprDate
  185. ApprDate1
  186. ApprComment
  187. ApprComment1
  188. ApprNamej
  189. ApprName
  190.     6S7S9S15S18S22SApprName2
  191. Status
  192. ApprNamej
  193. ApprStatus
  194.     1S2S8S9S11S17S20S24S
  195. Status
  196. Status
  197.     0R3S4S6S8S
  198. ApprStatus2
  199. ApprStatus2
  200.     3S4S6S8S
  201. ApprStatus2
  202. ApprDate
  203.     3S4S6S8S14S17S
  204. ApprDate2
  205. ApprStatus2
  206. ApprComment
  207.     3S4S6S8S14S17S
  208. ApprComment2
  209. ApprNamej
  210. ApprName
  211.     6S7S9S15S18S22SApprName3
  212. Status
  213. ApprNamej
  214. ApprStatus
  215.     1S2S8S9S11S17S20S24S
  216. Status
  217. Status
  218.     0R3S4S6S8S
  219. ApprStatus3
  220. ApprStatus3
  221.     3S4S6S8S
  222. ApprStatus3
  223. ApprDate
  224.     3S4S6S8S14S17S
  225. ApprDate3
  226. ApprStatus3
  227. ApprComment
  228.     3S4S6S8S14S17S
  229. ApprComment3
  230. ApprNamej
  231. ApprName
  232.     6S7S9S15S18S22SApprName4
  233. Status
  234. ApprNamej
  235. ApprStatus
  236.     1S2S8S9S11S17S20S24S
  237. Status
  238. Status
  239.     0R3S4S6S8S
  240. ApprStatus4
  241. ApprStatus4
  242.     3S4S6S8S
  243. ApprStatus4
  244. ApprDate
  245.     3S4S6S8S14S17S
  246. ApprDate4
  247. ApprStatus4
  248. ApprComment
  249.     3S4S6S8S14S17S
  250. ApprComment4
  251. ApprNamej
  252. ApprName
  253.     6S7S9S15S18S22SApprName5
  254. Status
  255. ApprNamej
  256. ApprStatus
  257.     1S2S8S9S11S17S20S24S
  258. Status
  259. Status
  260.     0R3S4S6S8S
  261. ApprStatus5
  262. ApprStatus5
  263.     3S4S6S8S
  264. ApprStatus5
  265. ApprDate
  266.     3S4S6S8S14S17S
  267. ApprDate5
  268. ApprStatus5
  269. ApprComment
  270.     3S4S6S8S14S17S
  271. ApprComment5
  272. Categori_ze
  273. _Edit Document
  274. Send Docu_ment
  275. _Forward
  276. _Move to Folder...
  277. _Remove from Foldert
  278. Times New Roman
  279. Task List
  280. &Switch To
  281. About Approval Cycle
  282. ___OOO
  283. %12-/H
  284. !G,$W,#I4)X6(H,4W,4G98X<6h*#x+$g9)w8(h.6u-2g<5w<4>B=YA
  285. WC9iB.xC-iF8wH8jT>zR<rd?
  286. 2L3;FK=Dj=C:FQ8Qp<b
  287. GEHXHGLQLZSKEKUVKSGRYYWWgJEvIEiTHyWFfLRwKSgYWwZV[cXtfYPZjl\dWfphhhvigkqlysjhktvlsjtxyww
  288.     What does this database do?
  289.     This database provides an place from which organizations can manage their electronic approvals.  Using the ApprovalLogic subform, a different form can be designed for each type of approval while all approval forms use the same approval logic.  Consequently, when an organization changes its approval policies, only the ApprovalLogic subform will need to be changed, allowing for fast response to changing business needs.
  290.     Who will use this database?
  291.     Designers will derive several benefits from using this database:
  292.     They will not need to rewrite approval logic for each approval form because it is already provided in a subform
  293.     The approval logic provided on the subform is extremely flexible.  Because all approval situations are not identical, the designer will fill out an application profile for each approval form, which tells the ApprovalLogic subform how this particular approval should be processed
  294.     When organizational approval policy changes, the designer does not need to change every form.  Instead they can either edit the application profile documents or if necessary, they can modify the ApprovalLogic subform.
  295.     People who submit or approve electronic forms will benefit from the use of consistant methods.
  296.     When to use this database?
  297.     Use this database whenever you need electronic approval forms.
  298.     Where to find more information?
  299.     More information can be found in the Help Using document.  Click the Instructions button on any view for help.
  300.     Access Control
  301.     Very Important:  
  302.     Access level should be 
  303.     Author
  304.      for all users of this database.  This will prevent unauthorized editing or approval of documents within the database.  The Author fields within the forms govern who will be able to edit/approve requests.  Errors will occur if someone with Editor access attempts to approve a request when they are not an authorized approver of that document.
  305. Times New Roman
  306. Using Approval Cycle
  307. ___OOO
  308. %12-/H
  309. !G,$W,#I4)X6(H,4W,4G98X<6h*#x+$g9)w8(h.6u-2g<5w<4>B=YA
  310. WC9iB.xC-iF8wH8jT>zR<rd?
  311. 2L3;FK=Dj=C:FQ8Qp<b
  312. GEHXHGLQLZSKEKUVKSGRYYWWgJEvIEiTHyWFfLRwKSgYWwZV[cXtfYPZjl\dWfphhhvigkqlysjhktvlsjtxyww
  313.     There are three steps to follow to use this application:  (1) the designer creates one Application Profile document to define each type of approval that the workplace will need;  (2) s/he creates one form for each application profile that has been defined;  (3) the users create approval documents from those forms.
  314. For Designers
  315. Creating Electronic Approval Forms
  316.     1.    Determine the first form that the workplace will need (e.g., Travel Authorization).  
  317.     2.    From the Application Profile view, click the Create Application Profile action.  Fill out the profile completely; it will define how the approval cycle for this form will work.
  318.     Note:
  319.       Do not use 
  320.     @Domain
  321.      when entering approver names.  Any domain added will be stripped off and may cause complications when attempting to route a request. 
  322.     Cursor down to the "Terminology" section.  In the left column, notice terms such as "New", "Open", "Awaiting Approval", "Approved", etc.  If your workplace uses different terminology (such as "Initiated" instead of "New"), replace the term in the right column with the one used by your workplace.  
  323.     Save the new document.
  324.     4.    Choose Create-->Design-->Form.  Add the ApprovalLogic subform.  
  325.     5.    Choose Design-->Form Properties and give the form a name that is the (exact) same name as the type of approval in the Application Profile document (e.g., Travel Authorization).
  326.     6.    In the Form Properties InfoBox, deselect "Include in [Create] Menu." 
  327.     7.    Add the fields you need for your type of approval (for example, a Travel Authorization only includes Travel related information) above or below the approval subform.  You don't need to include any approval logic, since that is covered by the subform you added in step 2.
  328.     8.    In the programmer's pane (the lower pane of the form design window), click on the arrow next to the word Define: 
  329.     and select "(Form)".
  330.       This will provide a box where you can enter a window title.  Enter an appropriate window title (e.g., "Travel Authorization").
  331.     9.    Choose File-->Save to save your new form.  Then choose File-->Close.
  332.     10.    Repeat steps 2 - 9  for each form you need to create.
  333.     To create new requests, see the 
  334.     Users
  335.      section below.
  336. Processing Past Due Approvals
  337.     There is a scheduled agent in this template called "Process Past Due Approvals".  This Agent will send a reminder to the approver if s/he misses the approval deadline.  You must edit the Agent and set it up to run on your server.
  338.     1.    Choose View-->Agents
  339.     2.    Double-click on the Process Past Due Approvals agent
  340.     3.    Click the Schedule button
  341.     4.    Type the name of the server on which the agent should run.
  342. For Users
  343. Creating a Request for Approval
  344.     1.    From the All Requests view or Next Approver view, click Create New Request.
  345.     2.    Select the type of request that you want to create.
  346.     3.    Click OK.
  347.     4.    Fill out the document.  If the application profile was set up to allow the user to edit the approver's name, you will see a button at the top of the document entitled "Edit Approver List".  Click the button and enter an approver's name.  
  348.     Note:  
  349.     Do not use 
  350.     @Domain
  351.      when entering approver names.  Any domain added will be stripped off and may cause complications when attempting to route a request.  Also, only enter Person-names as approvers.  Group names are not supported.
  352.     5.    Click Submit for Approval
  353. Approving or Denying a Request
  354.     1.    Review the document.
  355.     2.    Click Approve or Deny.
  356.     3.    If you are 
  357.     prompted for comments, enter them in the dialog box and click OK.  Notification will be sent to the appropriate person(s). 
  358. Categori_ze
  359. _Edit Document
  360. Send Docu_ment
  361. _Forward
  362. Create New Request"
  363. tList
  364. ApplicationProfiles
  365.     1S2S6S8S10S
  366. tList
  367. Error
  368. An error has occured.  Please try again.
  369. tList
  370.     0R1S2S9S15S17S21S
  371. DocType
  372. New Request
  373. Choose one of the following:
  374.     0R1S2S3S7S9S11S13S
  375. DocType
  376.     0R4S
  377. when syncronous commands work, don't do ENVIRONMENT
  378.     0R1S
  379. @V4Command([Compose]; DocType);
  380.     0R1S
  381. FIELD WorkflowObject := DocType
  382.     0R1S
  383. _Move to Folder...
  384. _Remove from Folder...
  385. Instructions 
  386.     0S0E
  387. '++LotusScript Development Environment:2:5:(Options):0:74
  388. Option Public
  389. '++LotusScript Development Environment:2:5:(Forward):0:1
  390. Declare Sub Initialize
  391. Declare Sub ApproveTheRequest(n)
  392. Declare Sub SetNextApprover(n)
  393. Declare Sub DenyTheRequest(n)
  394. Declare Sub SetDueDate(n)
  395. Declare Sub SendNotification(n)
  396. '++LotusScript Development Environment:2:5:(Declarations):0:10
  397. Dim s As NotesSession
  398. Dim db As NotesDatabase
  399. Dim view As NotesView
  400. Dim note As NotesDocument
  401. Dim maildoc As NotesDocument
  402. Dim item As NotesItem
  403. Dim rtitem As NotesRichTextItem
  404. Dim documents As NotesDocumentCollection
  405. Dim dtToday As NotesDateTime
  406. Dim dtDue As NotesDateTime
  407. Dim dtSet As NotesDateTime
  408. Dim StatusList As Variant
  409. Dim RoutingMethod As Variant
  410. Dim LastApprover As Variant
  411. Dim ApprName As Variant
  412. Dim tmpList() As Variant
  413. Dim MaxApprovers As Variant
  414. Dim DueDate As Variant
  415. Dim LateAction As Variant
  416. Dim ApprStatus As Variant
  417. '++LotusScript Development Environment:2:2:Initialize:1:10
  418. Sub Initialize
  419.      
  420.      Set s = New NotesSession    
  421.      Set db = s.CurrentDatabase
  422.      Set dtToday = New NotesDateTime("today")
  423.      Set dtDue = New NotesDateTime("today")
  424.      Set dtSet = New NotesDateTime("today")
  425.      dtToday.SetNow
  426.      Set documents = db.Search("@Today => @Date(DueDate) & @Member(Status; StatusList) = 3", Nothing, 0)
  427.      
  428.      For d = 1 To documents.Count
  429.           Set note = documents.GetNthDocument(d)
  430.           MaxApprovers = note.MaximumApprovers
  431.           DueDate = note.DueDate
  432.           ApprStatus = note.ApprStatus
  433.           ApprName = note.ApprName
  434.           LateAction = note.LateAction
  435.           StatusList = note.StatusList
  436.           RoutingMethod = note.RoutingMethod
  437.           For n = 0 To Ubound(DueDate)
  438.                dtDue.LocalTime = DueDate(n)
  439.                If dtToday.TimeDifference(dtDue) => 0 And ApprStatus(n) = "None" Then
  440.                     Select Case LateAction(n)
  441.                     Case "Approval"
  442.                          dtSet.SetNow
  443.                          ApproveTheRequest(n)
  444.                          note.Save True, True
  445.                     Case "Denial"
  446.                          DenyTheRequest(n)
  447.                          note.Save True, True
  448.                     Case "Notification"
  449.                          SendNotification(n)
  450.                     End Select
  451.                End If
  452.           Next
  453.      Next      
  454.      
  455.      
  456. End Sub
  457. '++LotusScript Development Environment:2:2:ApproveTheRequest:1:8
  458. Sub ApproveTheRequest(n)
  459.      
  460. 'Set approval status for the current approver
  461.      ApprStatus(n) = "Expired"
  462.      note.ApprStatus = ApprStatus
  463.      
  464. 'Set approval date for the current approver
  465.      ApprDate = note.ApprDate
  466.      ApprDate(n) = dtToday.LSLocalTime
  467.      note.ApprDate = ApprDate
  468.      
  469. 'Set the next approver, the expiration and send mail to the appropriate person(s)          
  470.      SetNextApprover(n)
  471.      If RoutingMethod(0) = "Serial" Then 
  472.           If Not LastApprover Then SetDueDate(n)              
  473.      End If
  474.      If RoutingMethod(0) = "Serial" Or LastApprover Then SendNotification(n)
  475.      
  476. End Sub
  477. '++LotusScript Development Environment:2:2:SetNextApprover:1:8
  478. Sub SetNextApprover(n)
  479.      
  480. 'Initialize the LastApprover flag     
  481.      LastApprover = False
  482.      
  483.      Select Case RoutingMethod(0)
  484. 'If RoutingMethod is serial then NextApprover is simply the next in the list          
  485.      Case "Serial"
  486.           If n = Ubound(ApprName) Then
  487. 'StatusQualifier is only used while the approval cycle is active
  488.                note.RemoveItem("StatusQualifier")
  489.                LastApprover = True
  490.           Else
  491.                NextApprover = ApprName(n + 1)
  492.                note.NextApprover = NextApprover
  493.                note.StatusQualifier = "by " & NextApprover
  494.           End If
  495.      Case "Parallel"
  496. 'Remove CurrentUser from the ApproverList and reset NextApprover to the new list
  497.           ApproverList = note.NextApprover
  498.           ListMax = Ubound(ApproverList)
  499.           Redim tmpList(ListMax)
  500.           x = 0
  501.           For y = 0 To ListMax
  502.                If ApproverList(y) <> ApprName(n) Then
  503.                     tmpList(x) = ApproverList(y)
  504.                     x = x + 1
  505.                End If
  506.           Next
  507.           If x = 0 Then
  508.                tmpList(x) = "None"
  509.                LastApprover = True
  510.           End If
  511.           note.NextApprover = tmpList
  512.      End Select
  513.      
  514. 'If this is the last approver then reset the status and remove the NextApprover field     
  515.      If LastApprover Then
  516.           note.Status = StatusList(7)
  517.           note.RemoveItem("NextApprover")
  518.      End If
  519.      
  520. End Sub
  521. '++LotusScript Development Environment:2:2:DenyTheRequest:1:8
  522. Sub DenyTheRequest(n)
  523.      
  524. 'Set the approval status, date, and comment for current approver, remove status qualifier and next approver, and set LastApprover flag
  525.      ApprStatus(n) = "Expired"
  526.      note.ApprStatus = ApprStatus         
  527.      note.Status = StatusList(6)
  528.      note.RemoveItem("StatusQualifier")
  529.      note.RemoveItem("NextApprover")              
  530.      LastApprover = True
  531.      
  532. 'Set approval date for the current approver
  533.      ApprDate = note.ApprDate
  534.      ApprDate(n) = dtToday.LSLocalTime
  535.      note.ApprDate = ApprDate
  536.      
  537. 'Send notification          
  538.      SendNotification(n)
  539.      
  540. End Sub
  541. '++LotusScript Development Environment:2:2:SetDueDate:1:8
  542. Sub SetDueDate(n)
  543.      
  544.      ApprWin = note.ApprWin
  545.      ListMax = Cint(MaxApprovers(0)) - 1
  546.      Redim tmpList(ListMax)
  547.      
  548. 'Adjust today by the number of days to get the date on which it expires     
  549.      Redim tmpList(n + 1)
  550.      x = 0
  551.      Forall d In DueDate
  552.           tmpList(x) = d
  553.           x = x + 1
  554.      End Forall
  555.      Adjustment = ApprWin(n + 1)
  556.      dtSet.AdjustDay(Cint(Adjustment))
  557.      tmpList(n + 1) = dtSet.LSLocalTime
  558.      
  559.      note.DueDate = tmpList    
  560.      
  561. End Sub
  562. '++LotusScript Development Environment:2:2:SendNotification:1:8
  563. Sub SendNotification(n)
  564.      
  565. 'Instantiate the object variables for the maildoc note that we will create and its Body field     
  566.      Set maildoc = New NotesDocument(db)
  567.      Set rtitem = New NotesRichTextItem(maildoc, "Body")
  568.      DueDate = note.DueDate
  569.      WorkflowObject = note.WorkflowObject
  570.      
  571. 'If this is the last approver then mail is sent to the requester
  572.      If LastApprover Then
  573.           RequesterName = note.RequesterName
  574.           SendTo = RequesterName(0)
  575.           Select Case LateAction(n)
  576.           Case "Approval"
  577.                StatusString = "approved"
  578.                tmpFlowStatus = "Your " & WorkflowObject(0) & " was automatically approved for " & ApprName(n)
  579.           Case "Denial"
  580.                StatusString = "denied"
  581.                tmpFlowStatus = "Your " & WorkflowObject(0) & " was automatically denied for " & ApprName(n)
  582.           End Select
  583.           Subject = "The past due approval of your " & WorkflowObject(0) & " has been " & StatusString
  584.           maildoc.FlowStatus = tmpFlowStatus
  585.      Else
  586.           If LateAction(n) = "Notification" Then 
  587.                SendTo = ApprName(n)
  588.                Subject = WorkflowObject(0) & " requires your approval by " & Format(DueDate(n), "Long Date")
  589.                maildoc.DueDate = Format(DueDate(n), "Long Date")
  590.           Else
  591.                SendTo = ApprName(n + 1)
  592.                Subject = WorkflowObject(0) & " requires your approval by " & Format(DueDate(n + 1), "Long Date")
  593.                maildoc.DueDate = Format(DueDate(n + 1), "Long Date")
  594.           End If
  595.           maildoc.FlowStatus = "Please follow this doclink to the " & WorkflowObject(0) & " and either approve or deny it."
  596.      End If
  597.      
  598.      On Error Resume Next
  599.      
  600. 'Send it, attaching the form if NotificationMethod = "Send"
  601.      NotificationMethod = note.NotificationMethod
  602.      Select Case NotificationMethod(0)
  603.      Case "Send"         
  604.           note.SendTo = SendTo
  605.           note.Subject = Subject
  606.           note.save True, True
  607.           Call note.Send (True)
  608.      Case "Share"
  609. 'Put a doclink in the Body field and populate the other fields on the Bookmark mail form
  610.           Call rtitem.AppendDocLink(note, "DocLink to " & WorkflowObject(0))
  611.           maildoc.InheritedDbTitle = db.Title
  612.           maildoc.Form = "Bookmark"
  613.           maildoc.SendTo = SendTo
  614.           maildoc.Subject = Subject
  615.           Call maildoc.Send (False)
  616.      End Select
  617.      
  618. End Sub
  619. +d    }8
  620. +d    }8
  621. +d    }8
  622. Lotus Notes
  623. PURSAF
  624. Debbie2 Branco
  625. F)`b"
  626. 0|wm-
  627. PURSAF
  628. TS3+v
  629. $TITLE
  630. $AssistType
  631. $AssistLastRun
  632. $AssistDocCount
  633. $Comment
  634. $AssistFlags
  635. $AssistInfo
  636. $AssistQuery
  637. $AssistAction
  638. $AssistAction_Ex
  639. $UpdatedBy
  640. $Flags
  641.  (ApproverRetrievalInfo)
  642. Source Db Server:
  643. Element in List:
  644. Source Doc Field:
  645. Source Db View:
  646. Manager
  647. tmpSourceField
  648. Please enter the the field name from which the data will be retrieved.{
  649.     3S4S6S11StmpSourceField
  650. names.nsf
  651. tmpSourcePath
  652. Please enter the database path as directoryfilename.nsf.{
  653.     3S4S6S11StmpSourcePath
  654. ($Users)
  655. tmpSourceView
  656. Please enter the view from which the data will be retrieved.{
  657.     3S4S6S11StmpSourceView
  658. tmpSourceServer
  659. tmpListElement
  660. If this field is a text list, please enter the element in the list.  If it is not a text list, enter 1.
  661. tmpListElementX
  662. Please enter a number.{
  663.     3S4S6S11S19S24StmpListElement
  664. tmpApproverLabel
  665. tmpApproverLabel
  666. Source Db Path:
  667. Key Field:
  668. RequesterName
  669. tmpRetrievalKey
  670. Please enter the name of the field on the approval form which will be used a a key to retrieve the data.{
  671.     3S4S6S11StmpRetrievalKey
  672. Application Profile
  673. Times New Roman
  674. '++LotusScript Development Environment:2:5:(Options):0:66
  675. Option Public
  676. '++LotusScript Development Environment:2:5:(Forward):0:1
  677. Declare Sub GetApproverDetails(i As Integer)
  678. '++LotusScript Development Environment:2:5:(Declarations):0:10
  679. Dim w As NotesUIWorkspace
  680. Dim doc As NotesUIDocument    
  681. Dim note As NotesDocument
  682. Dim SourceList() As Variant
  683. Dim NameList() As Variant
  684. Dim EditApprList() As Variant
  685. Dim FunctionList() As Variant
  686. Dim WinList() As Variant
  687. Dim LateActionList() As Variant
  688. Dim SourceServerList() As Variant
  689. Dim SourcePathList() As Variant
  690. Dim SourceViewList() As Variant
  691. Dim SourceFieldList() As Variant
  692. Dim ListElementList() As Variant
  693. Dim RetrievalKeyList() As Variant
  694. Dim ListMax As Integer
  695. Dim DocWasSaved As Variant
  696. '++LotusScript Development Environment:2:2:GetApproverDetails:1:8
  697. Sub GetApproverDetails(i As Integer)
  698.      
  699. 'Fields which begin with d_ will become temporary fields in the approval document.
  700. 'They will be deleted in that doc's QueryClose event.
  701. 'Fields which begin with tmp are temporary to the profile doc and are deleted on its QueryClose.
  702. 'All other fields are copied directly to the Approval doc.     
  703.      
  704.      Editable = note.EditableList
  705.      MaxApprovers = note.MaximumApprovers
  706. 'Subtract 1 to make it zero based
  707.      ListMax = Cint(MaxApprovers(0)) - 1
  708.      
  709. 'Populate ApproverLabel (for use in the dialog boxes)
  710.      note.tmpApproverLabel = "Approver" & Str(i + 1)
  711.      
  712. 'Redefine size of array to equal MaxApprovers     
  713.      Redim SourceList(ListMax)
  714.      Redim NameList(ListMax)
  715.      Redim EditApprList(ListMax)
  716.      Redim FunctionList(ListMax)
  717.      Redim WinList(ListMax)
  718.      Redim LateActionList(ListMax)
  719. 'Retrieve existing field values     
  720.      ApprSource = note.d_ApprSource    
  721.      ApprName = note.d_ApprName
  722.      ApprFunction = note.d_ApprFunction
  723.      ApprWin = note.ApprWin
  724.      LateAction = note.d_LateAction
  725.      EditAppr = note.EditAppr
  726.      For a = 0 To Ubound(EditAppr)
  727.           EditApprList(a) = EditAppr(a)
  728.      Next
  729. 'Populate arrays with the values - we use a holding array instead of the retrieved variant array because
  730. 'the ubound of the retrieved variant array is likely to increase (up to MaxApprovers) and it was not defined
  731. 'as a dynamic array     
  732.      For y = 0 To ListMax
  733.           If Ubound(ApprSource) >= y Then SourceList(y) = ApprSource(y)
  734.           If Ubound(ApprName) >= y Then NameList(y) = ApprName(y)
  735.           If Ubound(ApprFunction) >= y Then FunctionList(y) = ApprFunction(y)
  736.           If Ubound(ApprWin) >= y Then WinList(y) = ApprWin(y)
  737.           If Ubound(LateAction) >= y Then LateActionList(y) = LateAction(y)
  738.      Next
  739. 'Populate defaults
  740.      If SourceList(i) = "" Then
  741.           If i = 0 Then
  742.                note.tmpSource = "Defined"
  743.                note.tmpName = ""
  744.                note.tmpFunction = "Manager"
  745.                note.tmpWin = 5
  746.                note.tmpLateAction = "Notification"
  747.           Else
  748.                note.tmpSource = SourceList(i-1)
  749.                note.tmpName = ""
  750.                note.tmpFunction = FunctionList(i-1)
  751.                note.tmpWin = WinList(i-1)
  752.                note.tmpLateAction = LateActionList(i-1)
  753.           End If
  754.      Else
  755.           note.tmpSource = SourceList(i)
  756.           
  757.           If Not ( (NameList(i) = "Entered when submitted") Or (NameList(i) = "Retrieved from database") ) Then
  758.                note.tmpName = NameList(i)             
  759.           Else
  760.                note.tmpName = ""
  761.           End If
  762.           
  763.           note.tmpFunction = FunctionList(i)
  764.           note.tmpWin = WinList(i)
  765.           note.tmpLateAction = LateActionList(i)    
  766.      End If
  767.      doc.reload
  768.      
  769. 'Display Dialog box     
  770.      If w.DialogBox("(ApproverInfo)", True, True) = False Then Exit Sub
  771. 'Add retrieved values to lists          
  772.      tmpSource = note.tmpSource
  773.      SourceList(i) = tmpSource(0)
  774.      Select Case SourceList(i)
  775.      Case "Entered"
  776.           NameList(i) = "Entered when submitted"
  777.           EditApprList(i) = Cstr(i + 1)
  778.      Case "Retrieved"
  779.           NameList(i) = "Retrieved from database"
  780.           EditApprList(i) = ""
  781.      Case Else
  782.           tmpName = Evaluate("@Name([CN]; tmpName)", note)
  783.           NameList(i) = tmpName(0)
  784.           If Editable(0) = "Yes" Then 
  785.                EditApprList(i) = Cstr(i + 1)
  786.           Else
  787.                EditApprList(i) = ""
  788.           End If
  789.      End Select
  790.      tmpFunction = note.tmpFunction
  791.      FunctionList(i) = tmpFunction(0)
  792.      tmpWin = note.tmpWin
  793.      WinList(i) = tmpWin(0)
  794.      tmpLateAction = note.tmpLateAction
  795.      LateActionList(i) = tmpLateAction(0)
  796. 'Assign list arrays back to the note fields          
  797.      note.d_ApprSource = SourceList
  798.      note.d_ApprName = NameList
  799.      note.EditAppr = EditApprList
  800.      note.d_ApprFunction = FunctionList
  801.      note.ApprWin = WinList
  802.      note.d_LateAction = LateActionList
  803.      
  804. 'If source = Retrieved then check where retrieved from
  805.      Redim SourceServerList(ListMax)
  806.      Redim SourcePathList(ListMax)
  807.      Redim SourceViewList(ListMax)
  808.      Redim SourceFieldList(ListMax)
  809.      Redim ListElementList(ListMax)
  810.      Redim RetrievalKeyList(ListMax)
  811.      SourceServer = note.d_SourceServer
  812.      SourcePath = note.d_SourcePath
  813.      SourceView = note.d_SourceView
  814.      SourceField = note.d_SourceField
  815.      ListElement = note.d_ListElement
  816.      RetrievalKey = note.d_RetrievalKey
  817.      For y = 0 To ListMax
  818.           If Ubound(SourceServer) >= y Then SourceServerList(y) = SourceServer(y)
  819.           If Ubound(SourcePath) >= y Then SourcePathList(y) = SourcePath(y)
  820.           If Ubound(SourceView) >= y Then SourceViewList(y) = SourceView(y)
  821.           If Ubound(SourceField) >= y Then SourceFieldList(y) = SourceField(y)
  822.           If Ubound(ListElement) >= y Then ListElementList(y) = ListElement(y)
  823.           If Ubound(RetrievalKey) >= y Then RetrievalKeyList(y) = RetrievalKey(y)
  824.      Next
  825.      tmpSource = note.tmpSource
  826.      If tmpSource(0) = "Retrieved" Then
  827.           If SourcePathList(i) = "" Then 
  828.                If (i = 0) Or (SourcePathList(0) = "") Then
  829.                     note.tmpSourceServer = ""
  830.                     note.tmpSourcePath = "names.nsf"
  831.                     note.tmpSourceView = "($Users)"
  832.                     note.tmpSourceField = "Manager"
  833.                     note.tmpListElement = "1"
  834.                     note.tmpRetrievalKey = "RequesterName"
  835.                Else
  836.                     note.tmpSourceServer = SourceServerList(i-1)
  837.                     note.tmpSourcePath = SourcePathList(i-1)
  838.                     note.tmpSourceView = SourceViewList(i-1)
  839.                     note.tmpSourceField = SourceFieldList(i-1)
  840.                     note.tmpListElement = ListElementList(i-1)
  841.                     note.tmpRetrievalKey = RetrievalKeyList(i-1)
  842.                End If
  843.           Else
  844.                note.tmpSourceServer = SourceServerList(i)
  845.                note.tmpSourcePath = SourcePathList(i)
  846.                note.tmpSourceView = SourceViewList(i)
  847.                note.tmpSourceField = SourceFieldList(i)
  848.                note.tmpListElement = ListElementList(i)
  849.                note.tmpRetrievalKey = RetrievalKeyList(i)
  850.           End If
  851.           doc.reload
  852.           If w.DialogBox("(ApproverRetrievalInfo)", True, True) = True Then
  853.                tmpSourceServer = note.tmpSourceServer
  854.                SourceServerList(i) = tmpSourceServer(0)
  855.                tmpSourcePath = note.tmpSourcePath
  856.                SourcePathList(i) = tmpSourcePath(0)
  857.                tmpSourceView = note.tmpSourceView
  858.                SourceViewList(i) = tmpSourceView(0)
  859.                tmpSourceField = note.tmpSourceField
  860.                SourceFieldList(i) = tmpSourceField(0)
  861.                tmpListElement = note.tmpListElement
  862.                ListElementList(i) = tmpListElement(0)
  863.                tmpRetrievalKey = note.tmpRetrievalKey
  864.                RetrievalKeyList(i) = tmpRetrievalKey(0)
  865.           End If
  866.      Else
  867.           SourceServerList(i) = ""
  868.           SourcePathList(i) = ""
  869.           SourceViewList(i) = ""
  870.           SourceFieldList(i) = ""
  871.           ListElementList(i) = ""
  872.           RetrievalKeyList(i) = ""
  873.      End If
  874.      
  875.      note.d_SourceServer = SourceServerList
  876.      note.d_SourcePath = SourcePathList
  877.      note.d_SourceView = SourceViewList
  878.      note.d_SourceField = SourceFieldList
  879.      note.d_ListElement = ListElementList
  880.      note.d_RetrievalKey = RetrievalKeyList
  881.      
  882.      doc.reload
  883.      If doc.EditMode Then doc.refresh
  884.      
  885. End Sub
  886.     D    D    H
  887. T    T    x    x    
  888. 4    4    0    
  889. -T    #8
  890. tmpName
  891.  ApplicationProfile'++LotusScript Development Environment:2:5:(Options):0:66
  892. '++LotusScript Development Environment:2:5:(Forward):0:1
  893. Declare Sub Postopen(Source As Notesuidocument)
  894. Declare Sub Postmodechange(Source As Notesuidocument)
  895. Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
  896. Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
  897. '++LotusScript Development Environment:2:5:(Declarations):0:2
  898. '++LotusScript Development Environment:2:2:BindEvents:1:129
  899. Private Sub BindEvents(Byval Objectname_ As String)
  900.      Static Source As NOTESUIDOCUMENT
  901.      Set Source = Bind(Objectname_)
  902.      On Event Postopen From Source Call Postopen
  903.      On Event Postmodechange From Source Call Postmodechange
  904.      On Event Queryclose From Source Call Queryclose
  905.      On Event Querysave From Source Call Querysave
  906. End Sub
  907. '++LotusScript Development Environment:2:2:Postopen:1:12
  908. Sub Postopen(Source As Notesuidocument)
  909.      
  910.      Set w = New NotesUIWorkspace
  911.      Set doc = source
  912.      Set note = source.Document
  913.      If Not(doc.EditMode) Then note.SaveOptions = "0"
  914.      
  915.      doc.AutoReload = False
  916.      
  917.      DocWasSaved = False
  918.      
  919. End Sub
  920. '++LotusScript Development Environment:2:2:Postmodechange:1:12
  921. Sub Postmodechange(Source As Notesuidocument)
  922.      
  923.      If doc.EditMode Then
  924.           note.SaveOptions = "1"
  925.           doc.reload
  926.      End If
  927.      
  928. End Sub
  929. '++LotusScript Development Environment:2:2:Queryclose:1:12
  930. Sub Queryclose(Source As Notesuidocument, Continue As Variant)
  931.      
  932.      If DocWasSaved = False Then Exit Sub
  933.      
  934.      ItemList = note.Items
  935.      Forall n In ItemList
  936.           If Ucase(Left(n.Name, 3)) = "TMP" Then n.Remove
  937.      End Forall
  938.      
  939.      note.Save True, True
  940.      
  941. End Sub
  942. '++LotusScript Development Environment:2:2:Querysave:1:12
  943. Sub Querysave(Source As Notesuidocument, Continue As Variant)
  944.      
  945.      MaxApprovers = note.MaximumApprovers
  946.      If MaxApprovers(0) = "" Then
  947.           Messagebox "What is the maximum number of approvers for this type of approval?", 0,_
  948.           "Required Field"
  949.           source.GoToField("MaximumApprovers")
  950.           continue = False
  951.           Exit Sub
  952.      End If
  953.      
  954.      ApprName = note.d_ApprName
  955.      
  956.      If Ubound(ApprName) < Cint(MaxApprovers(0)) - 1 Then
  957.           Messagebox "You must specify approver details for " & MaxApprovers(0) & " approvers or change the value of # of approvers.", 0, "Application Profile"
  958.           continue = False
  959.      Else
  960.           DocWasSaved = True 
  961.      End If
  962.      
  963. End Sub
  964. Application Profile
  965.     Basics
  966. What is the name of the form which requires approval (i.e., Purchase Requisition, Time Sheet...)?
  967.     Approval form name:
  968. WorkflowObject
  969. Is this a Serial (one at a time) or Parallel (all at once) route?
  970.     Routing type:
  971. Serial
  972. RoutingMethod
  973. One after the other | SerialAll at Once | Parallel
  974. When an someone needs to approve a form, they are sent an email.  Should this email consist of a doclink to the original document which they must approve or should the entire document be sent?
  975.     Routing delivery:
  976. Share
  977. NotificationMethod
  978. Doclink | Share
  979.     Approval List
  980.     Approver details
  981.     ( must be filled in! )
  982. What is the maximum number of individauals who will need to approve this form?
  983.     # of approvers:
  984. MaximumApprovers
  985. 12345
  986. New Button
  987. Need a newer version of Notes to execute this button.
  988.     0S0E
  989.     Approver 1...
  990. FieldValue
  991. d_ApprName
  992.     1S2S6S
  993. SourceValue
  994. d_ApprSource
  995.     0R1S2S6S
  996. SourceValue
  997. Defined
  998. FieldValue
  999. Not defined yet
  1000. SourceValue
  1001. Retrieved
  1002. Retrieved from 
  1003. d_SourcePath
  1004. SourceValue
  1005. Entered
  1006. Entered when submitted
  1007. FieldValue
  1008.     0RR3S4S5S6S7S8S9S10S12S14S15S16S18S19S20S24S27S28S29S31S33StmpName1
  1009. d_ApprFunction
  1010. tmpFunc1
  1011. Should the submitter of the form be allowed to modify the Approver list?
  1012.     Is the list editable:
  1013. EditableList
  1014. YesNo
  1015. MaximumApproversX
  1016.     4S5S
  1017. New Button
  1018. Need a newer version of Notes to execute this button.
  1019.     0S0E
  1020.     Approver 2...
  1021. FieldValue
  1022. d_ApprSourcej
  1023. d_ApprName
  1024. Not defined yet
  1025.     1S2S8S9S11S17S20S24S
  1026. SourceValue
  1027. d_ApprSource
  1028.     0R1S2S8S11S
  1029. SourceValue
  1030. Defined
  1031. FieldValue
  1032. Not defined yet
  1033. SourceValue
  1034. Retrieved
  1035. Retrieved from 
  1036. d_SourcePath
  1037. SourceValue
  1038. Entered
  1039. Entered when submitted
  1040. FieldValue
  1041.     0RR3S4S5S6S7S8S9S10S12S14S15S16S18S19S20S26S29S33S34S35S37S39S
  1042. tmpName2
  1043. MaximumApprovers
  1044.     1S2S
  1045. d_ApprSourcej
  1046. d_ApprFunction
  1047.     6S7S9S15S18S22StmpFunc2
  1048. MaximumApproversX
  1049.     4S5S
  1050. New Button
  1051. Need a newer version of Notes to execute this button.
  1052.     0S0E
  1053.     Approver 3...
  1054. FieldValue
  1055. d_ApprSourcej
  1056. d_ApprName
  1057. Not defined yet
  1058.     1S2S8S9S11S17S20S24S
  1059. SourceValue
  1060. d_ApprSource
  1061.     0R1S2S8S11S
  1062. SourceValue
  1063. Defined
  1064. FieldValue
  1065. Not defined yet
  1066. SourceValue
  1067. Retrieved
  1068. Retrieved from 
  1069. d_SourcePath
  1070. SourceValue
  1071. Entered
  1072. Entered when submitted
  1073. FieldValue
  1074.     0RR3S4S5S6S7S8S9S10S12S14S15S16S18S19S20S26S29S33S34S35S37S39S
  1075. tmpName3
  1076. MaximumApprovers
  1077.     1S2S
  1078. d_ApprSourcej
  1079. d_ApprFunction
  1080.     6S7S9S15S18S22StmpFunc3
  1081. MaximumApproversX
  1082.     4S5S
  1083. New Button
  1084. Need a newer version of Notes to execute this button.
  1085.     0S0E
  1086.     Approver 4...
  1087. FieldValue
  1088. d_ApprSourcej
  1089. d_ApprName
  1090. Not defined yet
  1091.     1S2S8S9S11S17S20S24S
  1092. SourceValue
  1093. d_ApprSource
  1094.     0R1S2S8S11S
  1095. SourceValue
  1096. Defined
  1097. FieldValue
  1098. Not defined yet
  1099. SourceValue
  1100. Retrieved
  1101. Retrieved from 
  1102. d_SourcePath
  1103. SourceValue
  1104. Entered
  1105. Entered when submitted
  1106. FieldValue
  1107.     0RR3S4S5S6S7S8S9S10S12S14S15S16S18S19S20S26S29S33S34S35S37S39S
  1108. tmpName4
  1109. MaximumApprovers
  1110.     1S2S
  1111. d_ApprSourcej
  1112. d_ApprFunction
  1113.     6S7S9S15S18S22StmpFunc4
  1114. MaximumApproversX
  1115.     4S5S
  1116. New Button
  1117. Need a newer version of Notes to execute this button.
  1118.     0S0E
  1119.     Approver 5...
  1120. FieldValue
  1121. d_ApprSourcej
  1122. d_ApprName
  1123. Not defined yet
  1124.     1S2S8S9S11S17S20S24S
  1125. SourceValue
  1126. d_ApprSource
  1127.     0R1S2S8S11S
  1128. SourceValue
  1129. Defined
  1130. FieldValue
  1131. Not defined yet
  1132. SourceValue
  1133. Retrieved
  1134. Retrieved from 
  1135. d_SourcePath
  1136. SourceValue
  1137. Entered
  1138. Entered when submitted
  1139. FieldValue
  1140.     0RR3S4S5S6S7S8S9S10S12S14S15S16S18S19S20S26S29S33S34S35S37S39S
  1141. tmpName5
  1142. MaximumApprovers
  1143.     1S2S
  1144. d_ApprSourcej
  1145. d_ApprFunction
  1146.     6S7S9S15S18S22StmpFunc5
  1147. d_ApproverSource
  1148. Manual
  1149.     1S2S3S4S
  1150. Options
  1151.     Options
  1152. Do you want each Approvers to have the option of entering comments?
  1153.     Approvers enter comments:
  1154. CommentsAllowed
  1155. YesNo
  1156. Occasionally, a workflow becomes stalled and someone must resolve the problem then cause the flow to resume.  This person is typically associated with the business group which requires the approval, such as Purchasing, Payroll, Human Resources, etc., and has the authority to take any action on the document.  What person or group will perform this administrative function?
  1157.     Form administrator:
  1158. FormAdmin
  1159. What text would you like to appear in the title bar of prompt boxes issued by this form?
  1160.     Prompt caption:
  1161. PromptTitle
  1162. If this form will be emailed to another database once approval is complete, enter the Mail-in Database name here.
  1163.     Mail-in database:
  1164. FinalDestinationDb
  1165.     Terminology
  1166. What terminology does your workplace use for "New" (e.g., To Be Opened, Initiated, Latest, etc.)
  1167. What terminology does your workplace use for "Open" (e.g., Current, Valid, etc.)
  1168.     Open
  1169. What terminology does your workplace use for "Awaiting Approval" (e.g., Unprocessed, To Be Done, etc.)
  1170.     Awaiting Approval
  1171. What terminology does your workplace use for "Approved" (e.g., Signed, Passed, etc.)
  1172.     Approved
  1173. What terminology does your workplace use for "Denied" (e.g., Not Approved, Approval Withheld, etc.)
  1174.     Denied
  1175. What terminology does your workplace use for "Withdrawn" (e.g., Removed, Retracted, etc.)
  1176.     Withdrawn
  1177. What terminology does your workplace use for "Closed" (e.g., Ended, Concluded, etc.)
  1178.     Closed
  1179. What terminology does your workplace use for "Complete" (e.g., Concluded, Ended, etc.)
  1180.     Complete
  1181. Awaiting Approval
  1182. Approved
  1183. Denied
  1184. Withdrawn
  1185. Closed
  1186. Complete
  1187.     1S2R3S4R5S6R7S8R9S10R11S12R13S14R
  1188. StatusListj
  1189. There must be one status corresponding with each listed on the form.{
  1190.     6S7S9S14SStatusList
  1191. Close
  1192.     0S0E
  1193. _Edit Document
  1194. Categori_ze 
  1195. Send Docu_ment
  1196. _Forward
  1197. _Move to Folder...
  1198. _Remove from Folder
  1199.  (ApproverInfo)
  1200. tmpSource
  1201. Defined
  1202. ApprovalDoc
  1203.     3S4S5S6S8S
  1204.  @  @@ @` @
  1205. @@ @@@@@`@@
  1206. `@ `@@`@``@
  1207. tmpSource
  1208. ApprovalDoc
  1209.     1S2S
  1210. Source of name:
  1211. If window is missed:
  1212. Approval window:
  1213. Approver function:
  1214. day(s)
  1215. tmpWin
  1216. Please enter an approval window.{
  1217. tmpWin
  1218. Approval window must be at least one day{
  1219.     3S4S6S11StmpWin
  1220. tmpName
  1221. tmpName
  1222. tmpName
  1223. tmpSource
  1224. Defined
  1225. Please click the button to add the Approver's Name, or change the source.
  1226.     3S4S5S6S7S8S10S18S
  1227. tmpFunction
  1228. Please enter the function of this approver (ex. Manager).
  1229.     0R3S4S6S11StmpFunction
  1230. tmpSource
  1231. tmpSource
  1232. ApprovalDoc
  1233. tmpSource
  1234. Defined in this Profile | Defined
  1235. Entered on the form by the submitter | Entered
  1236. Retrieved from a database | Retrieved
  1237.     3S4S6S8S9S10S11S12S
  1238. tmpLateAction
  1239. Approve the form | ApprovalReject the form | DenialSend a reminder | NotificationDo nothing | Nothing
  1240. tmpApproverLabel
  1241. tmpApproverLabel
  1242. Approver name:
  1243. tmpName
  1244.     1S2S3S6S7S
  1245.  @  @@ @` @
  1246. @@ @@@@@`@@
  1247. `@ `@@`@``@
  1248. ficationDo nothi
  1249. 03/19/96 09:11:58 AM Lotus Notes updated [OtherDomainServers]
  1250. 09/29/95 12:13:52 PM Catherine Duffy/Iris updated [-Default-]
  1251. 09/29/95 12:13:44 PM Catherine Duffy/Iris updated LocalDomainServers
  1252. 09/28/95 08:45:57 PM Catherine Duffy/Iris updated [OtherDomainServers]
  1253. 09/28/95 08:45:47 PM Catherine Duffy/Iris updated [OtherDomainServers]
  1254. 09/28/95 08:45:45 PM Catherine Duffy/Iris updated [LocalDomainServers]
  1255. 09/28/95 08:45:42 PM Catherine Duffy/Iris updated [-Default-]
  1256. 09/28/95 08:45:37 PM Catherine Duffy/Iris updated LocalDomainServers
  1257. 09/28/95 08:45:34 PM Catherine Duffy/Iris updated -Default-
  1258. 09/28/95 04:23:31 PM Lotus Notes updated LocalDomainServers
  1259. 09/28/95 04:23:05 PM Lotus Notes updated [LocalDomainServers]
  1260. 09/28/95 04:23:02 PM Lotus Notes updated [OtherDomainServers]
  1261. 09/28/95 04:22:38 PM Lotus Notes updated LocalDomainServers
  1262. 09/28/95 04:22:34 PM Lotus Notes updated [LocalDomainServers]
  1263. 09/28/95 04:22:31 PM Lotus Notes updated [OtherDomainServers]
  1264. 09/28/95 04:22:25 PM Lotus Notes added [OtherDomainServers]
  1265. 09/28/95 04:22:25 PM Lotus Notes added [LocalDomainServers]
  1266. 09/28/95 04:22:25 PM Lotus Notes added LocalDomainServers
  1267. 09/28/95 04:22:25 PM Lotus Notes added [-Default-]
  1268. 09/28/95 04:20:32 PM Lotus Notes updated -Default-
  1269. 09/28/95 04:20:25 PM Lotus Notes deleted LocalDomainServers
  1270. -Default-
  1271. [-Default-]
  1272. LocalDomainServers
  1273. [LocalDomainServers]
  1274. [OtherDomainServers]
  1275. ed$UpdatedBy$ACLDigest$Signature$DesignVersion$Version$Formula$FormulaClass$Collation$TITLE$Info$Flags$$Script_O$$ScriptName$$FormScript$$$FormScript_Od_ApprComment$Fields$Body$ACTIONS$Index$ViewFormat$Comment$Collation1$Collation2$Collation3$Collation4$Collation5$Collation6$Collation7$Collation8$Collation9$Collation10IconBitmap$Header$Fonts$AssistVersion$AssistType$AssistLastRun$AssistDocCount$AssistFlags$AssistTrigger$AssistInfo$AssistQuery$AssistAction$AssistAction_Ex$AssistRunInfo$p_WorkflowObject_Op_ApprovalWindowp_MaximumApproversApprovalDate1ApprovalDate2ApprovalDate3ApprovalDate4ApprovalDate5FunctionPositionListElement1_1ListElement1_2ApprovalWindowListElement1ListElement2ListElement3ListElement1_3ListElement1_4$dApprovalWindow_O$dExpirationAction_OdApprovalWindowApprovalWindow1ApprovalWindow2ApprovalWindow3ApprovalWindow4ApprovalWindow5$dApprWindow_O$dExpireAction_OdApprWindowdListElement1dListElement2dListElement3dListElement4dListElement5ApprWindow1ApprWindow2ApprWindow4ApprWindow5ApprWindow3$d_ApprWindow_O$d_ExpireAction_Od_ApprWindow$d_ApproverSource_O$ApprName1_Od_ListElement1ApprWin1d_ListElement2ApprWin2d_ListElement3ApprWin3d_ListElement4ApprWin4d_ListElement5ApprWin5APPRWIN$WindowTitle$Script$$WorkflowObject$WorkflowObject_O$$MaximumApprovers$MaximumApprovers_OWorkflowObjectRoutingMethodNotificationMethodMaximumApproversEditableListCommentsAllowedFormAdminPromptTitleFinalDestinationDbStatusListWintmpWintmpNametmpFunctiontmpSourcetmpLateActiontmpSourceFieldtmpSourcePathtmpSourceViewtmpSourceServertmpListElementtmpRetrievalKeyApprDateAuthorizedEditorsRequestIdRequesterNameRequestDateStatusStatusQualifierNextApproverApprNameApprFunctionLateActionApprStatus$Collection$ViewContainer
  1276. ApprovalLogic
  1277. Lotus NotesCUAN3
  1278. ApprStatusLateActionApprFunctionApprNameNextApproverStatusQualifierStatusRequestDateRequesterNameRequestIdAuthorizedEditors##########################################################
  1279. VoE!    
  1280. Next Approver|NextApprover
  1281. CN=Catherine Duffy/O=Iris
  1282. NextApproverRequesterNameRequestDateWorkflowObjectStatus$Conflict$REF
  1283. ApplicationProfile
  1284. Status
  1285. StatusListv
  1286.     L1S2S3S4S5S9S11S12S1a
  1287. NextApproverRequesterNameRequestDateWorkflowObjectStatus
  1288. RequesterName
  1289. RequesterName
  1290. RequestDate
  1291. RequestDate
  1292. WorkflowObject
  1293. WorkflowObject
  1294. Status
  1295. Status
  1296. NextApproverRequesterNameRequesterRequestDateDateWorkflowObjectRequest TypeStatusStatus&
  1297. This lists all requests - the columns can be sorted on the flyY#########################################################
  1298. ##########################################################
  1299. ##########################################################
  1300. ##########################################################
  1301. ##########################################################
  1302. ##########################################################
  1303. ##########################################################
  1304. ##########################################################
  1305. ##########################################################
  1306. ##########################################################
  1307. ##########################################################
  1308. ##########################################################
  1309. ##########################################################
  1310. ##########################################################
  1311. ##########################################################
  1312. ##########################################################
  1313. ##########################################################
  1314. ##########################################################
  1315. ##########################################################
  1316. ##########################################################
  1317. ##########################################################
  1318. ##########################################################
  1319. ##########################################################
  1320. ##########################################################
  1321. ##########################################################
  1322. ##########################################################
  1323. ##########################################################
  1324. ##########################################################
  1325. ##########################################################
  1326. ##########################################################
  1327. ##########################################################
  1328. ##########################################################
  1329. ##########################################################
  1330. ##########################################################
  1331. "MS Sans Serif
  1332. '++LotusScript Development Environment:2:5:(Options):0:74
  1333. Option Public
  1334. '++LotusScript Development Environment:2:5:(Forward):0:1
  1335. Declare Sub GetApproverNames(x)
  1336. Declare Sub IdentifyUser
  1337. Declare Sub SetNextApprover
  1338. Declare Sub SetDueDate
  1339. Declare Sub SendNotification
  1340. Declare Sub ResetAuthorNames
  1341. Declare Sub LoadDisplayFields
  1342. Declare Sub InitializeNewDoc
  1343. '++LotusScript Development Environment:2:5:(Declarations):0:10
  1344. '-----OBJECT VARIABLES-----
  1345. Dim w As NotesUIWorkspace
  1346. Dim doc As NotesUIDocument
  1347. Dim note As NotesDocument
  1348. Dim profile As NotesDocument
  1349. Dim maildoc As NotesDocument
  1350. Dim s As NotesSession
  1351. Dim db As NotesDatabase
  1352. Dim view As NotesView
  1353. Dim item As NotesItem
  1354. Dim dt As NotesDateTime
  1355. Dim db1 As NotesDatabase
  1356. Dim view1 As NotesView
  1357. Dim note1 As NotesDocument
  1358. '------DATA VARIABLES
  1359. Dim StatusList As Variant
  1360. Dim Status As Variant
  1361. Dim WorkflowObject As Variant
  1362. Dim PromptTitle As Variant
  1363. Dim MaxApprovers As Variant
  1364. Dim RoutingMethod As Variant
  1365. Dim DueDate As Variant
  1366. Dim ApprName As Variant
  1367. '------PROCESSING VARIABLES
  1368. Dim CurrentApprover As Variant
  1369. Dim NextAppr As Variant
  1370. Dim ApprovalCount As Variant
  1371. Dim NextApprover As Variant
  1372. Dim CurrentUser As String
  1373. Dim ApproverList() As Variant
  1374. Dim Action As Variant
  1375. Dim LastApprover As Integer
  1376. Dim DocWasSaved As Variant
  1377. Dim tmpList() As Variant
  1378. Dim tmpList1() As Variant
  1379. Dim SourceServer As Variant
  1380. Dim SourcePath As Variant
  1381. Dim SourceView As Variant
  1382. Dim SourceKey As Variant
  1383. Dim SourceField As Variant
  1384. Dim SourceElement As Variant
  1385. Dim PreviousDb As Variant
  1386. Dim PreviousView As Variant
  1387. Dim PreviousKey As Variant
  1388. '++LotusScript Development Environment:2:2:GetApproverNames:1:8
  1389. Sub GetApproverNames(x)
  1390.      Print "GettingApproverNames"
  1391.      
  1392.      KeyValue = note.GetItemValue(SourceKey(x))
  1393.      ListElement = Cint(SourceElement(x)) - 1
  1394.      
  1395. 'Do not get the input db, view, and note again unless it is different from the previous ones
  1396.      If PreviousDb <> SourceServer(x) & SourcePath(x) Then
  1397.           Set db1 = New NotesDatabase(SourceServer(x), SourcePath(x))
  1398.           
  1399.           'If for some reason the database isn't found, post an error to user and abort
  1400.           If (db1 Is Nothing) Then
  1401.                Messagebox "Could not proceed, database not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1402.                doc.close
  1403.                Print
  1404.                End
  1405.           End If          
  1406.           
  1407.           Set view1 = db1.GetView(SourceView(x))
  1408.           
  1409.           'If for some reason the view isn't found, post an error to user and abort
  1410.           If (view1 Is Nothing) Then
  1411.                Messagebox "Could not proceed, view not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1412.                doc.close
  1413.                Print
  1414.                End
  1415.           End If
  1416.           
  1417.           Set note1 = view1.GetDocumentByKey(KeyValue(0))
  1418.           
  1419.           'If for some reason the document isn't found, post an error to user and abort
  1420.           If (note1 Is Nothing) Then
  1421.                Messagebox "Could not proceed, document not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1422.                doc.close
  1423.                Print
  1424.                End
  1425.           End If
  1426.      Else
  1427.           If PreviousView <> SourceView(x) Then 
  1428.                Set view1 = db1.GetView(SourceView(x))
  1429.                
  1430.                'If for some reason the view isn't found, post an error to user and abort
  1431.                If (view1 Is Nothing) Then
  1432.                     Messagebox "Could not proceed, view not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1433.                     doc.close
  1434.                     Print
  1435.                     End
  1436.                End If
  1437.                
  1438.                Set note1 = view1.GetDocumentByKey(KeyValue(0))
  1439.                
  1440.                'If for some reason the document isn't found, post an error to user and abort               
  1441.                If (note1 Is Nothing) Then
  1442.                     Messagebox "Could not proceed, document not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1443.                     doc.close
  1444.                     Print
  1445.                     End
  1446.                End If
  1447.           Else
  1448.                If PreviousKey <> SourceKey(x) Then Set note1 = view1.GetDocumentByKey(KeyValue(0))
  1449.                
  1450.                'If for some reason the document isn't found, post an error to user and abort
  1451.                If (note1 Is Nothing) Then
  1452.                     Messagebox "Could not proceed, document not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1453.                     doc.close
  1454.                     Print
  1455.                     End
  1456.                End If
  1457.           End If
  1458.      End If
  1459.      
  1460. 'Get the name and put it in the appropriate ApprName field               
  1461.      If Not( note1.HasItem(SourceField(x))) Then
  1462.           Messagebox "Could not proceed, field not found. Please contact " + note.FormAdmin(0), 0 + 64, "Design Error"
  1463.           doc.close
  1464.           Print
  1465.           End
  1466.      End If
  1467.      
  1468.      NameList = note1.GetItemValue(SourceField(x))
  1469.      ApprName(x) = NameList(ListElement)
  1470.      note.ApprName = ApprName
  1471.      ApprName = Evaluate("@Name([CN]; ApprName)", note)
  1472.      note.ApprName = ApprName
  1473.      
  1474. 'Hold the current values as Previous so they can be used in the next loop to compare to new current               
  1475.      PreviousDb = SourceServer(x) & SourcePath(x)
  1476.      PreviousView = SourceView(x)
  1477.      PreviousKey = SourceKey(x)
  1478.      
  1479. End Sub
  1480. '++LotusScript Development Environment:2:2:IdentifyUser:1:8
  1481. Sub IdentifyUser
  1482.      Print "IdentifyingUser"
  1483.      
  1484.    Builds an array called ApproverList, which is the list of remaining approvers.
  1485.    Determines the number (position) of the current and next approver.
  1486. %ENDREM
  1487.      
  1488. 'Initilize array bounds to the largest it can be (MaxApprovers - 1 because ApproverList is zero based)     
  1489.      ListMax = Cint(MaxApprovers(0)) - 1
  1490.      Redim ApproverList(ListMax)
  1491.      ApprStatus = note.ApprStatus
  1492.      ApprName = note.ApprName
  1493.      CurrentApprover = 0
  1494.      x = 0
  1495. 'Populate the array with all names with status = "None" and set CurrentApprover to whatever number in the list it is
  1496.      For n = 0 To ListMax
  1497.           If ApprStatus(n) = "None" Then
  1498.                If ApprName(n) = CurrentUser Then CurrentApprover = n
  1499.                ApproverList(x) = ApprName(n)
  1500.                x = x + 1
  1501.           End If
  1502.      Next
  1503. 'Reset the bounds of the array to fit its actual size     
  1504.      Redim Preserve ApproverList(x-1)
  1505.      
  1506.      If Action(0) = "Submit" Then
  1507.           NextAppr = CurrentApprover
  1508.      Else
  1509.           NextAppr = CurrentApprover + 1
  1510.      End If
  1511.      
  1512. End Sub
  1513. '++LotusScript Development Environment:2:2:SetNextApprover:1:8
  1514. Sub SetNextApprover
  1515.      Print "SettingNextApprover"
  1516.      
  1517. 'Initialize the LastApprover flag     
  1518.      LastApprover = False
  1519.      
  1520.      Select Case RoutingMethod(0)
  1521. 'If RoutingMethod is serial then NextApprover is simply the next in the list          
  1522.      Case "Serial"
  1523.           If NextAppr > Ubound(ApprName) Then
  1524. 'StatusQualifier is only used while the approval cycle is active
  1525.                note.RemoveItem("StatusQualifier")
  1526.                LastApprover = True
  1527.           Else
  1528.                NextApprover = ApprName(NextAppr)
  1529.                note.NextApprover = NextApprover
  1530.                note.StatusQualifier = "by " & NextApprover
  1531.           End If
  1532.      Case "Parallel"
  1533.           Select Case Action(0)
  1534. 'If submitting - the next approver is all approvers               
  1535.           Case "Submit"
  1536.                note.NextApprover = ApproverList
  1537. 'If Approving - remove CurrentUser from the ApproverList and reset NextApprover to the new list
  1538.           Case "Approve"
  1539.                ListMax = Ubound(ApproverList)
  1540.                Redim tmpList(ListMax)
  1541.                x = 0
  1542.                For y = 0 To ListMax
  1543.                     If ApproverList(y) <> CurrentUser Then
  1544.                          tmpList(x) = ApproverList(y)
  1545.                          x = x + 1
  1546.                     End If
  1547.                Next
  1548.                If x = 0 Then
  1549.                     tmpList(x) = "None"
  1550.                     LastApprover = True
  1551.                End If
  1552.                note.NextApprover = tmpList
  1553.           End Select
  1554.      End Select
  1555.      
  1556. 'If this is the last approver then reset the status and remove the NextApprover field     
  1557.      If LastApprover Then
  1558.           If Action(0) = "Approve" Then note.Status = StatusList(7)
  1559.           note.RemoveItem("NextApprover")
  1560.      End If
  1561.      
  1562. End Sub
  1563. '++LotusScript Development Environment:2:2:SetDueDate:1:8
  1564. Sub SetDueDate
  1565.      Print "SettingDueDate"
  1566.      
  1567.      ApprWin = note.ApprWin
  1568.      ListMax = Cint(MaxApprovers(0)) - 1
  1569.      Redim tmpList(ListMax)
  1570.      
  1571. 'Adjust today by the number of days to get the date on which it expires     
  1572.      
  1573.      Select Case RoutingMethod(0)
  1574. 'If Parallel - adjust all dates          
  1575.      Case "Parallel"
  1576.           For n = 0 To ListMax
  1577.                Adjustment = ApprWin(n)
  1578.                dt.AdjustDay(Int(Adjustment))
  1579.                tmpList(n) = dt.LSLocalTime
  1580.           Next
  1581. 'If Serial - only adjust the date for the Next Approver          
  1582.      Case "Serial"
  1583.           DueDate = note.DueDate
  1584.           Redim tmpList(NextAppr)
  1585.           x = 0
  1586.           Forall d In DueDate
  1587.                tmpList(x) = d
  1588.                
  1589.                If (tmpList(x) = "") Then
  1590.                     tmpList(x) = dt.LSLocalTime
  1591.                End If
  1592.                
  1593.                x = x + 1
  1594.           End Forall
  1595.           Adjustment = ApprWin(NextAppr)
  1596.           dt.AdjustDay(Int(Adjustment))
  1597.           tmpList(NextAppr) = dt.LSLocalTime
  1598.      End Select
  1599.      
  1600.      note.DueDate = tmpList
  1601. 'The following field is only used for display in the ToDo view of the mail file     
  1602.      note.DueDateTime = note.DueDate
  1603.      
  1604. End Sub
  1605. '++LotusScript Development Environment:2:2:SendNotification:1:8
  1606. Sub SendNotification
  1607.      Print "SendingNotification"
  1608.      
  1609. 'Instantiate the object variables for the maildoc note that we will create and its Body field     
  1610.      Set maildoc = New NotesDocument(db)
  1611.      Set rtitem = New NotesRichTextItem(maildoc, "Body")
  1612.      DueDate = note.DueDate
  1613.      
  1614. 'If this is the last approver then mail is sent to the requester
  1615. 'The Recipient variable is used in the Messagebox at the end of this sub, to tell the user who mail was sent to
  1616.      If LastApprover Then
  1617.           RequesterName = note.RequesterName
  1618.           SendTo = RequesterName(0)
  1619.           Recipient = RequesterName(0)
  1620.           Select Case Action(0)
  1621.           Case "Approve"
  1622.                StatusString = "approved"
  1623.                tmpFlowStatus = "Approval of your " & WorkflowObject(0) & " is complete.  "
  1624.           Case "Deny"
  1625.                StatusString = "denied"
  1626.                tmpFlowStatus = WorkflowObject(0) & " has been denied by " & CurrentUser
  1627.           Case "Withdraw"
  1628.                StatusString = "withdrawn"
  1629.                tmpFlowStatus = "Your " & WorkflowObject(0) &_
  1630.                " has been withdrawn.  You may be able to resubmit it at another time.  "
  1631.           End Select
  1632.           Subject = "Your " & WorkflowObject(0) & " has been " & StatusString
  1633.           maildoc.FlowStatus = tmpFlowStatus
  1634.      Else
  1635. 'If there are more approvers we need the appropriate expire date because we put in on the message         
  1636.           Select Case RoutingMethod(0)
  1637. 'If it is Serial - mail gets sent to the NextApprover                        
  1638.           Case "Serial"
  1639.                SendTo = NextApprover
  1640.                Recipient = NextApprover
  1641. 'If it is Parallel - mail gets sent to all approvers               
  1642.           Case "Parallel"     
  1643.                SendTo = ApproverList
  1644.                Recipient = "all Approvers"
  1645.           End Select
  1646.           Subject = WorkflowObject(0) & " requires your approval by " & Format(DueDate(NextAppr), "Long Date")
  1647.           maildoc.DueDate = Format(DueDate(NextAppr), "Long Date")
  1648.           maildoc.FlowStatus = "Please follow this doclink to the " & WorkflowObject(0) & " and either approve or deny it."
  1649.      End If
  1650.      
  1651.      On Error Goto ErrorSending
  1652.      
  1653. 'Send it, attaching the form if NotificationMethod = "Send"
  1654.      NotificationMethod = note.NotificationMethod
  1655.      Select Case NotificationMethod(0)
  1656.      Case "Send"         
  1657.           note.SendTo = SendTo
  1658.           note.Subject = Subject
  1659.           note.save True, True
  1660.           Call note.Send (True)
  1661.      Case "Share"
  1662. 'Put a doclink in the Body field and populate the other fields on the Bookmark mail form
  1663.           Call rtitem.AppendDocLink(note, "DocLink to " & WorkflowObject(0))
  1664.           maildoc.InheritedDbTitle = db.Title
  1665.           maildoc.Form = "Bookmark"
  1666.           maildoc.SendTo = SendTo
  1667.           maildoc.Subject = subject
  1668.           'If the request is being denied we update the Bookmark document field with the name of the object
  1669.           'plus the Request Date and Request ID
  1670.           If (StatusString="denied") Then
  1671.                maildoc.InheritedSubject=WorkflowObject(0)+" Requested On "+Cstr(note.RequestDate(0))
  1672.           End If          
  1673.           Call maildoc.Send (False)
  1674.      End Select
  1675.      
  1676. 'Display a message telling the user that mail has been sent and to whom     
  1677.      Messagebox "Notification has been sent to " & Recipient & ".", 0 + 64, PromptTitle(0)
  1678.      
  1679.      Exit Sub
  1680.      
  1681. ErrorSending:
  1682.      Messagebox "FYI:  " & Recipient & " could not be notified via email at this time.", 0 + 64, PromptTitle(0)
  1683.      Exit Sub    
  1684.      
  1685. End Sub
  1686. '++LotusScript Development Environment:2:2:ResetAuthorNames:1:8
  1687. Sub ResetAuthorNames
  1688.      Print "ResettingAuthorNames"
  1689.      
  1690. 'Get the field values needed to do this     
  1691.      FormAdmin = note.FormAdmin
  1692.      RequesterName = note.RequesterName
  1693.      NewStatus = note.Status
  1694.      NextApprover = note.NextApprover
  1695.      
  1696. 'Reset the upper bound of tmpList to the total number of NextApprovers + 1     
  1697.      Redim tmpList(Ubound(NextApprover) + 1)
  1698.      
  1699.      Select Case NewStatus(0)
  1700. 'If approvals are done - the FormAdmin is the only editor          
  1701.      Case StatusList(6), StatusList(7)
  1702.           note.AuthorizedEditors = FormAdmin(0)
  1703. 'If approvals are not started - the Requester is the only editor
  1704.      Case StatusList(0), StatusList(1)
  1705.           note.AuthorizedEditors = RequesterName(0)
  1706.      Case Else
  1707.           tmpList(0) = FormAdmin(0)
  1708.           x = 1
  1709.           Forall n In NextApprover
  1710.                tmpList(x) = n
  1711.                x = x + 1
  1712.           End Forall
  1713.           note.AuthorizedEditors = tmpList
  1714.      End Select
  1715.      
  1716. End Sub
  1717. '++LotusScript Development Environment:2:2:LoadDisplayFields:1:8
  1718. Sub LoadDisplayFields
  1719.      
  1720.      ListMax = Cint(MaxApprovers(0)) - 1
  1721.      
  1722.      Status = note.Status
  1723.      If (Status(0) = StatusList(0)) Or (Status(0) = StatusList(1)) Or (Status(0) = "") Then
  1724.           ApprWin = note.ApprWin
  1725.           Redim tmpList(Ubound(ApprWin))
  1726.           x = 0
  1727.           Forall w In ApprWin
  1728.                tmpList(x) = w & " days"
  1729.                x = x + 1
  1730.           End Forall
  1731.           note.d_DueDate = tmpList
  1732.      Else
  1733.           DueDate = note.DueDate
  1734.           Redim tmpList(Ubound(DueDate))
  1735.           x = 0
  1736.           Forall d In DueDate
  1737.                tmpList(x) = Format(d, "Short Date")
  1738.                x = x + 1
  1739.           End Forall
  1740.           note.d_DueDate = tmpList
  1741.      End If
  1742.      
  1743.      If doc.IsNewDoc Then Exit Sub
  1744.      
  1745.      Redim tmpList(ListMax)
  1746.      Redim tmpList1(ListMax)
  1747.      NextApprover = note.NextApprover
  1748.      Status = note.Status
  1749.      ApprStatus = note.ApprStatus
  1750.      ApprName = note.ApprName
  1751.      x = 0
  1752.      y = 0
  1753.      For i = 0 To ListMax
  1754.           NameValue = ApprName(i)
  1755.           If ApprStatus(i) = "None" Then
  1756. 'Build FutureApprover list - all names with blank status, except if they are in the NextApprover list
  1757.                IsFuture = True            
  1758.                Forall n In NextApprover
  1759.                     If NameValue = n Then IsFuture = False
  1760.                End Forall
  1761.                If IsFuture Then
  1762.                     tmpList(x) = NameValue
  1763.                     x = x + 1            
  1764.                End If
  1765.           Else
  1766. 'Build PastApprover list - all names which have a status
  1767.                tmpList1(y) = NameValue
  1768.                y = y + 1
  1769.           End If
  1770.      Next
  1771.      
  1772.      If tmpList(0) = "" Then 
  1773.           note.d_FutureApprovers = "None"
  1774.      Else
  1775.           note.d_FutureApprovers = tmpList
  1776.      End If
  1777.      If tmpList1(0) = "" Then
  1778.           note.d_PastApprovers = "None"
  1779.      Else
  1780.           note.d_PastApprovers = tmpList1
  1781.      End If
  1782.      If Status(0) = StatusList(6) Or Status(0) = StatusList(7) Then
  1783.           If tmpList1(0) <> "" Then note.d_Approvers = tmpList1
  1784.      Else
  1785.           If tmpList1(0) <> "" Then note.d_Approvers = tmpList
  1786.      End If
  1787.      
  1788. End Sub
  1789. '++LotusScript Development Environment:2:2:InitializeNewDoc:1:8
  1790. Sub InitializeNewDoc
  1791.      
  1792. 'If the profile indicates that ApproverNames are retrieved from another db then
  1793. 'get the ApproverNames.  This needs to be done after the global variables (above) are set.     
  1794.      note.Status = StatusList(0)
  1795.      SourceServer = note.d_SourceServer
  1796.      SourcePath = note.d_SourcePath
  1797.      SourceView = note.d_SourceView
  1798.      SourceKey = note.d_RetrievalKey
  1799.      SourceField = note.d_SourceField
  1800.      SourceElement = note.d_ListElement
  1801.      ApprName = note.d_ApprName
  1802.      note.ApprName = ApprName
  1803.      ApprFunction = note.d_ApprFunction
  1804.      note.ApprFunction = ApprFunction
  1805.      LateAction = note.d_LateAction
  1806.      note.LateAction = LateAction
  1807.      
  1808.      ApprSource = note.d_ApprSource
  1809.      x = 0
  1810.      Forall n In ApprSource
  1811.           If n = "Retrieved" Then GetApproverNames(x)
  1812.           x = x + 1
  1813.      End Forall
  1814.      ListMax = Cint(MaxApprovers(0)) - 1
  1815.      Redim tmpList(ListMax)
  1816.      
  1817. 'Initialize all approval statuses to "None" (they must have a non blank value)          
  1818.      For x = 0 To ListMax
  1819.           tmpList(x) = "None"
  1820.      Next
  1821.      note.ApprStatus = tmpList
  1822.      
  1823. 'Initialize all approval dates to yesterday (they must have a date value)          
  1824.      Set dt = New NotesDateTime("yesterday")
  1825.      For x = 0 To ListMax
  1826.           tmpList(x) = dt.LSLocalTime
  1827.      Next
  1828.      note.ApprDate = tmpList          
  1829.      
  1830. 'Initialize all approval comments to ""
  1831.      For x = 0 To ListMax
  1832.           tmpList(x) = ""
  1833.      Next
  1834.      note.ApprComment = tmpList
  1835.      
  1836. End Sub
  1837. ApprName
  1838. ApprovalLogic'++LotusScript Development Environment:2:5:(Options):0:66
  1839. '++LotusScript Development Environment:2:5:(Forward):0:1
  1840. Declare Sub Postopen(Source As Notesuidocument)
  1841. Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
  1842. Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
  1843. Declare Sub Postrecalc(Source As Notesuidocument)
  1844. '++LotusScript Development Environment:2:5:(Declarations):0:2
  1845. '++LotusScript Development Environment:2:2:BindEvents:1:129
  1846. Private Sub BindEvents(Byval Objectname_ As String)
  1847.      Static Source As NOTESUIDOCUMENT
  1848.      Set Source = Bind(Objectname_)
  1849.      On Event Postopen From Source Call Postopen
  1850.      On Event Querysave From Source Call Querysave
  1851.      On Event Queryclose From Source Call Queryclose
  1852.      On Event Postrecalc From Source Call Postrecalc
  1853. End Sub
  1854. '++LotusScript Development Environment:2:2:Postopen:1:12
  1855. Sub Postopen(Source As Notesuidocument)
  1856.      Print "Opening Document"
  1857.      
  1858.      DocWasSaved = False
  1859.      
  1860. 'Instantiate object variables     
  1861.      Set w = New NotesUIWorkspace    
  1862.      Set doc = source
  1863.      Set note = source.Document
  1864.      Set db = note.ParentDatabase
  1865.      Set s = New NotesSession
  1866.      
  1867. 'Turn off AutoReload to speed up response time     
  1868.      source.AutoReload = False
  1869.      
  1870.      If source.IsNewDoc Then
  1871. 'Make sure that the doc was created from the Action, not from the Create menu (the designer might see this while testing)
  1872. 'This is because on a new doc we don't know the form name yet so we don't know which profile to used
  1873. 'The profile name is the same as the form name and is passed in using an Environment variable     
  1874.           DocType = s.GetEnvironmentString("DocType")
  1875.           Call s.SetEnvironmentVar("DocType", "None")
  1876.           If DocType = "None" Or Isempty(DocType) Then
  1877.                Messagebox "This Document must be created via the Create New Request action."_
  1878.                & "  Please remove it from the Create Menus.", 0, "Error"
  1879.                Continue = False
  1880.                source.Close
  1881.                Exit Sub
  1882.           End If
  1883. 'Retrieve the profile and copy all of its items to this document.  These are used to set up the doc and some are
  1884. 'deleted in QueryClose.     
  1885.           Set view = db.GetView("Application Profiles")
  1886.           Set profile  = view.GetDocumentByKey(DocType)
  1887.           If profile Is Nothing Then
  1888.                Messagebox "This application will not execute correctly without an application profile.", 0 + 64, "Design Error"
  1889.                doc.close
  1890.                Print
  1891.                Exit Sub
  1892.           Else
  1893.                profile.RemoveItem("Form")
  1894.                Call profile.CopyAllitems(note)
  1895.           End If
  1896.           FormAdmin = note.FormAdmin
  1897.           If FormAdmin(0) = "" Then note.FormAdmin = db.Managers
  1898.           note.RequesterName = s.CommonUserName
  1899.      End If
  1900.      
  1901. 'Set up global variables     
  1902.      CurrentUser = s.CommonUserName    
  1903.      StatusList = note.StatusList
  1904.      WorkflowObject = note.WorkflowObject
  1905.      PromptTitle = note.PromptTitle
  1906.      MaxApprovers = note.MaximumApprovers
  1907.      RoutingMethod = note.RoutingMethod
  1908.      
  1909. 'Set up defaults          
  1910.      If source.IsNewDoc Then
  1911. 'This needs to be done after the globals are set up               
  1912.           InitializeNewDoc
  1913.      Else
  1914.           note.RemoveItem("Action")
  1915.           note.RemoveItem("SaveOptions")    
  1916.      End If
  1917.      
  1918.      If source.EditMode Then
  1919. 'Reload the data from the note to the document     
  1920.           source.Reload
  1921. 'Refresh the document to reset HideWhens and computed fields               
  1922.           source.Refresh
  1923.      End If
  1924.      
  1925. 'Clear the status bar     
  1926.      Print
  1927.      
  1928. End Sub
  1929. '++LotusScript Development Environment:2:2:Querysave:1:12
  1930. Sub Querysave(Source As Notesuidocument, Continue As Variant)
  1931.      Print "Verifying"
  1932.      
  1933. 'Set DocWasSaved so that QueryClose knows to remove the temporary fields     
  1934.      DocWasSaved = True
  1935.      
  1936. 'If the save was not via an action then we do not need to do this
  1937.      If Not note.HasItem("Action") Then Exit Sub
  1938.      
  1939. 'Get the fields we need     
  1940.      Action = note.Action
  1941.      Status = note.Status
  1942.      ListMax = Cint(MaxApprovers(0)) - 1
  1943.      
  1944. 'Instantiate the date object variable and set it to now
  1945.      Set dt = New NotesDateTime("today")
  1946.      dt.SetNow
  1947.      
  1948. 'This subroutine sets up the variables needed in the other subroutines     
  1949.      IdentifyUser
  1950.      
  1951.      Select Case Action(0)
  1952.      Case "Submit"
  1953. 'If you are resubmitting then remove existing status fields          
  1954.           If (Status(0) = StatusList(4)) Or (Status(0) = StatusList(5)) Then
  1955.                For n = 1 To 5
  1956.                     note.RemoveItem("ApprStatus")
  1957.                     note.RemoveItem("ApprDate")
  1958.                     note.RemoveItem("ApprComment")
  1959.                Next
  1960.           End If
  1961. 'Reset the request date to today and the status to awaiting approval
  1962.           note.RequestDate = dt.LSLocalTime
  1963.           note.Status = StatusList(2)
  1964. 'Set the next approver(s), then expiration and send mail to the appropriate person(s)          
  1965.           SetNextApprover         
  1966.           SetDueDate
  1967.           SendNotification
  1968.      Case "Approve"
  1969. 'Set approval status for the current approver
  1970.           ApprStatus = note.ApprStatus
  1971.           ApprStatus(CurrentApprover) = StatusList(3)
  1972.           note.ApprStatus = ApprStatus
  1973. 'Set approval date for the current approver
  1974.           ApprDate = note.ApprDate
  1975.           ApprDate(CurrentApprover) = dt.LSLocalTime
  1976.           note.ApprDate = ApprDate
  1977. 'Set comment value for the current approver
  1978.           NewComment = note.d_ApprComment
  1979.           ApprComment = note.ApprComment
  1980.           ApprComment(CurrentApprover) = NewComment(0)
  1981.           note.ApprComment = ApprComment
  1982. 'Set the next approver, the expiration and send mail to the appropriate person(s)          
  1983.           SetNextApprover
  1984.           If RoutingMethod(0) = "Serial" Then 
  1985.                If Not LastApprover Then SetDueDate              
  1986.           End If
  1987.           If RoutingMethod(0) = "Serial" Or LastApprover Then SendNotification
  1988.      Case "Deny"
  1989. 'Set the approval status, date, and comment for current approver, remove status qualifier and next approver, and set LastApprover flag
  1990.           ApprStatus = note.ApprStatus
  1991.           ApprStatus(CurrentApprover) = StatusList(4)
  1992.           note.ApprStatus = ApprStatus         
  1993.           note.Status = StatusList(6)
  1994.           note.RemoveItem("StatusQualifier")
  1995.           note.RemoveItem("NextApprover")              
  1996.           LastApprover = True
  1997. 'Set approval date for the current approver
  1998.           ApprDate = note.ApprDate
  1999.           ApprDate(CurrentApprover) = dt.LSLocalTime
  2000.           note.ApprDate = ApprDate
  2001. 'Set comment value for the current approver
  2002.           NewComment = note.d_ApprComment
  2003.           ApprComment = note.ApprComment
  2004.           ApprComment(CurrentApprover) = NewComment(0)
  2005.           note.ApprComment = ApprComment
  2006. 'Send notification          
  2007.           SendNotification
  2008.      End Select
  2009.      
  2010. 'Print this message to the status bar because saving can take some time     
  2011.      Print "Saving"
  2012.      
  2013. 'Reload data from the note to the document (if you do not - what's on the document will overwrite everything we just did)     
  2014.      source.Reload
  2015.      
  2016. End Sub
  2017. '++LotusScript Development Environment:2:2:Queryclose:1:12
  2018. Sub Queryclose(Source As Notesuidocument, Continue As Variant)
  2019.      
  2020.      If (source.EditMode = False) Or (DocWasSaved = False) Then
  2021.           Exit Sub
  2022.      Else
  2023.           Print "Closing"
  2024.      End If
  2025.      
  2026. 'Set the subject field     
  2027.      RequestDate = note.RequestDate
  2028.      RequesterName = note.RequesterName
  2029.      note.Subject = WorkflowObject(0) & " requested by " & RequesterName(0) &_
  2030.      " on " & Format(RequestDate(0), "Short Date")
  2031.      
  2032. 'Remove the Action field and any field that begins with d_
  2033. 'This includes all temporary fields and all display only fields
  2034. '(a backend save will save computed for display fields unless you do this)     
  2035.      note.RemoveItem("Action")
  2036.      ItemList = note.Items
  2037.      Forall n In ItemList
  2038.           If Left(n.Name, 2) = "d_" Or Left(n.Name, 2) = "D_" Then n.Remove
  2039.      End Forall
  2040.      
  2041. 'We reset the author names here because the backend lets you save the doc after you have removed
  2042. 'yourself from the AuthorNames field.     
  2043.      ResetAuthorNames
  2044.      
  2045.      note.save True, True
  2046.      Print
  2047.      
  2048. End Sub
  2049. '++LotusScript Development Environment:2:2:Postrecalc:1:12
  2050. Sub Postrecalc(Source As Notesuidocument)
  2051.      
  2052.      Action = note.Action
  2053.      If Action(0) <> "EditApprover" Then Exit Sub
  2054.      note.RemoveItem("Action")
  2055.      
  2056.      ApprNumber = note.tmpApprNumber
  2057.      i = Cint(ApprNumber(0)) - 1
  2058.      
  2059.      ApprName = note.ApprName
  2060.      ApprFunction = note.ApprFunction
  2061.      ApprWin = note.ApprWin
  2062.      LateAction = note.LateAction
  2063.      ApprStatus = note.ApprStatus
  2064.      note.tmpApproverLabel = "Approver" & ApprNumber(0)
  2065.      note.tmpSource = "ApprovalDoc"
  2066.      note.tmpName = ApprName(i)
  2067.      note.tmpFunction = ApprFunction(i)
  2068.      note.tmpWin = ApprWin(i)
  2069.      note.tmpLateAction = LateAction(i)
  2070.      
  2071.      doc.reload
  2072.      
  2073.      If w.DialogBox("(ApproverInfo)", True, True) = False Then Exit Sub
  2074.      
  2075.      NewName = note.tmpName
  2076.      NewFunction = note.tmpFunction
  2077.      NewWin = note.tmpWin
  2078.      NewLateAction = note.tmpLateAction     
  2079.      
  2080.      ApprName(i) = NewName(0)
  2081.      ApprFunction(i) = NewFunction(0)
  2082.      ApprWin(i) = NewWin(0)
  2083.      LateAction(i) = NewLateAction(0)
  2084.      
  2085.      note.ApprName = ApprName
  2086.      note.ApprFunction = ApprFunction
  2087.      note.ApprWin = ApprWin
  2088.      note.LateAction = LateAction     
  2089.      note.ApprStatus = ApprStatus
  2090.      
  2091.      doc.reload
  2092.      
  2093. End Sub
  2094. p    p    ,
  2095. [`    KX
  2096. K`    ,H
  2097. AuthorizedEditors
  2098.     4S6S
  2099. AuthorizedEditors
  2100.     Request ID
  2101. RequestId
  2102. WorkflowObject
  2103. HeaderTitle
  2104. __________________________________________________________________________________
  2105. Status
  2106. StatusListv
  2107.     4S6S7S
  2108.     Requested By
  2109. RequesterName
  2110. RequesterName
  2111. Status
  2112. StatusListv
  2113.     4S6S7S
  2114.     Requested By
  2115. RequesterName
  2116. d_RequesterName
  2117.     Request Date
  2118. RequestDate
  2119.     Status
  2120. Status
  2121. Status
  2122. StatusQualifier
  2123. StatusQualifier
  2124. Status
  2125. StatusListv
  2126. Status
  2127. StatusListv
  2128.     4S6S7S8S9S13S15S16S
  2129. Paintbrush cann
  2130. this file becaus
  2131.  created using a
  2132.  of Windows earl
  2133.  3.0.
  2134. Save As
  2135.  From
  2136. Copy To
  2137. Save Colors As
  2138. Printing '%s' on
  2139. on %s
  2140. Page %d of
  2141. % donelNot enoug
  2142.  to print.
  2143. more application
  2144. rease available 
  2145.     Requestor    Previous Approvers    Current Approver    Future Approvers
  2146. RequesterName
  2147. d_Requester_1
  2148. ApprStatus
  2149. ApprName
  2150. ApprStatus
  2151. ApprName
  2152. ApprStatus
  2153. ApprName
  2154. ApprStatus
  2155. ApprName
  2156. ApprStatus
  2157. ApprName
  2158.     1S2S6RS19E12S14S15S17S19S26S27RS19E35S38S41S42S44RS24E46S52S55S59S60RS19E68S71S74S75S77RS24E79S85S88S92S93RS19E101S104S107S108S110RS24E112S118S121S125S126RS19E134S137S140S141S143RS24E145S
  2159. tempj
  2160.     0R6S7S9S11Sd_PastApprovers
  2161. NextApprover
  2162. NextApprover
  2163. ApprName
  2164. NextApprover
  2165. d_PastApprovers
  2166.     1S2S8S9S10S12S
  2167.     0R3S4S6S8S
  2168. d_FutureApprovers
  2169. Status
  2170. StatusListv
  2171.     4S6S7S
  2172. Status
  2173. StatusListv
  2174.     4S6S7S
  2175. Paintbrush cann
  2176. this file becaus
  2177.  created using a
  2178.  of Windows earl
  2179.  3.0.
  2180. Save As
  2181.  From
  2182. Copy To
  2183. Save Colors As
  2184. Printing '%s' on
  2185. on %s
  2186. Page %d of
  2187. % donelNot enoug
  2188.  to print.
  2189. more application
  2190. rease available 
  2191. Status
  2192. StatusListv
  2193. Status
  2194. StatusListv
  2195.     4S6S7S8S9S13S15S16S
  2196.     Requester     Approvers
  2197. RequesterName
  2198. d_Requester_2
  2199. ApprName
  2200. d_Approvers
  2201. Additional Information
  2202.     Approver Name
  2203.     Approver Function
  2204.     Due Date
  2205.     Expiration Action
  2206.     Status
  2207. }#D*}#
  2208.     Date
  2209. ApprName
  2210. ApprName
  2211. ApprFunction
  2212. ApprFunction
  2213. DueDate
  2214. ApprWin
  2215.  days
  2216. DueDate
  2217. D0S0V
  2218.     9S10S12S16S17S19S23S
  2219. d_DueDate
  2220. LateAction
  2221. LateAction
  2222. ApprStatus
  2223. ApprStatus
  2224. }#D*}#
  2225. ApprStatus
  2226. ApprDate
  2227. D0S0V
  2228. ApprStatus
  2229. ApprDate
  2230. D0S0V
  2231. ApprStatus
  2232. ApprDate
  2233. D0S0V
  2234. ApprStatus
  2235. ApprDate
  2236. D0S0V
  2237. ApprStatus
  2238. ApprDate
  2239. D0S0V
  2240.     1S2S8S10S11S13S15S21S24S27S28RS15E36S39S42S43S44S45S47RS20E49S57S60S2E64S67S68RS15E76S79S82S83S84S85S87RS20E89S97S100S2E104S107S108RS15E116S119S122S123S124S125S127RS20E129S137S140S2E144S147S148RS15E156S159S162S163S164S165S167RS20E169S177S180S2E184S
  2241. ApprDatej
  2242. ApprDatej
  2243.     0R6S7S9S11S15S
  2244. d_ApprDate
  2245. _________________________________________________________________________________
  2246. Close
  2247. Action
  2248.     1S2S3S
  2249. Edit Document
  2250.     0S0E
  2251. Status
  2252. StatusListv
  2253. AuthorizedEditors
  2254.     4S6S7S8S9S14S18S
  2255. Edit Approver List
  2256. EditableList
  2257. ApprName
  2258. Approver 
  2259. EditAppr^
  2260.     1S2S5S6S8S10S11S12S
  2261. EditWhom
  2262. PromptTitle
  2263. Please choose the approver which you would like to edit.
  2264.     0RR1S2S5S6S8S10S12S16S19S
  2265. tmpApprNumber
  2266. EditWhom
  2267. ApproverG
  2268. EditWhom
  2269. EditWhom
  2270. ApprNamev
  2271.     0RR1S2S3S9S12S18S22S26S
  2272. Action
  2273. EditApprover
  2274.     0RR1S2S3S
  2275. Status
  2276. StatusListv
  2277. RequesterName
  2278. FormAdmin
  2279. EditableList
  2280. EditAppr^
  2281.     5S7S8S9S10S11S12S13S14S15S16S18S19S26S29S30S31S34S35S37S38S39S40S44S45S
  2282. Submit for ApprovalSN
  2283. ApprName
  2284. Entered when submittedG
  2285. PromptTitle
  2286. Please use the "Edit Approver List" button to enter a valid approver name.
  2287.     6S9S15S17S21S
  2288. Action
  2289. Submit
  2290.     0RR1S2S3S
  2291. SaveOptions
  2292.     0R1S2S3S
  2293. Status
  2294. StatusListv
  2295. RequesterName
  2296. FormAdmin
  2297.     5S7S8S9S10S11S12S13S14S15S16S18S19S26S29S30S31S
  2298. Approve
  2299. Action
  2300. Approve
  2301.     0RR1S2S3S
  2302. SaveOptions
  2303.     0R1S2S3S
  2304. CommentsAllowed
  2305. EnterComments
  2306. PromptTitle
  2307.     0RR3S4S6R10S11S12S15S
  2308. NextApprover
  2309. FormAdmin
  2310.     6S9S10S11S
  2311. Deny6
  2312. Action
  2313.     0RR1S2S3S
  2314. SaveOptions
  2315.     0R1S2S3S
  2316. CommentsAllowed
  2317. EnterComments
  2318. PromptTitle
  2319.     0RR3S4S6R10S11S12S15S
  2320. NextApprover
  2321. FormAdmin
  2322.     6S9S10S11S
  2323. View Comments
  2324. DisplayComments
  2325.     4S5S6S
  2326. SaveOptions
  2327.     0R1S2S3S
  2328. ApprComment
  2329.     7S8S
  2330. EnterCommentsEnterComments.
  2331. Application Profiles|ApplicationProfiles^
  2332. Used for lookups and creation of profile docs
  2333. This lists all requests - the columns can be sorted on the fly
  2334. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2335. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2336. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2337. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2338. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2339. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2340. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2341. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2342. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2343. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2344. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2345. DisplayCommentsDisplayComments.
  2346. Sends e-mail when approval date has passed.
  2347. Application ProfileApplicationProfile
  2348. La03[
  2349. (ApproverInfo)(ApproverInfo).
  2350. 19zS+
  2351. (ApproverRetrievalInfo)(ApproverRetrievalInfo).
  2352. This lists all requests - the columns can be sorted on the fly
  2353. VoE!    
  2354. EnterCommentsEnterComments
  2355. Application Profiles|ApplicationProfiles
  2356. DisplayCommentsDisplayComments
  2357. Application ProfileApplicationProfile
  2358. (ApproverInfo)(ApproverInfo)
  2359. (ApproverRetrievalInfo)(ApproverRetrievalInfo)
  2360. EnterCommentsEnterComments
  2361. Application Profiles|ApplicationProfiles
  2362. DisplayCommentsDisplayComments
  2363. Application ProfileApplicationProfile
  2364. (ApproverInfo)(ApproverInfo)
  2365. (ApproverRetrievalInfo)(ApproverRetrievalInfo)
  2366. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2367. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2368. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2369. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2370. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2371. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2372. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2373. CN=Catherine Duffy/OU=NAHQ/O=Lotus
  2374. DisplayCommentsDisplayComments.
  2375. Sends e-mail when approval date has passed.
  2376. Application ProfileApplicationProfile
  2377. La03[
  2378. (ApproverInfo)(ApproverInfo).
  2379. 19zS+
  2380. (ApproverRetrievalInfo)(ApproverRetrievalInfo).
  2381. This lists all requests - the columns can be sorted on the fly
  2382. VoE!    
  2383. $Modified
  2384.     1S2S3S
  2385. $TITLE$FormPrivs$FormUsers$Body$Flags$Class$Modified$Comment$AssistTrigger$AssistType$AssistFlags$UpdatedBy$$FormScript_O$C1$
  2386.     0SL1S
  2387. $TITLE
  2388. Lotus Notes
  2389. CN=Catherine Duffy/O=Iris
  2390. All Requests|All
  2391. Debbie Branco
  2392. Process Past Due Approvals
  2393. ApprovalLogic
  2394. CUAN3
  2395. Next Approver|NextApproverv
  2396. QPPPP
  2397.