Configuring the Parallel Approval of Material Declarations

You can enable parallel approval of received Material Declarations. This functionality uses a Master Job that manages subjobs, where each subjob performs the approval of a Material Declaration. When this functionality is configured and a user selects multiple Material Declarations on the Received Material Declarations page, a parallel Material Declaration background job is created when the user clicks Done. Users can use the Background Jobs page in Collaboration and Approvals to track the progress of the job and access the log.

See Also
Configuring Properties
  1. Create or open the text file to contain customized properties. For more information, see Editing Properties Using MQL.
  2. To enable parallel approval of material declarations, follow these steps:
    1. Add or edit this line in the file used to import properties into a page object:

      emxMaterialComplianceCentral.enableParallelBulkMDApproval

    2. Set the value for this property to true. To disable parallel approval, set the value to false.

      For example:

      emxMaterialComplianceCentral.enableParallelBulkMDApproval=true

  3. To enable notifications to the owner of background jobs when the parallel MD approval completes, follow these steps:
    1. Add or edit this line in the file used to import properties into a page object:

      emxMaterialComplianceCentral.Bulk.MD.Approval.subjob.notifyOwner

    2. Set the value for this property to true. To disable notifications, set the value to false.

      emxMaterialComplianceCentral.Bulk.MD.Approval.subjob.notifyOwner=true

  4. To define the number of master jobs allowed to run at the same time, follow these steps:

    Important: The chemSHERPA import also uses this property for its master jobs.

    1. Add or edit this line in the file used to import properties into a page object:

      emxMaterialComplianceCentral.ParallelProcessing.NumberOfConcurrentMasterJobs

    2. Set the value for this property to an integer value. You can change this value to a higher integer. When that number of Master Jobs have been created and are running concurrently and a new Master Job needs to be run, the new job is queued until the number of jobs falls beneath this value, and then the next Master Job is started.

      emxMaterialComplianceCentral.ParallelProcessing.NumberOfConcurrentMasterJobs=2

  5. To define the number of subjobs allowed for each master job, follow these steps:
    1. Add or edit this line in the file used to import properties into a page object:

      emxMaterialComplianceCentral.ParallelProcessing.NumberOfJobsPerMaster

    2. Set the value for this property to an integer value. The number of jobs per master property determines how many subjobs can be created for each master job, and the defaults is 10 (value must be greater than 1). The master job is included in the count (that is, a master job with 3 subjobs has a total of 4 "jobs"). If the emxFramework.BackgroundProcess.NumberofThreads property in emxSystem.properties has a lower value, that lower value is used.

      emxMaterialComplianceCentral.ParallelProcessing.NumberOfJobsPerMaster=15

  6. When finished updating the text file with all properties you want to modify, including the ones shown here, use the text file to modify the emxMaterialsComplianceCentral.properties page object. For more information, see Editing Properties Using MQL.
  7. To configure the timer servlet to support parallel approvals, follow these steps:
    1. Open the web.xml file for editing.
    2. If not already done, enable the timer servlet by adding the following lines.

      Note: The timer servlet is usually enabled when configuring Materials Compliance Management to monitor input folders (for more information, see Enable the Timer Servlet. If they are already defined, you do not need to re-enter them.
      <servlet id="Servlet_19">
      <servlet-name>TimerServlet</servlet-name>
      <servlet-class>com.matrixone.servlet.TimerServlet</servlet-class>
      <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping id="ServletMapping_16">
      <servlet-name>TimerServlet</servlet-name>
      <url-pattern>/servlet/timer/*</url-pattern>
      </servlet-mapping>
      Note: Make sure there isn't already a servlet id="Servlet_19", or "ServletMapping_16" in the web.xml file. If there are, use the next number available for each id. These numbers are simply identifiers, so it does not matter what they are but they cannot be duplicated in the file.

    3. If the timer agent has not been defined yet for Materials Compliance Management, enter these lines:

      <context-param id="ContextParam_MCM_MasterJobs_1">
          <param-name>ematrix.timer.agent</param-name>
          <param-value></param-value>
      </context-param>
      
      <context-param id="ContextParam_MCM_MasterJobs_2">
          <param-name>ematrix.timer.agent.key</param-name>
          <param-value></param-value>
      </context-param>
      
      <context-param id="ContextParam_MCM_MasterJobs_3">
          <param-name>ematrix.timer.interval1</param-name>
          <param-value>5</param-value>
      </context-param>
      
      <context-param id="ContextParam_MCM_MasterJobs_4">
          <param-name>ematrix.timer.command1</param-name>
          <param-value>execute program jpo.materialscompliance.MaterialComplianceCommon -method pollMasterJobs</param-value>
      </context-param>
      

    4. In the above entries, edit the username, password, and timer interval values between the corresponding <param-value> and </param-value> tags. The interval value is in seconds.

      For ematrix.timer.agent, enter the username of the configured system administrator.

      For ematrix.timer.agent.key, enter the password for the above username, if there is any. Use the password from the database, and not from the external authentication (such as 3DPassport) used to log into the web apps. For the creator user, for example, there is no password.

    5. Save the web.xml file.
    6. If you updated the web.xml file in the STAGING directory, run the warutil to create the archive files that include the updated web.xml file, then copy the enovia folder from distrib to the Application folder.