Proposal Summary
This proposal outlines the scope of limiting access to customer records for a specified role and a custom import solution for updating customer prices and address. This proposal is based on our discussions, anticipations, and understanding derived from our meetings and other communications. Any additional requirements or updates that arise during the development process will be handled as change requests.
Deliverables
Restrict Customer Edit Access The implementer will lock the entire customer record for specific role (Ajanta Pharma – Pricing & Contracts) by preventing the edit option in customer record. Will implement a customization for locking the customer record for specific role “Ajanta Pharma – Pricing & Contracts”.
Custom Import Option for Customer Pricing List
The client needs a staged import option where a person needs to be involved for inspecting the data before updating the customer prices. This way there will be control over the uploader’s data before going into the system for update. Since this Approval hierarchy cannot be incorporated in standard import assistant, implementor is proposing a custom import solution which is explained below.
Create a Custom Record exclusively for File Upload
The implementer will create a custom record Customer Price List Update type in NetSuite to track the status of each file upload. This record can contain fields like: • Price List File (File Upload Field) • Status (Dropdown: Pending Approval, Approved, Rejected) • Uploader (User Field) • Approver (User Field) • Reject Reason/Approval Comments (Text Field) • Date of Upload (Date Field) Page I 5 This can be done through the NetSuite User Interface.
The implementer will set the custom record navigation for upload the files. Once uploaded, these files will appear on the dashboard for the “Ajanta Pharma – Pricing & Contracts” role users, indicating that each record is awaiting approval/rejected. We can set this in their dashboard view. The approver Arielle/Admin role users can then review and approve the records after manually reviewing files.
Create Approval Workflow for the Custom Record
Now, Implementer will create a workflow where the approver (Arielle or Admin role users) reviews the file, approves it, or rejects it. The workflow should set the custom record’s status to either “Approved” or “Rejected” and trigger further actions based on the outcome. • For approval, change the status to “Approved” and trigger further processing. • For rejection, change the status to “Rejected” and send an email to the uploader. o Approver can add reject reason in the field “Reject Reason/Approval Comments” Field before hitting the reject button.
Send Email Notification on Rejection
If the file is rejected, we need to send an email to the user who uploaded the file.
Process Files with “Approved” Status
When the status of a file upload is set to “Approved”, we can process the file.
Auto delete custom record and imported csv file
After updating the price list for customer, the related custom record entries and imported csv files get deleted from Netsuite.
Custom Import for Customer Address Field Updates
There is no approval process required for Address content update. However, for the “Ajanta Pharma – Pricing & Contracts” role user should have the permission to update the following customer address fields Page I 6 • DEA # • Customer DEA # • Dun and Bradstreet • SBP License Number • SBP Expiration Date
So, implementer suggest going with the custom import option for doing address fields updates on customer records. A separate custom record for the file upload – Customer Address Update will be there. Apart from that all the process remains same, (Except the Approval flow, similar to the custom import for pricing the address import will also work.)
Assumption
- It is assumed that all users who upload files will have the correct permissions to access and interact with the file uploading custom record. • The custom import option and restrictions are only for the “Ajanta Pharma – Pricing & Contracts” role users. • The implementer will take an existing import configuration (identified by the saved import ID: 117) and use it to map data fields from an external file to the Pricing List in NetSuite. The field mapping ensures that the external file’s data is placed in the correct fields within the Pricing List records. So, the fields must be same as field mapping of saved import when upload the files. Field mapping expected as below.
- The assumption is that the uploaded files will be consistent in format and structure.
- The files are supposed to follow CSV format.
- The columns on the files should have all the columns and should keep the same order for all file uploads, suiting the field mapping on the saved CSV Import.
- There is no approval process required for Address content update. The new address content will be updated once upload file for Address mapping.
Scope Limitation
The implementer’s proposal is based on discussions, anticipations, and understandings from conversations and emails between the implementer and the Page I 9 client. Any requirements, changes, or feature developments identified during the development process will be treated as a change request.
Risks
- NetSuite has a file size limit , and uploading large files could cause issues. If many large files are being uploaded, this could lead to storage quota issues.
- There is no fixed time limit for the execution of scheduled scripts. The implementer will run the script every hour, making this the minimum time required for processing. However, delays may occur if multiple scripts are running simultaneously. In such cases, scripts will be executed based on priority. Additionally, delays could arise from the concurrent processing of multiple imports or file uploads.
- The Import Assistant has a limit of 25,000 records or 50 MB per import job. For a multiple file upload, all files combined must be under these limits. You should break large import jobs into smaller chunks to improve performance.
- The item pricing list can only be updated through this custom import solution, and no alternative method such as a standard saved import should be used for making updates to the pricing list. This means that the pricing list cannot be modified through any of the default NetSuite import features. The client is required to use the custom import process specifically designed for updating the item pricing list to ensure that all pricing updates are processed correctly and in accordance with the established import logic.