Design Technical
Service Design and Implementation
Screen Flow Diagram
Layout use cases based on the screen flows indicating navigation between different screens and pop-ups.
Security
- Roles – list of roles to be defined
- Permissions – list of permissions to be defined
- User Profiles – user profiles that may be applied roles/permissions (also for test/mock purposes)
Rules
- Context & Agendas
- Terms & Prepositions
- Sample XML file
Component Design
- State Chart Diagram
- Psuedo Code
- User creates a batch profile using the options provided in batch profile screen
- User schedules a batch job for a given data and time
- BatchProcessJobManager will perform the job scheduling by calling scheduleJob(ScheduleJobBo bo) method. The schedule information (storeds as cron expression) and the job information is stored in db
- The Quartz scheduler which is configured in KRMSLocalSpringBean.xml calls the BatchProcessManager.execute(int processId) method.
- BatchProcessManager will load the profile(BatchProcessProfile) created by user based on the process id supplied and call the factory class to create BatchProcess instance.
- The BatchProcessFactory creates the appropriate BatchProcess instance based on the processType in the profile
- The processBatch(BatchProcessProfile profile) is called to perform the batch process as per the profile information provided by the user.
- BatchProcessExportData
This batchprocess is involved in performing export of bib / intance information based on the profile provided by the user. It has the following methods:batchExport(BatchProcessProfile profile)
This method is passed the BatchProcessProfile and writes its output to the filesystem. It is the method used for scheduled exports. It should function as follows
- A call is made to the getBatchJobInfo(int processId) to get the current job info which executed the processBatch()
- updateBatchProgress(BatchProcessJobBo jobBo) is called to updated the job running status to started and start time.
- A call is made to the batchExport(BatchProcessProfile profile) method passing the profile information.
- The needed values are pulled out of the profile information.
- exportFilterCriteria - What exportFilterCriteria to use. The exportFormat is read from the exportFilterCriteria
- exportType - Full or Incremental
- exportId (processId)- Used for saving the incremental dateTime.
- exportFileTo - The directory and file name format.
- writeReportTo - The directory and report file name.
- chunkSize - Max number of records per file.
- staffOnly- If staffOnly records should be included.
- updateLeveInfo - bibOnly, instance.
- If the export is incremental
- Get the last export dateTime for the exportId
- save the current dateTime exportId pair.
- call getSolrDocList(BatchProcessProfile profile) to get the solr doc list
- A call to updateBatchProgress(BatchProcessJobBo jobBo) is called to updated the total number of records to be processed.
- if there is more than one chunk split the solr results based on the number of chunks data
- make a call to ExportService.getExportDataBySolr using the exportFormatProfile and one set of solr results which were split as per the chunk size.
- If isMarc21 is true convert the returned MarcXML to Marc21.
- Write the returned XML or Marc21 from the export service to files using the exportTo variable.
- call the updateBatchProgress(BatchProcessJobBo jobBo) passing the jobBo which contains the current job information updated with records processed, % processed and time spent.
- If there is more chunks make the next call to the ExportService.
- Create the Report in the location provided in the profile.
- updateBatchProgress(BatchProcessJobBo jobBo) is called to updated the job running status to completed and end time, total records processed, % processed and time spent.
Service Contracts
Service Implementation