The goal of this guide is to provide help debugging issues that may arise with the connection to NetSuite.
Contents:
- Why isn't this transaction/document exporting out of NetSuite? Why do I see the transaction in NetSuite, but it isn't in Logicbroker?
- Why did this transaction/document fail to export to Logicbroker?
- How can I see which transactions are failing to export to Logicbroker?
- Why is this document failed in Logicbroker?
- I'm trying to resend a document into NetSuite, but it's failing to import because of a duplicate error. What do I do?
- Can I see the actual JSON that NetSuite is trying to send to Logicbroker?
- How can I add temporary debug lines to a script so I can see what it's doing?
- I'm testing a new trading partner, but orders won't pull into NetSuite.
- Why can't I install the bundle on this customer's account?
- How can I identify which fields are required on a NetSuite transaction?
- My Field value in a KVP is throwing a "Please Enter Value(s) for..." Error
- Netsuite is throwing an Error about Missing Subsidiary
- When a shipment imports into NetSuite, the tracking number doesn't appear (or the shipment is in Picked status)
- Could not identify a customer associated with LB order (no COID assigned in NetSuite)
Why isn't this transaction/document exporting out of NetSuite?
Why do I see the transaction in NetSuite, but it isn't in Logicbroker?
Go to the transaction in NetSuite. On the Logicbroker tab, check the Logicbroker Export Status. Is it Failed? If so, see the answer in this guide to "Why did this transaction/document fail to export to Logicbroker?"
If the Logicbroker Export Status says Not Exported, that means NetSuite is not recognizing it as something to export. There may be something missing from the criteria the script looks for, or the job may not be running at all. Check the following things:
- Has the export job run yet since the document was created? You can see when the transaction was completed by checking the System Information tab. Most jobs probably run hourly, so if it was just created, give it until the next hour.
- Is the job running at all? Something may have happened to the scheduling, or if it is only in staging, verify that you are manually running the correct job. Check the corresponding script deployment in NetSuite. It will start with "Logicbroker Send _____" depending on the document type that isn't exporting. Remember the scripts are written from the NetSuite side, so send means send to Logicbroker and pull means pull into NetSuite. Is the script deployed? Does it say it is scheduled? If you click on Status Page (right column under SEE INSTANCES) is there anything there?
- Once you have determined the job is running and exporting other transactions of the same type, ask: What is the criteria this job looks for? Is this document meeting it? You can use the detailed script functionality article to help determine what the script looks for, or check the code itself. In general, documents in the supplier flow must have an Order Logicbroker Key on the Logicbroker tab in order to export, and shipments (Item Fulfillments) must have at least one package tracking number under the Packages tab. If the job is running, but the transaction is still Not Exported, it must be missing criteria so keep looking!
- If you're truly stumped, a last resort can always be making a temporary Transaction Saved Search in the UI (under Lists > Search > Saved Searches > New) to replicate the exact search criteria found in the code. Take away one criteria at a time until the transaction appears in the search result. This will show you exactly what criteria is missing.
Why did this transaction/document fail to export to Logicbroker?
Since we are dealing with failed exports to Logicbroker, it means that document was never created in our system. However we can still see the reason why by checking in the Logicbroker Portal under Message Center > Events and filtering on Summary contains "Failed to export". For ease, here is the link in stage and production. Once here, click "View" to find the event associated with a particular failed export. It should have the reason it failed. If it looks like it was just a fluke, you can reset the Logicbroker Export Status in NetSuite to Not Exported and try again.
In terms of actually deciphering the error message, that is a little harder to say. Many times, it's acutally our own API validation. Sometimes, however, it's a NetSuite error message. If it is just a message like "The host you are trying to connect to is not responding" or "Record has been changed", just reset the Export status to Not Exported and try it again.
How can I see which transactions are failing to export to Logicbroker?
Good news! There's a handy Saved Search for exactly that. In the NetSuite search bar, search for "Logicbroker Failed Exports" to find it. This page shows all transactions in NetSuite with a Logicbroker Export Status of Failed. If it's got no results, that's perfect. The results on this page can also be set up to get emailed out every morning to specific NetSuite users (unfortunately only users, not just any email address). To set this up, see the article on the Checklist for proper configuration.
Why is this document failed in Logicbroker?
Well, that's hard to say. Always check the "Failed?" error message in COMB.
- If there's nothing in it or it says error retrieving data, it was an API blip, just reset the document.
- If it says "You must enter at least one line item for this transaction” (shipments) that means NetSuite is transforming the Sales Order, but then can't find ANY items that match in our shipment lines. It could be an issue with kit items, where a parent is on the transformed item fulfillment in NetSuite, but the child items are on our Shipment.
- If it says "You must have at least one valid line item for this transaction" (shipments) that means NetSuite cannot transform the Sales Order into an Item Fulfillment. There is something wrong on the Sales Order that is preventing that from happening. Unfortunately, it is VERY difficult to pinpoint the cause, because it could be anything, and could be different each time. If there aren't many, it may be easier to manually close them out in NetSuite and simply complete them on our side. Hopefully it will work itself out as errors are discovered with how things are set up.
I'm trying to resend a document into NetSuite, but it's failing to import because of a duplicate error. What do I do?
The duplicate checking in the NetSuite connector looks for any other documents in NetSuite with the same Logicbroker Key. What that means is that no matter what you change on the document in Logicbroker, it will still be considered a duplicate in NetSuite if it has the same Logicbroker Key.
Have the customer delete the transaction in NetSuite (or delete it yourself if you have NetSuite access) and then you can reset the document in Logicbroker.
Can I see the actual JSON that NetSuite is trying to send to Logicbroker?
Yes! It used to be a whole process, but now it is very easy. When a document fails to export to Logicbroker, it will create a failed event in our system with a link to the failed JSON (also found under Files > Attatchments in the portal). The JSON in that attachment is the exact JSON that attempted to send to our API.
How can I add temporary debug lines to a script so I can see what it's doing?
Navigate to the relevant script file's page. This is accessible from the deployment page, in the SCRIPT field, or from the list of scripts under Customization > Scripting > Scripts.
Do not enter edit mode. Instead, click the "Edit" button next to the script file. This will open a web editor for the file.
From there, you can add debug statements using the following format:
log.debug({title: 'debug line title', details: 'My debug message'});Then save and exit the editor, and run the script to see the outcome in the execution logs.
NOTE: Be aware that when you click to save the script in the editor, it WILL change for the scheduled deployment. So especially if doing this in a production environment, be sure to remove the code afterwards to ensure that everything continues working as usual.
I'm testing a new trading partner, but orders won't pull into NetSuite.
If this is not the first trading partner being set up (as in, the proper fields have been set up in business rules already for other trading partners), check if the company has actually been set up in NetSuite, including adding a Company ID on the Logicbroker tab of the record. It may be running into an issue trying to create the customer in NetSuite. That feature is primarily there to create records for end customers, not trading partners with company IDs.
Why can't I install the bundle on this customer's account?
The customer may be getting an error like "You have not been granted access to the bundle." If that is the case, make sure we have added their account ID to our list of pre-approved accounts. See the article Steps to install our bundles on a customer's account. Then head over to the Bundle Access article and add them to the list to keep track.
If that doesn't work, check if somehow the bundle already got installed. You can uninstall it and reinstall it again if something isn't right, otherwise your work is done! To check if the bundle is already installed, navigate to Customization > Suite Bundler > Search & Install Bundles > List. If you see our bundle(s) on that list, it has already been installed.
How can I identify which fields are required on a NetSuite transaction?
The fields that are required vary per transaction type and form. Customers may be using custom forms, or may change which fields they require, so unfortunately it isn't uniform. To determine which fields are required on a certain form, the easiest way is to start from a transaction that uses that form, hover over Customize and click Customize Form in the upper right hand corner.
Alternatively, if you know the form name, you can access the customization page directly by navigating to Customization > Forms > Transaction Forms and editing the form.
Once on this page, select the Screen Fields tab. This has multiple subtabs, representing the tabs you see on that transaction. The Main tab contains body fields, the Items tab contains items fields, etc. Each of these subtabs will have a column labeled Mandatory, indicating which fields are required on the form. Not all of these will be things that need to be mapped in business rules, but some may be. It's hard to say exactly which fields those will be, since the customer may have workflows/scripts running that already autopopulate some of these required fields. Always communicate with the customer to ensure you know which fields need to be populated by Logicbroker and which do not.
ALTERNATIVE: What if I don't see a customize tab/button?
If you and/or your NetSuite contact do not have access to this customization page, the only alternative I see is to navigate to a transaction in NetSuite that uses the form in question, click the edit button, and take note of all the fields with the "required" asterisks next to them. This includes all item level fields and subtab fields. The "Custom Form" field is the name of the form being used.
My Field value in a KVP is throwing a "Please Enter Value(s) for..." Error
Error:
Failed to import order into NetSuite
Details: Please enter value(s) for: <Field>
If you are trying to set this value through a KVP, make sure that you use the netsuite field ID for this field, instead of using the actual value.
I.e Department dropdown, the options show as: Corportate, AI, Sales, etc. But in the KVP you will need the netsuite internal ID
Netsuite is throwing an Error about Missing Subsidiary
Please enter value(s) for: Subsidiary
If you encounter this error, make sure that the LogicbrokerCOID is setup under the customer within Netsuite.
When a shipment imports into NetSuite, the tracking number doesn't appear (or the shipment is in Picked status)
The tracking number can't be put on a Fulfillment Request unless it is in Shipped status.
There are a couple fixes if the Item Fulfillment is importing as Packed:
- Turn off Pick, Pack, Ship by navigating to Setup > Company > Enable Features, clicking on the Transactions tab, and scrolling down. Make sure your client is ok with this choice.
- Set the default status on Item Fulfillment creation to be Shipped by navigating to Set Up Shipping (search for the page in NetSuite's search bar) and select Shipped as the Default Item Fulfillment Stage. Make sure your client is ok with this choice.
- You may be able to set the status using a KVP on the shipment with name shipstatus and value C but this has not been verified.
Could not identify a customer associated with LB order (no COID assigned in NetSuite)
Check if the customer that you are expecting this order to belong to has an address entered in NetSuite. Currently, this is a requirement for the bundle.
Switch to the new editor for more editing tools.
Management permissions
Administrators
Agents and admins
•
Comments
0 comments
Please sign in to leave a comment.