Proposal Summary
This proposal encompasses the development for the approval process flow for Bill of Materials. The objective is to create a workflow that effectively presents and organizes the approval process for Bill of Materials
Requirements
Xseed Education has expressed the desire to implement an approval flow for its Bill of Materials (BOM) due to the existing issue of unrestricted access that allows users to alter and edit BOM records freely.
To address this concern, an investigation should be conducted to determine the feasibility of introducing an approval flow for the creation and editing of BOM records.
Deliverables
We will deploy two workflow and a suitelet script for the approval process of BOM record.
- · Deploy a workflow to the approval process in the BOM record.
- · Deploy a workflow to lock the Bill of Material revision record when the BOM is locked.
- · Deploy a suitelet script to add the pop-up to enter the rejection reason and mail sending action to the creator.
We will add the custom list field named as Approval Status in the BOM record with pending approval status as default. The custom list field Approval Status contains the values Pending approval, Approved by Approver 1, Approved, and Rejected.
The Approval status field will be disabled (not editable) in the BOM record. If the status is pending approval, approved by Approver 1 or Rejected, the BOM will be inactive.
We will add four custom fields
- o Created by (To identify the user who created)
- o Approved by (To identify the approver in each level of approving)
- o Rejected by (To identify which approver rejected as there are two levels of approving)
- o Rejection Reason
1. When the BOM record created or edited by the creator,
- · An email with the record link is sent to the approver 1 (Shikhar Khanna) to review and approve the record.
- · The record will be locked for all users except Standard Admins.
2. The Approve and Reject button on record will be available for the approver to approve and reject the BOM record.
3. If the first level approver (Shikhar Khanna) clicks the Approve button, then
- · The Approval Status field of the record is updated to Approved by Approver 1.
- · The custom field Approved by field set as First approver name.
- · An email will be sent to the Final approver (Varun Verma) with the record link to review and approve the record.
- · The record will remain locked for all users except Standard Admins
4. If the Final level approver (Varun Verma) clicks the Approve button, then
- · The Approval Status field of the record is updated to Approved.
- · The BOM record is set to active when the status is set to Approved
- · The custom field Approved by field set as Final approver name.
- · An email will be sent to the creator (Prateek) that the BOM is approved.
- · The record will be locked for all users except Standard Admins.
5. If the approver clicks the Reject button, we will include a rejection option that allows to inform the creator why the approver rejected it.
- · A pop-up suitelet page opens using the script. We can enter the rejection reason in the popup and submit it.
- · The Approval status field of the BOM record updated to Rejected. An email will be sent to the creator of BOM record with the Rejection reason.
- · The Rejected by field set as the user who rejected the approval.
- · The Rejection Reason field set the reason for the rejection.
- · The record will remain locked for all users except creators and Standard Admins.
6. The creator can edit the record when the status is Rejected and save the BOM record again. Then the approval status will be changed to pending approval.
7. Repeat the same process from step 1.
We will create another workflow to lock the Bill of material revision when the Bill of Material is locked for all user except standard Admins. The Bill of Material revision will be able to edit by the creator only when the Bill of material is in Rejected status.
Assumptions
- · We will add the custom list field named as Approval Status in the BOM record with pending approval status as default.
- · The custom list field Approval Status contains the values Pending approval, Approved by Approver 1, Approved, Rejected.
- · We assume that the BOM will be inactive upon creation and modification by the creator.
- · If the status is in Pending approval, Approved by Approver1 or Rejected, the BOM will be inactive. The BOM record will not be able to select in any transaction when the BOM is having status Pending approval, approved by Approver 1 or rejected.
- · We will add four custom fields: Created by (To identify the user who created), Approved by (To identify the approver in each level of approve), Rejected by (To identify which approver rejected as there are two levels of approving) and Rejection Reason
- · We will add Approve and Reject button in the BOM for Approver 1 and Approver 2.
- · We will send email to creator and approver in each stage of the approval process.
- · When the approver clicks the Reject button, a pop up will open to enter the reject reason.
- · We believe that the BOM record will be active when the status is set to Approved.
- · We assume that the approval process of Bill of Materials is user specific.
- · We believe that the BOM will be locked for all users except Standard Admin when the status is set as Approved.
- · We believe that the BOM record will be editable for the creator when BOM is in Rejected Status.
- · We assume that whenever the creator (Prateek) updated/edited the BOM record, the BOM status changed to Pending approval and it should be inactive and follow all the process of BOM approval to make the BOM as active and approved.
- · The Bill of Material Revision record will be locked for all user except Standard Admin when the BOM is locked.
- · The Bill of Material revision will be able to edit by the creator only when the Bill of material is in Rejected status.
Limitations
· When the approval process of BOM is user specific, if the user is removed or terminate, it will effect the working of approval process.
· When a record locked for a particular roles or users, it will not be able to unlock the record for those users.