Overview
When creating timesheets using SuiteScript, an issue has been observed where the hours are formatted as HH:MM, but NetSuite interprets these values incorrectly. This results in unexpected errors, particularly when handling cases where the minutes exceed 59.
Understanding the Issue
NetSuite expects time values in decimal format (e.g., 1.5 for 1 hour 30 minutes). However, if time is provided in HH:MM format, the problem arises when the minutes exceed 59, causing NetSuite to interpret the value incorrectly.
When Does the Issue Occur?
- Time entries such as
1:00,2:05,2:30are accepted without any issues. - The issue arises for times like
2:40,1:50, or any entry where the minutes approach or exceed59.
Examples of Incorrect Interpretations
- 1:980 (1 hour, 980 minutes)
- NetSuite first considers
1as an hour. - Then,
980 minutesis converted into hours (980 ÷ 60 = 16 hours 20 minutes). - The final result is
1 + 16 = 17 hours 20 minutes, which is incorrect and can lead to system errors. - 1:98 (1 hour, 98 minutes)
- NetSuite attempts to process
98 minutes, which is more than 59 minutes. - Instead of correctly converting it to
1 hour 38 minutes, it treats it as an invalid entry, causing an error. - 1:50, 1:49, 1:40 Not Being Accepted
- Although these values seem correct, NetSuite may still reject them.
Solution Implemented
To resolve this issue, the SuiteScript logic has been updated to:
- Convert
HH:MMformat into decimal hours before passing the value to NetSuite.
- Formula:
Total Hours = HH + (MM ÷ 60) - Example:
1:50 → 1 + (50 ÷ 60) = 1.8333 hours
- Ensure that minutes do not exceed
59before conversion. - Validate all time entries before submission to prevent errors.
Conclusion
The unexpected errors were caused by incorrect handling of time values where minutes exceeded 59. By converting the HH:MM format into decimal hours before submission to NetSuite, this issue has been resolved, ensuring proper timesheet processing without errors.