Introduction StormGeo
Storm Geo, a leading player in weather intelligence and operational decision support and part of Alfa Laval, delivering high-quality weather forecasts to its customers worldwide. StormGeo is the industry leader in weather intelligence and ship routing services. More than 12,000 ships rely on StormGeo software or services for navigational planning, route optimization, weather and fleet performance. The company has 550 employees, 27 offices in 15 countries, including six 24/7/365 global operations centres.
Project Introduction
StormGeo has implemented NetSuite, utilizing a NetSuite OneWorld account that includes eight subsidiaries, including the parent and elimination entities. Integration between Salesforce and NetSuite has been established for one-way data transfer through Celigo, where data is transferred from Salesforce to NetSuite. Currently, Salesforce is used for CRM, order management, pricing, and subscription management.
StormGeo primarily uses NetSuite for invoicing, procurement, and finance. They utilize the Suite Billing module for subscriptions, which automatically creates records through scripting once data is received from Salesforce into NetSuite on an “Order Sync” custom record. Most transactions are recorded in NetSuite for the Dubai subsidiary.
Current flow of process

Challenges
- The transfer of orders from Salesforce to NetSuite is completed, with activation occurring immediately. However, processing in NetSuite takes time, regardless of whether the order has a single line or multiple lines.
- The system is not creating a single invoice for multiple charge types.
- When it comes to upsell and down sell transactions on the same order, the system creates a new subscription instead of updating the existing one.
- A consolidation report in Euros cannot be created due to the different currencies of the parent subsidiary.
Solutions Provided
To provide the best solution to optimize the performance of NetSuite, Saturo leveraged their experience and knowledge in a process that allows StormGeo to transfer multiple lines of data efficiently.
- Analyse Current Setup: We began by analysing the current setup of NetSuite, starting with classification, chart of accounts, item master, tax setup, and master setup. Following this, we examined the Suite Script, Suite Bundle, and workflows. Through a comprehensive analysis of the setup, configuration, and customization, we identified the root cause of delays in order processing, which was three scripts running on order processing.
- Eliminating Schedule delay: To eliminate schedule delays, the process involved three scripts, each initially scheduled to run at 15-minute intervals. Significant time savings were achieved by modifying the process so that each script would call the next two scripts upon completion, instead of adhering to the original 15-minute schedule.
- Shifted Record Processing from Map to Reduce Phase: Initially, record processing was handled in the Map phase, which was not optimal for performance. We restructured the script to shift record processing to the Reduce phase. This change leveraged the Reduce phase’s capability to handle large data sets more efficiently, resulting in a significant reduction in execution time and better resource management.
- Removed Unwanted Multiple Debug Statements: The original scripts contained numerous debug statements used for troubleshooting during development. While useful for debugging, these statements can slow down script execution and clutter log files if not managed properly. We identified and removed all unnecessary debug statements, streamlining the code and improving performance without compromising diagnostic capabilities.
- Removed Unwanted Loops: A thorough review of the script logic was conducted to identify and eliminate redundant loops. Unnecessary iterations through data can greatly increase execution time and resource consumption. By refactoring the code to remove these unwanted loops, we reduced computational overhead and improved overall script efficiency.
- Removed Unnecessary Functions: Several functions in the scripts were redundant or not required for the current functionality. These unnecessary functions added to execution time and code complexity. We carefully analysed the script, identified, and removed these functions, simplifying the codebase and enhancing performance.
- Optimized Multiple Searches by Using Common Saved Searches: The original scripts utilized multiple searches called repeatedly, leading to inefficiencies and increased execution times. We consolidated these repeated searches into common saved searches, reducing the number of search executions and minimizing redundant data retrieval operations. This optimization decreased script execution time and improved code maintainability.
- Above 50 Line Level Optimization: Initially, the script exceeded the limit for processing up to 50-line records, causing usage errors. To address this, we rescheduled the same script when a usage error occurred. As a result, the script can now efficiently process about 200-line records in just 6 minutes.
- Real-Time Data Processing: Previously, the data transfer into NetSuite had to wait until the first scheduled script run. Now, the process has been optimized to start automatically as soon as the data is transferred, eliminating any delay.
- Handling Multiple Line Level Data: To manage data exceeding 60 lines and reduce data loss, we introduced a sleep function. This adjustment allows the orders to be ready before processing and ensures smoother processing for large data sets.
- Simultaneous Multiple Record Activation: When clients activate multiple orders simultaneously, each containing more than 200 lines, some orders would activate while others showed bundle ID errors. To resolve this, we created a search function to identify and handle bundle ID errors. By automatically unchecking the order processing checkbox and restarting the process, we ensure that multiple orders can be activated simultaneously without issues.
By implementing these changes, Saturo was able to significantly optimize NetSuite performance for StormGeo, ensuring a more efficient and streamlined data transfer process.