Posts

Who are the A-Team? (Components of Artificial Intelligence explained to a 9 year old)

In simple terms, here are the elements (with jargons) that creates what we know today as AI (Generative): 1. The Giant Library (The Data) What it is: The first step is the Training Data. This is like every single book, article, story, website, and conversation the AI has ever read—which is a huge amount of the internet! Job: This data is the food for the AI brain. It teaches the AI how humans talk, what things mean, and how sentences are put together. Jargon: Data: Just a fancy word for information. Training Data: The specific information the computer uses to learn. 2. The Super Student (The Model) What it is: The main structure of the AI, like a very organized school in the computer. It’s called a Large Language Model (LLM). Job: This student doesn't just memorize the data; it finds patterns. It learns that after the words "Once upon a," the next word is probably "time." After reading billions of examples, it gets really, really good at guessing the most likely...

SuiteScript : Track Original Transaction (the Copied From)

Image
Script Difficulty: 💚 💚 💚 Ok, so have you ever wonder if a transaction is copied or created from scratch?  And if it is copied from another transaction, well, where did it come from originally? In this exercise we have a client script that tracks your records as the users process the transaction in such a behavior.  The user start out by opening an existing record then clicking "Make Copy". The script kick off a series of validation checks and grabs its original transaction and dump it in a customer field (Type record).  The administrator (or power user) can later run a report base on this field for audits. If the transaction is not copied (meaning it is created from scratch) then the custom field will left blank.  In essence, if you see a non-blanks in this tracking custom field, you know it is a copy. The solution does a one pass check (it will only check as far back as one copied at a time).  If  the record has already make multiple copied passes, you ...

Troubleshoot : Purchase Order did not Auto Generate for Drop Shipping

Image
Issue: You have created a Sales Order that includes one or more Drop Ship item (item record that has the checkbox Drop Ship enabled) > Save. You expectation is that NetSuite will automatically generate the Purchase Order on the dropship items for you.  This is standard NetSuite drop ship behavior. What actually happened is it didn't, you still have to manually Drop Ship it from the CREATE PO sub list column. You don't have custom script or workflow running on sales orders. Resolution: CHECK your item setup for Purchase Price. CHECK your item setup for Preferred Vendor. CHECK your item setup for Subsidiary of Preferred Vendor matching your Subsidiary of Sales Order. CHECK your sales order is Approved. If the standard behavior is not working, it is most likely due to the item setup.  Focus on item setup and go from there.

SuiteScript : Defaulting Tax Code at Line Level

Image
Script Difficulty: 💚 Here is a time where you would like to set the tax code at the line level to select a certain tax.  This is an alternative solution to demonstrate that you can consider scripting to implement at the line level.  The solution also combined with a control point visible to the user for triggering of the script actions. Exercise goal: for all Invoices, have a custom checkbox that controls the triggering of setting tax code to NoTax to every line and override the tax to zero at save. Create a new custom checkbox and give it a good name, in our case it's Wipe Tax.  Set the checkbox's internal ID to custbody_wipetax .  Customization > Scripting > Scripts > New Script Under Script File field, upload the JavaScript  > Create Script Record > User Event Give it a good name. Under Script tab, set BEFORE SUBMIT FUNCTION to userEventBeforeSubmit . Under Deployments tab, apply the script to Invoice.  Give a good deploy name, set Deploy...

Saved Search Build : Find And Replace Substrings

Image
Build Difficulty: 💗💗💗💗 The time has come that you need to find certain string in the column and replace it with a hard-coded ones.  Additionally, we are combining this search & replace with a nested comparison logic. Exercise goal: look at the Posting Period and replace with the first of the month instead of of the abbreviations in the results.  For example, transform from "Feb 2022" to "2-1-2022". TRANSACTION search CRITERIA Posting = T RESULTS Document Number Formula Text = "CASE WHEN REGEXP_SUBSTR({postingperiod},'\A\w\w\w\s')='Jan ' THEN REGEXP_REPLACE({postingperiod},'\A\w\w\w\s','1-1-') WHEN REGEXP_SUBSTR({postingperiod},'\A\w\w\w\s')='Feb ' THEN REGEXP_REPLACE({postingperiod},'\A\w\w\w\s','2-1-') WHEN REGEXP_SUBSTR({postingperiod},'\A\w\w\w\s')='Mar ' THEN REGEXP_REPLACE({postingperiod},'\A\w\w\w\s','3-1-') WHEN REGEXP_SUBSTR({postingperiod},'\A\w\...

Saved Search Build : Just the Posted Transaction Lines

Image
Build Difficulty: 💗💗 This one is for when you like to get only the posting lines that are created or approved within the x amount of days as specified.  These will be in the GL accounts and you should not be seeing any sales order, purchase orders, and requisitions.  Also, you should not see any unapproved transactions. TRANSACTION search CRITERIA ( Type is Journal OR Main Line = F ) AND (( System Notes : Field = Posting Period AND System Notes : New Vale is not empty AND System Notes : within 5 days ago and 1 days ago ) OR ( Posting = T AND Date is within 5 days ago and 1 days ago )) RESULTS Internal ID Document ID Date Period Account : Number Type Amount Word of Wisdom In this example the x day is set to 5, obviously you may interchange this as you wish. When posting period is not empty it would imply posting is true. Journals do not have the notion of main lines.  In fact, if you try to look for main line in journals you will see return of null value (this is also a ...

Saved Search Build : Full Licensed Users Last Sign In

Image
Build Difficulty: 💗 This one is for when you would like to find out the last successful login of a full licensed user.  If a full licensed user have not login for a while, you can probably take them out to repurpose it for another user.  This also helps so you do not have to purchase additional user subscriptions. EMPLOYEE search CRITERIA Login Audit Trail : Status = Success Role : Center Type != Employee Center RESULTS Name (Group) Login Audit Trail : Date (Maximum) Role (Count) Word of Wisdom The performance of this can get slow when you get a larger set of data, in particular, large amount of users with frequent usage (in such case, you might want to consider filtering the audit dates).  Note that this search accounted for how many full licensed roles the user currently have.  It is when the administrator removes all full licensed roles then the provision is released back.

Saved Search Build : Employee Center Users Last Sign In

Image
Build Difficulty: 💗 This one is for when you would like to find out the last successful login of an employee center licensed user (also refer here as an employee user).  If an employee user have not login for a while, you can probably take them out to repurpose it for another user.  This also helps so you do not have to purchase additional user subscriptions. EMPLOYEE search CRITERIA Login Audit Trail : Status = Success Role : Center Type = Employee Center RESULTS Name (Group) Login Audit Trail : Date (Maximum) Role (Count) Word of Wisdom The performance of this can get slow when you get a larger set of data, in particular, large amount of users with frequent usage (in such case, you might want to consider filtering the audit dates).  Note that this search accounted for how many employee licensed roles the user currently have.  It is when the administrator removes all those roles then the provision is released back.

Procure to Pay

Image
P2P (Procure to Pay) is the blueprint of how a company conduct the entire supply chain process.  This is a business process that describes the mechanism and the obligation of the company in order to complete the transaction.  This touches the Account Payable portion of the business which impacts expense.  Aside from the sales process, this is another area where you can expect the company generate a lot of its data in NetSuite.  The design of P2P process in NetSuite look like this... Purchase Order For a lot of companies, it starts out with a Purchase Order (to get to a new PO you can global search 'Enter Purchase Order').  A Purchase Order record is a non-posing transaction in NetSuite and there are a few key data points that you will need.  The subsidiary is the first key entry as you can have more than one company doing business through NetSuite.  The vendor you are getting the supply from will be required.  Of course, there is the items that yo...

Saved Search

Image
Search can get bored, but when you found something meaningful, it gets exciting.  Data is growing in your NetSuite by the day, it will be useful only if you can extract out of it and put them in a way that is useful.  NetSuite provides many ways to consume data, and one powerful tool is called the Saved Search. In case you haven't notice, when you look at transaction record in NetSuite (it can be Sales Order, Item Fulfillment, Return Authorization, Purchase Order, Invoice, etc) you should see that there is a notion of a header level then a sub list (line) level data point.  This is important when you are creating saved searches, or any search.  A tip in creating saved searches is to keep a record type open in a new tab so you can reference the data point as you are setting it up. My prefer way of starting out a new saved search is global search 'new saved search'.  I usually tell users that one of the ways you can think of saved search is that you are working wi...

Order to Cash

Image
O2C (Order to Cash) is the blueprint of how a company conduct the entire sales process.  This is a business process that describes the mechanism and the obligation of the company in order to complete the transaction.  This touches the Account Receivable portion of the business that impacts revenue.  This is also easily one of places where the organizations start to generate most of its data in NetSuite.  So, here is the breakdown of the process in more detail... Sales Order NetSuite designed the O2C process by starting out in a non-posting Sales Order record (to start creating sales order you can global search 'Enter Sales Order').  In the sales record, there are a few major data points worth pointing out.  The obvious is the subsidiary the customer is buying it from, keep in mind that you can have more than one company doing business through NetSuite (you might not now but in future times).  Next is the customer who is making the purchase.  Then ...

Global Search

Image
Global Search is the input bar on the top of you every NetSuite page.  You can think of it as the Google for your NetSuite environment and there are some cool things you can do to save time! Add prefixes to your search, the first three letter follow by a colon (:) is telling NetSuite to filter transaction type on the spot.  Here is an example: sa:119012 results in This is telling the search to filter to the sales order number. inv:325689 results in This is telling the search to filter to invoice number. Here is a cheat sheet for the abbreviations. To show all inactive records in the global search you can append the plus sign (+) at the end of the string text.  For example, em:33150+ To search using wildcard you can insert the percentage signs (%).  For example, if you type in Jack% H%le, you would get Jackson Hole in return, if there is a record of such.  The trick can also be applied in Saved Search filters. Combined search is possible when you insert OR in bet...

Field Help (and Fields) and Help in General

Image
In NetSuite, you will notice that there are fields everywhere on a record page.  The fields are attributes that tracks a particular piece of data for that particular object.  Fields can be system-defaulted or custom.  Some fields can behave differently than others.  For instances, the quantity subfield in an item record is system calculated and it cannot be changed on the record page, instead, it has to be done through adjustments.  Most fields you see can be edited and some are locked.  There are business reason behind why certain fields are locked vs open and that would largely depend on your company's decision. One tip to keep in mind is that every field label is also a link that loads up a pop-up help window.  Some pop-up may be blank and that may due to your administrator have yet to put anything in for it.  Most default NetSuite field would have a field help filled out.  When used properly, field help can be a good source of documentati...

Breaking It Down : User Licenses Provision

Image
There are two types of user licenses: Full Licensed versus Employee Center.  Full Licensed is the type that can access everything restrictive to their roles.  Employee Center, on the flip side, is a heavily stripped down version, it is very limited in what it can do in NetSuite.  Due to this design of the license types, they are typically billed at a different price point. There is a one-to-one relationship between license type and center type in a role. Roles are consider as Full Licensed if they are not Employee Centers. Still sounds confusing? Here is a way you can find out if you have a login that consumes full licenses or not. Open an employee record > go to Access subtab > click into a role > look at the Center Type field.  If you see anything other than Employee Center then user is consuming a full license.  Otherwise, if you see Employee Center then user is not.  If the user has more than one roles assigned, you will have to check into all ...

NetSuite What?

Image
For most people, it's pretty much known as a giant website which you can login with an email then start transacting from there. NetSuite is an ERP software in the cloud.  Enterprise resource planning software, ERP, is essentially a business management tool that support business operations of all sizes and shapes.  NetSuite is a subscription based software that comes pre-built with a number of business solutions already as well as providing fully customizable kits to manage special business processes. At the center of all is a single source of data that captures the handling of AP, AR, CRM, Inventory, etc. just to name a few and funnel them into Accounting.  At the time of this post, NetSuite offers the following major modules: Financial Customer Relationship Management Inventory/Order Management Commerce Human Resources Professional Services Automation Supply Chain Within each major module it has its own additional package to choose from.  In additional to the major ...