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.

Troubleshooting

IssueWhat to check
Journals didn't post, a catch-up entry is missing, or the schedule line still shows outstanding after you ran journalsCheck:
  • The target period isn't locked - a backdated or catch-up entry fails with NetClose Locked Transaction | PERIOD ... | Locking Reason when Close Control has locked that period/subsidiary. Unlock it, or post to the current open period, then re-run.
  • The Script Execution Log for NetClose | Amort Run Journals | MR (see Viewing Script Errors) for the actual error.
  • If the journal posts but the schedule line still shows in Process Journals (the log shows RCRD_HAS_BEEN_CHANGED), update to the latest SuiteApp - that linkage defect is fixed in current versions.
Duplicate schedule lines, or two journals for one schedule lineCheck:
  • Whether Generate Schedule or Run Journals was triggered twice - a second run started before the first finished (or the page open in two windows) is the usual cause; the script log will show two creation entries.
  • Fix duplicate schedule lines with the Amortization Time Machine; if the record is still Pending, re-generating the schedule clears them.
  • For duplicate journals, only one stays linked to the schedule line - reverse the extras with a journal entry, or delete them if the period is open.
  • You're on the latest SuiteApp - a concurrency defect that produced duplicate schedule lines is fixed in current versions.
Create from Transaction shows nothing, a blank page, or your bill isn't listedCheck:
  • The bill falls inside the date range on the Create from Transaction page - historical bills outside the default range won't appear until you widen it.
  • The transaction line has an amortizable expense account and hasn't already been turned into an amortization or removed from the queue.
  • If the page is blank or modules look greyed out ("NetClose Free"), the Amortizations module may be disabled or the SuiteApp out of date - check NetClose Global Settings > Is Enabled Amortizations, or contact support to sync the license or update.
An initial balance entry wasn't createdThis is expected in some setups, not always a failure. Check:
  • Which account the source bill hit. If the bill was coded to an expense account, NetClose creates an initial balance entry to move the balance to the prepaid (balance sheet) account. If the bill was coded directly to the prepaid account, no initial balance entry is created - the bill is simply linked on the initial balance line.
  • Whether the amortization type uses a clearing account - an initial entry is also created when there's a debit allocation template, or when a clearing account differs from the balance sheet account.
  • If the bill hit an expense account but the balance stayed there, report it to support with the amortization ID.
Transfer across subsidiaries errors ("Could not find eliminating entities" / "must specify an Intercompany Customer or Vendor" / "representing entity cannot be found")Check:
  • Default Intercompany Accounts are populated in NetClose System Setup - a sandbox refresh often copies these over blank.
  • A representing vendor/customer exists in the receiving subsidiary for the originating subsidiary. Native NetSuite representing entities (Setup > Company > Subsidiaries) are recommended.
  • If a NetClose Sourcing record is set on vendors with line-only impact, it can overwrite the intercompany entity lines - inactivate that sourcing, run the transfer, then reactivate it.
  • You're on the latest SuiteApp - a fix for NetClose not picking up manually created representing entities shipped in a release.
Amortization stuck in "Modification in Progress," or the Write Off / Modify button is missingCheck:
  • Open the record, Edit, under System Information clear the Processing Status field (leave it blank), Save, and wait for the action button to reappear, then re-attempt. The Processing Status field now lives under the System Notes tab.
  • Only one modification per amortization per period is permitted - if June is still open, a second modification waits until July.
  • Balance Sheet and Income Statement accounts must be populated for the write-off to save.
  • If it still won't process, a leftover (even inactive) Modification record can stay linked and block it - support can remove the stale modification.
Journals aren't consolidating - one journal per amortization instead of one combined entryCheck:
  • The Summarize Method and Enforce Summarize Method selected at the time you run journals - the setting in effect when the run happens governs the result.
  • Amortization Posting Sourcing records use Apply To = Line Only - otherwise the script sees unique body fields and won't combine the entries.
  • You're on the latest SuiteApp - consolidation behavior changed in an update; on current versions, choose the method that gives one entry for your setup, and to change already-posted months, delete those journals via Time Machine and re-run.
A source transaction isn't tagged, or you get "orphaned amortization" warningsCheck:
  • How the amortization was created - 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 do not tag the source line, which is what produces orphaned-amortization warnings.
  • To clear a warning, populate the NetClose Amortization field on the source transaction line (or the amortization journal entry); for many records a CSV update is the practical fix.
  • The Amortization Type and NetClose start/end date fields are never written back to the line - they only appear if someone set them before saving. If those fields don't show on your bill form at all after install, customize the form to display them, and confirm the transaction line field has "Expense" checked so it lands on the Expenses subtab.
"This user is not authorized to approve/reject this transaction" on the Approve Transactions pageCheck:
  • The user is listed as a Custom Transaction Approver (NetClose System Setup) when custom amortization transaction approvals are enabled - the page runs Complete but approves nothing if they aren't.
  • Whether custom amortization transaction approvals were recently turned on (System Notes on NetClose Global Settings) - a user who could approve under a prior workflow needs adding as a custom transaction approver.

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:

  1. Go to Customization > Scripting > Script Execution Logs.
  2. Filter Type to Error (and Date to today) to see only failures.
  3. 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).

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)TypeWhat it doesWhen it runs
NetClose | Amort Gen Schedule | MRMap/ReduceGenerates the amortization schedule (the period-by-period lines) for the selected amortizationsWhen you click Generate on the Generate Schedules page
NetClose | Amort Mass Commence | MRMap/ReduceCommences multiple amortizations at onceWhen you commence from the Commence page
NetClose | Amort Run Journals | MRMap/ReduceCreates the period journal entries (and initial balance entries) for the selected schedule linesWhen you submit the Run Journals page
NetClose | Amort Create From Tran | MRMap/ReduceCreates amortizations in the background from source transactions and tags the source lineOn auto-create, and when Create from Transaction processes a batch
NetClose | Amort Time Machine | MRMap/ReduceReverses and replays a schedule to a chosen point - used to undo duplicate lines or roll a schedule backWhen you run the Amortization Time Machine
NetClose | Amort Approve Tran | MRMap/ReduceApproves amortization custom transactions in bulkWhen you approve on the Approve Transactions page
NetClose | Amort Schedule | MRMap/ReduceMaintains amortization records and schedules (create / modify / update / delete) behind the module actionsAs you create, modify, or delete amortizations
NetClose | Amortization App | SLSuiteletServes 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

QuestionAnswer
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.


Was this article helpful?