goojilo.blogg.se

Open text workflow
Open text workflow




open text workflow

open text workflow

the indentation rules for sub-workflows (i.e., how sub-worklows are indented in the func=work.workflows) page are not calculated.ĭespite these minor limitations, the boost in performance and paging control makes it useful in some situations.sorting and filtering by due date is not possible since it's a calculated value and.The interface is identical to RHWorkflowQuery, but all paging, sorting, and filtering is applied at the database level by leveraging the features of RHTableQuery. RHCore addresses these limitations by providing a second class for querying workflows called RHWorkflowQuery2. This might cause problems depending on what the query is being used for. The second limitation is that paging is forced and the page size cannot be changed. Sorting or paging means having to wait minutes again for the page to reload. I've seen the workflow page take minutes to load on systems with thousands of active workflows. The operation works by fetching all workflows that match the query, iterating over each record to perform some calculations, sorting in memory, and only then slicing the result set for paging. Content Server workflow queries do not scale.

Open text workflow code#

Skip error handling for brevity return trueĪlthough RHWorkflowQuery is a RHTableQuery subclass, behind the scenes the query is still executed using the same workflow query functions used by Content Server (i.e., the same code as the func=work.workflows request handler). wforiginalnode ( ) if IsDefined (originalnode ) // Add the latest document version to the original next ( ) ) // Get the original node of the workflow copy Iterate and copy the last version from the WF copy back to the original document while IsDefined (child =children. filter ( 'subtype', '=', $TypeDocument ) // Some variables for the iteration attachmentsFolder ( ) // Get the contents of the attachments folder and filter by documentįrame children = attachmentsFolder. NewFromWorkID (prgCtx, workID, subWorkID ) // Get the attachments folder as an RHNodeįrame attachmentsFolder = wf. tasks ( 1 ) // Save any changes back to the workflow (with the current task as a parameter)ĭynamic extraData = Undefined ) // Create an instance of RHWorkStatusįrame wf = $RHCore. filter ( "isPerformerTask", "=", true ) // Get the task with ID 1 (as a RHWorkflowStatusTask instance)įrame task = wf. filter ( "isCurrent", "=", true ) // get all performer tasks that are currently active setStatus (newStatus ) // get all current tasksįrame currentTasks = wf. manager ( ) // Change the status of the workflow (valid values include // WAPI.WORK_STATUS_SUSPENDED, WAPI.WORK_STATUS_EXECUTING, WAPI.WORK_STATUS_STOPPED, // WAPI.WORK_STATUS_ARCHIVED, & $) attachmentsfolder ( ) // Get the workflow manager as an RHUserįrame manager = wf.

open text workflow

attrdata ( ) // Get the attachments folder as an RHNodeįrame attachments = wf. url ( ) // Get the attribute data of the workflow as an instance of RHAttrDataįrame attrdata = wf. due ( ) // Get the URL to open this workflow statusColour ( ) // Get the due date of the workflowĭate duedate = wf. mapNode ( ) // Get the status colour of the workflow SaveWork (prgCtx, task, workData, work )įrame mapNode = wf. GetItemByName ( 'WFAttributes' ) if IsDefined (obj ) // Iterate the workData and find the workItem for the workflow attributes for workItem in workData LoadTaskStatus (workID, subWorkId, taskID ) īoolean found = false // Get the package for the workflow attributes LoadWorkData (prgCtx, work ) // Fetch the task record for the task id, which we'll need later Function Dynamic MyGeneralCallbackScript ( \ĭynamic extraData = Undefined ) // Get the workData for this workflow






Open text workflow