Design TechnicalService Design and ImplementationScreen Flow DiagramLayout 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 screenUser schedules a batch job for a given data and timeBatchProcessJobManager 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 dbThe 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 profileThe 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
1)A call is made to the getBatchJobInfocanPerformBatchImport( int processIdprincipalId) 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 listA 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 datamake 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.to get what kind of job to be executed. 2)And it will perform Batch Import validations.and based on process type it will call BatchProcessBibImport class of factory patern. 3)This class is having getNextBatchOfData(marcFileContent) which will read the marc file content and fetch the list of records from uploaded marc file. 4)This method gather the number of records of marcFileContent, user entered data and batchProcessProfileId. 5)then controller set the total number of records to that particular job. 6)if job status is running then it will write the data and update the job information 7)it will check the number of records count and chunk size. 8)update the record details and job details.
Service ContractsService Implementation |