NetClose - Amortizations Tips and Troubleshooting
Overview
This article collects practical tips for working with NetClose Amortizations, fixes for the issues we see most often, and a reference for the background scripts that run the module. If schedules generated twice, journals didn't post or a catch-up entry is missing, a transfer errored, an initial balance entry didn't create, or you're stuck writing off an amortization, start here.
Tips
Keep your SuiteApp current.
A large share of amortization tickets are resolved by a SuiteApp update. Defects fixed in releases include journals posting but not linking back to the schedule line, the "Could not find eliminating entities" transfer error when representing entities were set up manually, journals no longer consolidating after an update, the Create from Transaction page not loading, and duplicate schedule lines from concurrent generation. Production is updated by Netgain so if you suspect you're behind, contact support.
Don't click Generate Schedule or Run Journals twice.
Most duplicate schedule lines and duplicate journals trace back to a second run kicked off before the first finished - a page open in two tabs, or a second click while the first was still processing. If a schedule already has duplicate lines, fix it with the Amortization Time Machine rather than deleting lines by hand. If you accidentally ran journals more than once for a period, only one journal stays linked to the schedule line; reverse the extra journals (or delete them if the period is still open).
Set the accounts on the amortization type and know that Balance Sheet and Income Statement accounts are required on the amortization record.
The Balance Sheet (prepaid) and Income Statement (expense) accounts flow onto new amortizations based on what's set on the type. For users who prefer that the source transaction drive amortization accounts, they can leave the accounts blank on the type and instead, the system will pull accounts from the source transaction. See NetClose - Create Amortization Types - see note on Account Inheritance.
Change segments with Transfer, not by editing the record.
Department, Class, Location, and subsidiary are locked once an amortization is Commenced. Use the Transfer action to move an amortization to a new segment value. Editing the record and regenerating the schedule can delete your existing schedule lines and unlink already-posted journals - see the warning below.
Set your Default Intercompany Accounts before transferring across subsidiaries.
An intercompany transfer needs the receiving subsidiary to have a representing vendor/customer for the originating subsidiary, and it needs the Default Intercompany Accounts populated in NetClose System Setup. A sandbox refresh often copies these over blank, so a transfer that worked in one environment can fail in another until the accounts are set.
For backdated or catch-up amortizations, check that the target periods aren't locked.
When you backdate a capitalization or start date so the schedule spans closed months, the catch-up journals will not post into a period that NetClose Close Control has locked. The script log shows The record cannot be saved because it is a NetClose Locked Transaction. Unlock the period (or post the catch-up into the current open period) and re-run journals. See NetClose - Lock Transactions & Account Segments.
Source custom fields onto the amortization at the transaction line level.
Amortization sourcing pulls from custom fields visible at the transaction line; it does not read custom segments or transaction body fields directly. To bring over a custom segment or a body value (for example the bill number as the Description), create a custom field for it and make sure it's shown on the transaction form. To source a value onto the resulting journal entry, add the field to the Journal Entry form as well. See NetClose - Amortization Sourcing.
Editing a commenced amortization can delete its schedule and journals
If you edit a Commenced amortization to change a segment (Department, Class, Location) instead of using Transfer, NetClose may set the record back to Pending and regenerate the schedule - which deletes the existing schedule lines and unlinks the journals already posted for the amortization. The journals remain in NetSuite, but re-tying them to the schedule is difficult and not always possible. Always use the Transfer action to change segments after commencement, and make sure the value you're moving to is Active. An inactive Department, Class, or Location also throws a "You have entered an Invalid field value" error when you run journals - if that happens, reactivate the value, use Transfer to move to an active one, then re-inactivate the old value if needed.
Troubleshooting
| Issue | What to check |
|---|---|
| Journals didn't post, a catch-up entry is missing, or the schedule line still shows outstanding after you ran journals | Check:
|
| Duplicate schedule lines, or two journals for one schedule line | Check:
|
| Create from Transaction shows nothing, a blank page, or your bill isn't listed | Check:
|
| An initial balance entry wasn't created | This is expected in some setups, not always a failure. Check:
|
| Transfer across subsidiaries errors ("Could not find eliminating entities" / "must specify an Intercompany Customer or Vendor" / "representing entity cannot be found") | Check:
|
| Amortization stuck in "Modification in Progress," or the Write Off / Modify button is missing | Check:
|
| Journals aren't consolidating - one journal per amortization instead of one combined entry | Check:
|
| A source transaction isn't tagged, or you get "orphaned amortization" warnings | Check:
|
| "This user is not authorized to approve/reject this transaction" on the Approve Transactions page | Check:
|
Viewing Script Errors
Everything the Amortizations module automates - generating schedules, commencing, running journals, creating from transactions, transferring, and the Time Machine - runs as NetSuite scripts. When something doesn't happen, the script log usually says why.
To view logs across all scripts:
- Go to Customization > Scripting > Script Execution Logs.
- Filter Type to Error (and Date to today) to see only failures.
- Read the Details column for the message.
To check a specific job:
- For the Map/Reduce jobs (anything ending in | MR), open Customization > Scripting > Map/Reduce Script Status to see whether the run is Pending, Processing, Complete, or Failed.
- Or open the script directly at Customization > Scripting > Scripts, click the script, open its Deployments, and review the Execution Log subtab.
NetClose writes errors in the form script id | stage | error name: message, so the log tells you which script and which phase failed. For amortizations, the most useful message strings are NetClose Locked Transaction (a locked period), RCRD_HAS_BEEN_CHANGED (a linkage defect fixed in updates), and Could not find eliminating entities (intercompany setup).
When you contact support
Copy the full error text from the Detail column and note the script name, the timestamp, the amortization ID (for example AMRT0104), and the period and subsidiary involved. With the script, stage, and message, Netgain support can pinpoint the cause quickly. To grant access for a support case, see NetClose - Providing Access to NetSuite Account for Support Cases.
Amortizations Module Scripts
These are the scripts behind the Amortizations module. You don't run them by hand - NetClose triggers them from the Amortizations pages or on a schedule - but knowing what each one does helps when you're reading a log or asking support a question. Find any of them at Customization > Scripting > Scripts, searching by the name below.
| Script (NetSuite name) | Type | What it does | When it runs |
|---|---|---|---|
| NetClose | Amort Gen Schedule | MR | Map/Reduce | Generates the amortization schedule (the period-by-period lines) for the selected amortizations | When you click Generate on the Generate Schedules page |
| NetClose | Amort Mass Commence | MR | Map/Reduce | Commences multiple amortizations at once | When you commence from the Commence page |
| NetClose | Amort Run Journals | MR | Map/Reduce | Creates the period journal entries (and initial balance entries) for the selected schedule lines | When you submit the Run Journals page |
| NetClose | Amort Create From Tran | MR | Map/Reduce | Creates amortizations in the background from source transactions and tags the source line | On auto-create, and when Create from Transaction processes a batch |
| NetClose | Amort Time Machine | MR | Map/Reduce | Reverses and replays a schedule to a chosen point - used to undo duplicate lines or roll a schedule back | When you run the Amortization Time Machine |
| NetClose | Amort Approve Tran | MR | Map/Reduce | Approves amortization custom transactions in bulk | When you approve on the Approve Transactions page |
| NetClose | Amort Schedule | MR | Map/Reduce | Maintains amortization records and schedules (create / modify / update / delete) behind the module actions | As you create, modify, or delete amortizations |
| NetClose | Amortization App | SL | Suitelet | Serves the Amortizations pages (list, Create from Transaction, Generate Schedules, Commence, Run Journals, Approve Transactions) | Whenever you open an Amortizations page |
Several user-event and client scripts also run automatically as you work in the module (maintaining the amortization record, schedule lines, modifications, and transaction tagging on save); you won't call them directly, but they may appear in the execution log.
Frequently Asked Questions
| Question | Answer |
|---|---|
| When does NetClose create an initial balance entry? | When the balance needs to move to the prepaid account. If the source bill was coded to an expense account, NetClose posts an initial balance entry to move it to the balance sheet (prepaid) account. If the bill was coded directly to the prepaid account, no initial entry is created - the bill is just linked on the initial balance line. An initial entry is also created when the type uses a debit allocation template, or a clearing account that differs from the balance sheet account. |
| Why do I get "orphaned amortization" warnings, or why isn't my source transaction tagged? | Only Create from Transaction and auto-create write the NetClose Amortization link field back to the source transaction line. Amortizations created through New Amortization or by CSV don't tag the source line, so the link the warning looks for isn't there. Populate the NetClose Amortization field on the transaction (or the amortization journal entry) to clear the warning; for many records a CSV update is the practical fix. |
| How do I remove an amortization without affecting the GL? | Use Write Off, not Delete. Write Off stops the remaining schedule lines without touching journals already posted, so it doesn't change balances for closed periods. Delete requires full permission on native NetSuite journal entries and isn't possible once periods are closed. If Write Off is greyed out, clear the Processing Status field, save, and try again. |
| Can I edit an amortization schedule line directly? | No - treat the Edit button on schedule lines as view-only. It's a native NetSuite sublist button that stays visible, but schedule lines are maintained by NetClose. To change a schedule, use Modify, Transfer, or the Time Machine rather than editing lines by hand. |
| How do I get one consolidated journal entry instead of one per amortization? | Set the Summarize Method (and Enforce Summarize Method) before you run journals - the value in effect when the run happens governs the result. For summarized entries, the Amortization Posting Sourcing records must use Apply To = Line Only, or unique body fields keep the entries from combining. To change months already posted, delete those journals with the Time Machine and re-run. |
| Which report ties amortization balances to the GL for a prior period? | Use the Amortization Roll Forward report and select the historical period - it gives period-end beginning and ending balances built for month-end tie-outs. The Waterfall report shows the current balance view rather than historical period-end values. |
| Can amortization journal entries go through an approval workflow? | Standard amortization journals are native NetSuite journal entries, so they follow whatever JE approval routing you have in NetSuite. If you use custom amortization transactions with approvals, each approver must be listed as a Custom Transaction Approver in NetClose System Setup, or the Approve Transactions page completes without approving anything. |
Still Need Help?
If these steps don't resolve the issue, or you're seeing an error that isn't covered here, contact Netgain support at support@netgain.tech. Include the script name, the error message and timestamp from the execution log, the amortization ID, and the period and subsidiary involved. Keeping your SuiteApp up to date also resolves some issues, since fixes ship in updates.
