Appendix: My Answers to Self-Assessments

Suggested answers

In each chapter in this book, I included questions to get you thinking about how you would handle various situations that might arise while you are helping a company through their NetSuite implementation. Here are my suggested answers to those questions, though these are definitely not the only valid answers. In most cases, you can solve problems in more than one way, and as long as you're thinking about the best solution long term, you should be fine.

Chapter 1

  1. NetSuite's base tier allows most small businesses to run effectively on the system, but when a business processes more than the base number of transactions per month, they should talk to their NetSuite sales team about higher tier levels.
  2. The easiest way to move something custom, such as a search or a role, is with the Copy to Account feature. Once it's enabled in both the source and destination accounts, any administrator can move the object with just a few clicks in the UI. The backup plan should just be to recreate the object manually in the destination account by carefully copying every setting from the source account.
  3. SuiteCommerce Advanced (SCA) is an e-commerce web store that allows customers to purchase items, manage their accounts, and more. SuiteCommerce In Store (SCIS) is a retail store's point-of-sale system, based largely on SCA, but with additional features that make using it in a store, at a register, easier.

Chapter 2

  1. Have you ever tried this and then had to adjust the approach mid-stream? (That's not fun; I don't recommend anyone try this.) There will always be new ideas and approaches to try and tweaking or fine-tuning your methods should be part of any business' continuous improvement program.
  2. This is where your soft skills and good communication play a very important role.
  3. You might have guessed that I would say upfront that I am very strongly in favor of transparency with clients.
  4. There's no single right answer, for each client or each implementation team. Knowing what your contract says and what your company's policies are in advance is key though, so you know how much flexibility you can have in working out solutions that will work for everyone.

Chapter 3

  1. On just one occasion did I work on a project that went exactly according to plan, all the way through. I realized this was happening just before we wrapped it up and found myself amazed at my team and the client too!
  2. Would it be a good idea to tell your client that the project goals you establish at the beginning of the project are set in stone and that these are the only goals you'll have for the entire duration of the project?
  3. We don't always do this on my projects, but I think it's the right idea, as long as things haven't changed on the project so much that the original goals no longer make sense.
  4. We generally avoid this at NetSuite. It generally leads to unrealistic client expectations and problems for the team trying to complete an implementation.
  5. The simplest answer is that you need to make sure those change requests aren't ever being communicated between the client and a consultant. Both project managers need to know about all the changes as they appear so that they can add them to the list and prioritize them, and so on. Then, we let the chips fall where they will.

Chapter 4

  1. I think this company could be described as being in the retail industry, primarily.
  2. Once, I worked with someone who was meant to be the NetSuite evangelist within their company but they resented that their company chose the product over another competing platform. They made every step in the implementation more difficult than it should have been. I worked with them to help them see how NetSuite could help them every day, and then, near the end of the project, we had to have a meeting with senior managers to confirm that the company was going live on NetSuite, that there were no serious problems with doing so, and from that point forward, this person helped us instead of fighting us at every step.
  3. We avoid questions such as my option (1) since they tend to lead us in directions we don't want to go. The question in option (2) is much more targeted, and so better in the long run.
  4. How you document your requirements is up to you – just make sure they're always easily understood by your clients, and in fact, confirm that with them before moving on to configuring the account or creating any custom things to meet requirements. It will help if you have a standardized template with the relevant sections included for each requirement you document.

Chapter 5

  1. We usually recommend they apply the roles that are available in their new NetSuite account to their user groups, without a lot of modifications. This is usually not a great challenge and keeps things moving at the beginning of an implementation.
  2. By the time a user can make a request like this, you and the client should have already defined which people will get the administrator role and why they were chosen. You should be able to tell John whether he meets the criteria for having that role, and if not, help him understand how he will still be able to complete his work, although occasionally he may have to ask someone else with the administrator role to help him with that. Refer him to the actual administrators within the company for follow-ups.
  3. We usually aim to have all of the roles in an account set up properly and assigned to all of the people working there by the day we officially start User Acceptance Testing (UAT). We want people testing their daily functions with the roles in place, limiting them in some cases, empowering them in all others.

Chapter 6

  1. Every NetSuite client starts with just one account and 99% of them should stick with just that. There are many controls available within an account that can limit users and transactions and so on to just one related subsidiary. I've only heard of businesses needing multiple NetSuite accounts when their transaction volume was such that they needed to split up the processing of those records across multiple accounts. This is a very expensive option most businesses don't need and won't want to pay for.
  2. The folks who are acting as the client's account managers, that is, their sales reps, need to know as soon as possible when a change or new requirement from the client might have to be purchased to make it available to them. They can have one of those wonderful commercial conversations about what the new features will cost, how they're supported, and so on with the client next.
  3. Adding a new department is easy enough, but you might also need to make it easy for them to create assembly items, and so track the assembly work via work orders and assembly builds as well. Keep these transactions as simple as possible, just allowing the client to track the costs involved in the process to the extent they need to.
  4. When disagreements arise on a call, especially when they're solely among the client's users and managers, it's a good idea to let them talk it through for a minute or two, hoping a quick resolution can be found, but then find a courteous way to suggest that maybe the subject should be moved to the parking lot and discussed later, on the client's side only, and then a decision can be reached separately.
  5. NetSuite's Help and SuiteAnswers features are goldmines of useful information, all easily searched and located in a variety of ways. If you know what topic you want to explore further, such as was the case in this scenario, go ahead and pop open either screen and refer the folks you're working with to these options so that they can get more information following your meeting.

Chapter 7

  1. NetSuite allows us to first create a customer record and then use an easy-to-miss link on the Relationships tab, creating a vendor for the same entity.
  2. You could create a sub-customer record for each of these people via a fairly quick CSV import. This would allow the client to enter the name of any sub-customer on an order, but then record payments as coming from their parent company. NetSuite puts a hard limit on the number of sub-customers any one parent can have though – 10,000.
  3. Yes, a contact can be associated with more than one customer record.
  4. The furniture company should use the Matrix Inventory type items for this scenario. They will be able to define all the color and fabric options for each matrix parent item and then shoppers in the web store will be able to easily make selections from those varieties.

Chapter 8

  1. One entity can have both a customer record and a vendor record in an account, and those two records can be linked.
  2. Generally, NetSuite doesn't differentiate journals by who entered them. One idea for handling this might be to create a new custom transaction of the journal type and only give the senior accountant permission to create or view these records. Of course, you want to make sure that the client's other senior people know this is going to happen and approve this course of action.
  3. With high transaction volumes, we want to know a few things. What are the average number and the maximum number of lines on these orders? How will these orders be created in the account? (Such a high volume suggests something has been done via some form of automation – CSV Import or integration for instance). Which of the customizations you're planning in the scope of the project need to run for these orders as they're created?
  4. There is no native NetSuite feature that can combine the line items from multiple quotes into one new sales order. Depending on the client's requirements around exactly how those lines should be combined, a script might be developed to meet this need.
  5. If the services company creates the projects first, they can then format their sales orders to include a link field, and thereby link every line on every sales order to a project. If they want this automated, a workflow should be created to set a default value, based on various inputs.

Chapter 9

  1. Generally, the idea of defining thousands of unique kit items with overlapping sets of components seems risky. Without proper maintenance and controls over that process, we could see the volume of data NetSuite is storing explode into an unmanageable mess. One alternative idea would be to set up a couple of custom record types, with one record type defining a custom kit item, and the other record type holding the list of component items used in that kit. Each of the kit items might have an expiration date, allowing the client to say that it shouldn't be used after a certain time has passed. With this, you could allow the client to define the lists of components more fluidly than native NetSuite does, and you could create simple automation to purge expired records from the account once per month (for instance).
  2. We can set up two very different forms for use with these contract and non-contract sales orders and train users on when to select each form.
  3. One approach I've taken in the past is to define a custom free-form text field for storing the PIN, but then use a script to essentially encrypt that value and replace the plain text PIN with the encrypted version in the field. With this, the user will still be able to edit the PIN field whenever they need, but as soon as they save the transaction, nobody will ever see the plain text value in that field again.

Chapter 10

  1. The Sales Center in NetSuite is really just a different skin on the native NetSuite UI. You can customize what sales reps will see via the standard SuiteBuilder elements, including forms and records, and fields as you need.
  2. NetSuite's Calendar, Events, and Activities features are not very commonly used, but using them for this scenario makes a lot of sense. The calendar data will be stored in NetSuite, the central hub for the whole company, and custom views can be created for the calendar, making it easy to use by people who are not otherwise very NetSuite-savvy.
  3. This would be a great case for creating an entire center, list of categories, and links for this warranties and returns solution to occupy. You'll be able to add shortcuts and other links to its contents onto people's dashboards, too, to make it even easier to work with those custom features.
  4. NetSuite allows us to control which transactions are visible in the customer center for our client's customers.
  5. One idea would be to create a search that includes a dynamic filter for the current user and lists just the sales orders waiting for that user to approve them. Once the search is defined, you could add that to the dashboard published to the sales manager's role.

Chapter 11

  1. NetSuite offers a special type of item for downloadables, which makes it easy to offer them from your SuiteCommerce or other web stores.
  2. Yes, the system allows us to control which fields are shown in that popup from the form's definition. You can use the QuickView tab on a custom entry form to control this.
  3. One way to help the warehouse manager with this would be to create a custom version of the forms for each item type, with just the fields they want to be able to edit.
  4. We would usually create these items as non-inventory items and we'd enable the Drop-Ship checkbox at the same time.

Chapter 12

  1. You could create a price level for this, and just set the prices on those items at that level when it's appropriate, but this wouldn't restrict the prices to certain customers. To do that, you need to use the Item Pricing tab on each of those customer records, assigning just the right price for those 1,000 items as you need. You can use the CSV Import feature to manage this easily as well.
  2. NetSuite does support multiple levels of parent and sub-customer records. We can define this nesting up to nine levels deep, in fact, but generally, we'd reserve that for the rarest cases where it really makes sense to do so. Managing that many levels of customers would be relatively difficult, in my experience.
  3. You could quickly show them how to open and update cases in NetSuite, but it might be simpler if you created a much less field-heavy custom record type, associated with the customer record for a starting point. Give that record list just a customer field, a status, and a big Notes field to get the client started, and let them know that they can migrate that data into the native case record when they're ready to after going live.
  4. Native event records already have fields for linking them to companies (customers or vendors), contacts, and transactions.
  5. To update a lot of customer records quickly, you could either set up a CSV import for this, with just the Customer ID field populated in the file and the Sales Rep field set to a default of the new value, or you could use a mass update to make the same change based on a search's criteria.

Chapter 13

  1. We rarely set up separate NetSuite accounts for one business. They will be able to set up as many subsidiaries as they have in their single account and report on them as they need to.
  2. Since the native exchange rate feature tries to update the rates every day, you'll have to find a custom way to update the rates in the account on an annual basis. This is generally not complicated customization; for instance, if your client has a preferred service, the rates can be gathered via the internet.
  3. Scripts written using the NetSuite-provided GL plugin can make updates to the GL impact on transactions. They do not ever change the GL impacts NetSuite wants to apply, but they can then apply additional updates following the native account updates.
  4. Custom payment files can be set up via the Help page, entitled Creating Custom Payment File Templates. You can find help in terms of setting up bank statements in a non-standard format via the page entitled Creating a Bank Statement Parser Plug-in Script File.
  5. Two settings can help with this situation. First, NetSuite allows us to assign permission to a role called Override Period Restrictions. With this, a user having this role can edit transactions in closed accounting periods. There is also a setting on each period called Allow Non-G/L Changes. If this is enabled, users with the aforementioned permission will be able to make changes to transactions as long as the change doesn't change the transaction's GL impact. With either of these options enabled, you should make sure the client understands the impact of changing transactions in closed periods on financial and other reporting and that they know what their company's policies are for this sort of thing.

Chapter 14

  1. A normal purchase order will suffice for this situation, although you'll use it to purchase service items instead of inventory or other item types.
  2. This seems like a good case for using a special order in NetSuite since the company won't be purchasing the customized item for most of their customers.
  3. A vendor prepayment in NetSuite can either be set up for use with a single purchase order or with none, but it can't be linked to a set of POs. This is because the system will try to auto-apply the prepayment to the PO when the vendor bill is recorded later on.
  4. The user can edit the vendor bill in question and select the Recalc button there to correct the Transaction does not balance error.
  5. One option would be to just train the users on the native screens and to customize the forms to make sure they're as simple as possible. Another option would be to create a custom script that auto-creates a return from selected lines on a PO, but that should not be your go-to solution in cases such as this.

Chapter 15

  1. The client whose orders consist of various physical and service type items could use quotes to record the sale before it's finalized with the customer. With this, they can track how confident they are in the sale and other similar details, up until they're ready to make the sale official. They could use the Order Guides SuiteApp from NetSuite to have the system remember sets of items that are frequently sold together.
  2. With unusual requests such as this from a client, the first thing you must do is to understand all of the ways these items and their sales differ from the sales of physical items. In this scenario, I might suggest that the school use non-inventory items for setting up the digital books. They can sell them via sales orders and so on, or they could use the Download Item type, if they want to be able to sell and allow users to download the books themselves, directly.
  3. First, set up the shipping items on that screen, enabling whatever cost amounts are appropriate. Then, enable the Charge for Shipping preference and set a shipping cost on each item as is appropriate. On sales transactions, users can then use promotions or manual edits to control the shipping charged to the customer for each order.
  4. I would suggest checking out the native Invoice Grouping feature. It's easy to enable and users can be trained on its configuration and use in a relatively short time. Of course, a client should then test it quite a bit as well, with a wide variety of invoices, to ensure they're getting the right results prior to going live if possible, or immediately after, otherwise.
  5. When this kind of request comes from a client, first, we like to understand exactly which of the steps we've shown the users seem like they're onerous. Once we clearly understand where the complaint is coming from, we can usually make tweaks to the records or the process, to make them more user-friendly. For instance, if the business managers and accountants are OK with this, we could have the users skip creating return authorizations in some cases and go straight to creating credits only. If the users want even more of the process to be streamlined, we might offer to create a script that can automate some of the steps in the process.

Chapter 16

  1. First, as always, we start by understanding the process the users follow and the client's requirements for tracking that gift basket assembly work in NetSuite. If it's clear they need to do more than just record the outcome of the work, then we can enable the manufacturing transactions (work order, assembly build) and train the users on their creation, maintenance, and reporting. If we can get away with something simpler though, a custom transaction might just suffice.
  2. They could use purchase contracts to track the expected per-month flat rate they'll pay the truck rental company in advance. Or they can just record the expense on a purchase order as it occurs. They might like to create custom transactions though if they want to see these rentals show up separately on their financial reports.
  3. Generally, since a feature such as Knowledge Base is very simple and most clients can learn to use it on their own, we might just point the systems' admins to screens, give them a quick tour of the features available there, and then let them run with the setup and configuration and the importing of Knowledge Base articles on their own.
  4. A custom transaction type would be a good fit for this scenario, since having this would keep the transactions separate from native transactions and the client could control access and perform reporting separately, as they like. Another alternative idea though would be to just add a custom field to the native transactions (purchase orders, for instance) and have that field set to a specific value when the record represents one of these "beta" transactions.

Chapter 17

  1. You could set up Saved Search, using the client's criteria, and then schedule it to run as often as is needed. On the Email tab of that search, you can set up the email settings so the results will be sent out each time it is executed.
  2. SuiteAnswer #28923 describes a way to create a saved search to replace this report, with the filters set up so that you can split up the details just as required for this scenario.
  3. To share a workbook on a set of users' dashboards, first, create the workbook and set its permissions as you want so that the roles have access to view it. Then, set up the dashboard so it includes a portlet with the workbook enabled and configured as you like.
  4. To send the client's data immediately to their external partner, consider creating a server-side script that runs as those records are created or execute saved searches, and sends the data out. For the records that can be sent in batch mode, use the SuiteAnalytics Connect service, and write queries to pull sets of records back from NetSuite into the external service.
  5. This can be a challenge in a test environment because we don't have all of the client's users working to create new data yet (as we will once they go live). We still need to test the performance of connections like this though, so explore how you can create a lot of test data in a short time via tools such as CSV Import. Use Excel to help auto-populate records with repeating values, for instance, to save time in creating lots of similar but unique-enough records for this kind of test.

Chapter 18

  1. This is a good case where just knowing how all of the native features work and what options they support can help you avoid talking about customization with a client. In this case, NetSuite supports an auto-apply feature that works just as described, and users working on the payment screen can use that whenever they like by clicking a button.
  2. Yes, you could create a SuiteFlow that will use the value in their custom gross profit field to set the value of the native commission field, based on whatever calculation you need to use.
  3. For this Charge record customization, User Event scripts would be a good choice because they run as soon as the charge is saved into the system and NetSuite will perform the updates you need quickly at that moment. There's no limit to the number of records that could be saved and processed by a User Event script in this context. The only disadvantage to this type of script would be that users will always have to wait for it to complete its process every time a charge is created. On the other hand, a Map/Reduce script (which works in batch processing mode) could be scheduled to run late at night. Users won't see the updates made by the script while they work, but, at the same time, they won't have to wait any extra time for that processing to occur either.
  4. The simplest way to include the customization documentation in NetSuite would be to just save the files into the file cabinet and tell users where to find them. You could go a step further, however, by creating Knowledge Base articles, one for each custom solution you implemented, documenting the details directly in that record, and also attaching the relevant document to the same place.
  5. Deploying custom forms is always tricky in that they contain a lot of settings, and users expect them to work just exactly the way they've tested them prior to going live. One way to avoid upsetting the client would be to use the SuiteBundler or the SuiteCloud Development Framework (SDF) features to deploy the forms to the production account with unique names and IDs. This way, the client's team can compare what you imported to the forms they already have in the account and update their forms to account for any differences they choose to keep.

Chapter 19

  1. First, research the external expense tracking system and ask the company that makes it whether they already have any integration with NetSuite. If they do, it should be available as a SuiteApp, so use that. If they don't, then look for other manual processes the client's users could follow to share data between NetSuite and the expense app. In many cases, if the volume of data is not too high, users can quickly find a way to use CSV files to move data back and forth as needed – and so still go live on schedule.
  2. When a client indicates that an integration will need to support a very high volume of data in its transfers, we need to ask questions about whether that data is really needed in NetSuite (you'd be surprised how often it turns out to not be needed), and what purpose it will serve in the system. Assuming it is needed, then we ask questions about how often these transfers will take place and how many NetSuite records will be created in each case. If these are transactions, we ask about both the number of the records and the number of lines on each. We can then look for the best-performing way to meet the integration requirements.
  3. You'll still need to work with the five users, get them used to performing their tasks, and so on, but otherwise, this implementation will be all about the integration. Most of your conversations will be technical in this scenario, but you'll still need a combination of functional and technical expertise on your side to make sure that as all of the integration's development and testing take place, the accounting team will be happy with the results.
  4. With a little practice, we can use Excel and the NetSuite CSV Import feature to create a lot of test data in an account in a short time. In this scenario, you just need to create enough data to fulfill the "every 15 minutes" requirement, so work with the client to figure out how many transactions that might be and create those when you're ready to run the SuiteAnalytics Connect test.
  5. When a client asks for help that your company doesn't have expertise in, it's usually enough for you to point them in the right direction. In this case, that might mean helping them understand the skill set they're looking for so that they can then begin a search online or among their peers for another developer who can help them finish their project.

Chapter 20

  1. Generally speaking, this is why we have contracts in the first place – so that misunderstandings should either not ever happen or be very rare. If the sales team member who drafted the contract is still available, set up a call with them and the client and see whether the wording in the contract can be straightened out. If that's not an option, work with your company's managers to come up with an alternative plan that will get the client what they need – and charge them whatever is appropriate for the additional work.
  2. It's a good idea to give the client a data migration planning document before the actual data import work begins, and that usually includes formatting tips for fields such as these. Beyond that kind of proactive assistance, you can also suggest that the client report each error to you, and then you can provide a specific idea on what they need to change in their source data to fix those errors. Encourage them to work on a process they can apply to all of their import files from that point forward, to avoid seeing these errors from the CSV Import process.
  3. Generally, as long as you don't think the client is intentionally avoiding doing the work themselves, you should work with your company's managers to find a way to assist the client and get them live. There is some risk in your team helping with this, especially if they'll need to make configurations or other choices in setting up a production account that they're not familiar with. Make sure the client is aware of each and every decision that is made this way so that their users can follow up and make corrections/changes where needed, soon after going live.
  4. If your team was responsible for this customization, you need to help clean up the database with the client's help if that's required. You can look at using the Mass Update feature, with a saved search targeting the incorrect records. But in most cases, with a transaction such as journals, it will probably be faster to create a search first, export those results, change the data in Excel (or any other spreadsheet application), and then use a CSV import to update the existing records in the account. Use that same search (with its carefully designed criteria) to look for any new records showing the same problem for as long as you have to until the customization is updated to resolve the issue once and for all.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.233.222