When finished is not quite finished

2026-10-23 · 35:15 · English

Emma and Alex follow late freight into inventory costs, distinguish failed jobs from unfinished business work, check financial-report arithmetic, diagnose outgoing calls and find a useful document-language default.

A Business Central podcast from ITrators, with AI-generated conversations between Emma and Alex.

The conversation at a glance

In this episode

With Alex & Emma

Transcript

This transcript follows the approved script. Timestamps mark measured scene starts, not precise individual turn or topic-change times.

Scene start 0:03

When freight arrives after the sale

Emma

Welcome to Central Perspectives, a Business Central podcast from ITrators. I'm Emma, here with Alex. We're AI hosts, and our scripts and voices are AI-generated. Today, a freight invoice arrives after the goods have been sold, and a background job reports an error after part of the work has already succeeded. We'll follow those loose ends, check what a financial report's totals can actually prove, and finish with two useful distinctions for integrations and document language. Some are established capabilities worth knowing; others arrived earlier this year. Now, let’s get started.

Emma

Let's start with a company that buys a shipment, receives it, and sells some of the goods. Then the freight invoice arrives. The sales team has already looked at the margin, so a late bill is more than a bit of extra paperwork. Microsoft's item-charge guidance describes assigning that separate invoice to posted purchase receipts. Alex, what does that connection achieve that simply recording a freight expense would not?

Alex

It gives the cost a route back to the goods it belongs to. An item charge adds value associated with the original item entry; it doesn't receive another shipment. That matters because part of the cost may belong to inventory still on hand, while part belongs to goods already sold. Cost adjustment can carry a change in the incoming cost through to the related outgoing entries. So the useful question isn't only, have we booked the supplier's bill? It's also, have we attributed it to the right goods, and has that changed cost reached the relevant sales?

Emma

Then let's make the shipment a little awkward. It contains small, expensive components and large, inexpensive containers. The freight bill covers both. Splitting it by purchase value would put most of the freight on the components, even though the containers occupy most of the truck. The standard suggestions include amount, weight and volume, as well as an equal split. I can see several defensible numbers already. How do we choose without making the margin tell whichever story we prefer?

Alex

I'd start with what the carrier is charging for, rather than which suggestion is easiest to select. If occupied space is the meaningful driver, volume could be more useful than purchase value. But that only helps if the item records have usable volume information. A beautifully calculated split based on missing or misleading measurements isn't an improvement. And if the invoice includes a fixed handling charge as well as transport, one simple basis may not describe the whole bill. The business needs a defensible allocation policy; Business Central supplies ways to apply it, not a universal verdict on fairness.

Emma

That makes volume less of a magic button. Suppose the company has never maintained those measurements because purchasing didn't need them. I wouldn't want someone to invent dimensions on Friday afternoon just to get an invoice out of the way. Is an imperfect but understood allocation better than a supposedly precise one nobody can explain?

Alex

Yes, provided the people responsible for the costs agree what the chosen basis represents. I'd rather see an explicit, reviewable judgment than false precision. For that mixed shipment, compare the suggested splits before posting and ask what each would do to the two product groups. If a modest change in basis moves a meaningful amount of margin between them, the decision deserves attention. If the difference is immaterial, the company may reasonably prefer a simpler consistent method. That is a business judgment to document, not a reason to build a new freight system before using the standard assignment.

Emma

Let's keep the person entering the bill in view. They've agreed the basis, but the freight invoice isn't the original purchase invoice. The receipt is already posted. The action we're talking about is Get Receipt Lines inside Item Charge Assignment, so the starting point is the charge and the goods it belongs to. What would you want them to check before accepting the distribution?

Alex

First, that these are the receipts covered by this particular freight bill. A familiar supplier or item number isn't enough if several deliveries look alike. Then check the quantities being assigned and the resulting amounts. If only part of a purchase order arrived on this shipment, the allocation should reflect the actual delivery covered, not automatically everything the company ordered. Finally, inspect the proposed split itself. The suggestion saves arithmetic, but the person still needs to recognize the goods and the commercial situation. That's where a correct total can otherwise hide a wrong assignment.

Emma

Now the uncomfortable part for our sales team. Those goods were sold last week, and someone used the margin to decide whether the price was good enough. If the late charge belongs to that shipment, leaving the old sales cost alone would make the sale look better than it really was. Does the fact that the sale is already posted prevent the extra cost from reaching it?

Alex

No. Updating the cost of historic sales is part of what cost adjustment is for. It follows the relevant cost relationships, according to the item's costing method, and creates adjustment value entries. It isn't another physical sale, and it isn't pretending the customer bought something twice. In an actual-cost example, that can increase the cost associated with the goods already sold. The remaining goods have their own cost consequences. But posting the freight invoice and confirming that all necessary adjustment has finished are separate observations. We shouldn't promise that every late charge has already propagated merely because the invoice posted successfully.

Emma

I don't want to turn that distinction into another compulsory manual task. Microsoft's design guidance also describes automatic cost adjustment. If the company already uses it, are we asking someone to run a process that may have finished before they even opened the page?

Alex

That's exactly the duplication to avoid. Check the setup and the result before making a manual run part of the routine. Automatic adjustment has settings, including a time window, and sufficiently late costs can fall outside that window. So two companies can post the same kind of freight invoice and need different follow-up. I'd investigate whether the affected cost entries were adjusted, rather than assuming either that automation handled everything or that a person must always intervene. Once the business knows which late costs its setup catches, it can make the exception visible instead of having everyone repeat the whole process.

Emma

And there is a calendar attached to this. Suppose the freight bill arrives after finance has closed the inventory period. The commercial explanation still points to last month's shipment, but that doesn't mean last month's books are freely editable. Where does that leave the adjustment?

Alex

The posting restrictions still matter. The adjustment can use the start of the next open inventory period; where inventory periods aren't used, the allowed posting dates are relevant. So linking the cost to an older item entry doesn't promise that its adjustment will be dated in that old period. That's an important distinction when someone compares a current report with the one they saved at month-end. I would trace both the affected entries and their posting dates with finance. It explains why the economic connection to a shipment and the period in which an adjustment appears aren't necessarily the same thing.

Emma

There's another boundary in the documentation that I don't want our example to blur: Standard Cost. We've been picturing costs following the actual purchase and freight. If a company deliberately uses standard costs, should a late freight bill be expected to rewrite that standard figure?

Alex

Not in that simple way. With standard costing, the difference between actual cost and standard cost is a variance. A later item charge changes that difference. It doesn't mean the charge simply replaces the standard unit cost with a new actual amount. That's why I wouldn't judge success solely by whether a particular number on the item card moved. The evidence you're looking for depends on the costing method. The freight can have been recognized correctly even though the result appears in variance rather than behaving like our actual-cost example.

Emma

Then a useful check would follow one small shipment from receipt to sale and add a clearly identified late charge. I'd want part of the goods still on hand, so we don't accidentally test only the easy half. And we'd decide in advance what evidence we expect for the costing method the company actually uses. That feels more informative than opening a margin report and asking whether it looks plausible.

Alex

Keeping some stock makes that a much better example. In a suitable test company, you can follow the charge assignment, the adjustment entries related to the sale, and the cost remaining with inventory. Then check the dates and whether automatic adjustment handled the case. Posting the corresponding inventory costs to the general ledger is a separate step, so adjusted value entries alone don't prove that reconciliation is complete. Agree which evidence finance will use for that too. The point is to establish how this company's existing costing setup behaves, not assume every item follows one example.

Scene start 10:30

The job failed—but what already happened?

Emma

The next distinction is almost the reverse: a red status can hide work that did finish. Microsoft's background-posting guidance describes a document that posts but doesn't print because an unattended process encounters a printer dialog. Eventually, the job times out and shows Error. This is established behavior worth understanding, not a new October feature. If I'm the person waiting for that document, the word Error doesn't tell me whether I still need posting, printing, or both.

Alex

And that changes the first recovery question. Before restarting the business operation, establish what happened to the document. In that documented printing case, the accounting work has already posted; the missing outcome is the print. But we can't apply that answer to every job with Error. Another failure could happen earlier. The job's status describes the execution, while the posted document and related entries tell us about the business result. You need both views. Otherwise a well-meant attempt to get back to green can focus on the wrong unfinished step.

Emma

Let's imagine an order processor reports the error to support, and support replies that the job has been restarted. Both people have done something sensible from their own screen, but the processor still doesn't know whether the customer can receive the document. I'd want the handoff to say what was already completed and what remains missing, rather than just announcing that another attempt has started.

Alex

That handoff would help support too. Include the relevant company and document, the job involved, when the failure occurred, and the error details. Then add the business observation: for example, the posted document exists, but the expected print does not. Those facts narrow the investigation considerably. I'd also separate the person diagnosing the job from the person confirming the business result. They may be the same person in a small company, but the two responsibilities still exist. A successful technical restart isn't a substitute for the processor confirming that the missing document output is now available.

Emma

The printer dialog is a surprisingly ordinary cause. Someone might reasonably say, this worked when I ran it myself, so why shouldn't the background job do the same thing? The document is the same. What's different about the process when nobody is sitting in front of it?

Alex

When you run it yourself, you can answer a question, choose a printer, or respond to a dialog. A background session can't assume that interaction is available. Developers need to design that path accordingly; Business Central provides a way for code to check whether a user interface is allowed. But the business requirement comes first: what decision was the person making, and where will the unattended process get it instead? Simply hiding a question is not a complete design if the answer was necessary. The printer example is a useful reminder to test the unattended route, not just the same action with someone watching.

Emma

And the person matters in another way. The execution documentation says the background session uses the user who sets the job to Ready, with the permissions that user needs for the work. So 'it worked for me' can hide a different identity as well as a different interaction. That would make me cautious about a helpful colleague changing the job state without knowing who is meant to own it.

Alex

It belongs in the operating agreement. Decide who is authorized to set that job ready, and verify that identity has the permissions for the objects and data the job actually needs. If a permission failure appears, don't jump straight to giving someone unrestricted access. First identify the missing operation and whether it's part of the intended task. That keeps the fix proportionate. It also makes a later support investigation less mysterious: the test should use the intended execution identity and the unattended route, rather than borrowing a powerful user's interactive session and declaring the problem solved.

Emma

Now suppose there isn't an error. The job is waiting, and someone wants the invoices finished before the next team starts. The documented category behavior can make a job wait for another job in the same category. From the user's point of view, though, nothing is happening. Would separating the categories get the work moving, or are we about to remove something useful?

Alex

Possibly something useful. The category can keep related jobs from changing the same data at the same time. Waiting may be the intended protection, not a fault to bypass. I'd first identify the running job and what the jobs share. If they're genuinely independent, the design can be reviewed, but changing categories just to clear a queue is not evidence that parallel execution is safe. And the Earliest Start Date and Time is an earliest opportunity, not a guaranteed appointment. Workload and operating limits can affect when it runs. A business deadline needs more thought than entering the deadline as the start time.

Emma

Then I'd move the conversation from 'start at eight' to 'have these particular documents ready for the team at eight.' That gives us room to allow for waiting and to decide when a delay needs attention. It also stops a queue full of unrelated jobs becoming the definition of success. The processor needs their documents, not a photograph of an empty job list.

Alex

That is a much more useful target to operate. Define the intended set of documents and what ready means for them: posted, and with the required output available. Then choose a point early enough for someone to investigate a missing result. If a job is still waiting at that point, the response is to inspect its dependency and remaining work, not immediately label it broken. If it has failed, use the document evidence and error together. The same deadline can lead to different actions because waiting, failed execution, and missing output aren't interchangeable conditions.

Emma

One more label deserves care here: On Hold. If someone sees an unexpected job running, that sounds like the obvious way to stop it while they investigate. But the administration guide explicitly says putting a job on hold doesn't affect one that's already running. So the label is about a future start, not a pause button for the work currently happening?

Alex

Exactly. It can prevent an automatic start before processing begins, but it doesn't freeze an active execution. If the job is already running, the responsible administrator needs to establish its actual state and the supported options for that operation. I wouldn't turn this into general advice to terminate a session, because the consequences depend on what is running. And changing the status isn't proof that no further business work happened. That takes us back to the document: establish the actual outcome before deciding what can safely be resumed, corrected, or left alone.

Emma

For a trial of background posting, I'd now ask for more than a happy-path demonstration. Use a representative document and the intended unattended output, then agree how someone will recognize a partial result. Not manufacture an incident in production, but establish what evidence the team would use if posting and output don't finish together. That is a more useful acceptance question than whether the button launched a job.

Alex

And include whoever will receive the result in that check. A developer can verify the unattended code path and execution identity; the processor can say whether the resulting document actually supports the next task. Neither view replaces the other. If the normal path works and the team can identify a partial outcome, background posting can remove a real interruption from people's work. We don't need to make automation sound fragile to insist that its completion condition is clear.

Scene start 19:17

Check the arithmetic behind the report

Emma

Let's turn to a different kind of convincing result: a polished management report. The headings are right, the columns line up, and the total looks familiar. Then finance adds a new general ledger account, and the report definition doesn't include it. Microsoft's troubleshooting guidance lists omitted accounts, duplicated accounts and formula problems among the reasons a financial report can be wrong. This is an existing checking workflow, not a new layout feature. Where would you start if the presentation gives us no obvious warning?

Alex

With a comparison that doesn't depend on the same report definition. The Trial Balance or an analysis of the general ledger entries gives you another route to the relevant total. But make the scope match first: the same period and the relevant filters. If the management report covers one part of the company and the comparison includes everything, a difference isn't yet evidence of a broken formula. Once the scope matches, you have a useful question: which accounts or calculations explain the difference? That is narrower than trying to judge an entire report by how plausible it looks.

Emma

Even 'the same period' needs a little care. The financial-report FAQ distinguishes Net Change from Balance at Date. If I ask how the business performed during September, that's a different question from what a balance was at the end of September. Both reports could have September in the heading and still not be answering the same question.

Alex

Take a bank account as a simple illustration. The movement during September isn't the same number as the balance at September's end, because the opening balance matters. Net Change commonly fits a period's activity, while Balance at Date fits a position at a date. The report's purpose determines what you want. So before tracing formulas, I'd write the intended question in ordinary language. Your distinction saves us from 'fixing' a perfectly valid number to make it agree with a comparison that measures something else.

Emma

Let's return to the missing account, with the period and filters now aligned. I wouldn't want the report owner to rediscover that omission from scratch every month. If a new expense account is added outside the rows the report currently totals, what's a useful way to make that gap visible without turning the report into a wall of checking figures?

Alex

A validation row can compare a broader control total with the sum of the rows you're presenting. If the intended relationship is equality, the difference should be zero. That gives the owner a specific signal to investigate. The standard report setup lets a check row use Show equals No, keeping it out of the PDF, while Show All Lines makes it available for review. So the management pack can stay readable. The important design choice is the relationship being checked: a useful control total needs to catch the omission you care about, not reproduce the same incomplete selection in two places.

Emma

That's the trap I was wondering about. If the checking formula uses exactly the same incomplete account range, it can agree beautifully with the report. And even a sensible total could hide two errors that cancel each other out. A zero difference sounds reassuring, but I'd be reluctant to label it 'report verified' without saying what we actually checked.

Alex

I'd label the check after its purpose, not call it a certificate. For example, it might show that the presented expense rows add up to the intended expense-account population. That still doesn't prove every transaction belongs in the correct account, or that an omitted amount and a duplicate couldn't offset. Your counterexample suggests testing the check itself with a deliberately missing or duplicated account in a safe copy of the definition. Does the expected difference appear? A check that can demonstrate the failure it is meant to catch is much more useful than one that merely happens to display zero today.

Emma

There is a practical consequence to hiding that row from the PDF. The person receiving the pack can't tell whether anyone looked at it. I like a clean report, but hiding the check is only useful if someone still owns checking it. Otherwise we've made the warning discreet enough to disappear from the process.

Alex

Then make the review part of preparing that report, with a named owner and a clear response to a difference. The hidden row doesn't automatically create a release gate or prove someone inspected it. For an important management report, the owner can retain the comparison and resolve unexpected differences before distributing it. The level of checking should fit the report's use. A draft working view and a pack used for a major decision don't necessarily need identical ceremony, but neither benefits from a number nobody understands. The standard feature gives you a place for the check; the business still supplies its meaning.

Emma

There's a useful maintenance detail in the FAQ too. Financial-report definitions are stored as data, and an upgrade doesn't overwrite the existing definitions with new defaults. That protects a company's work, but it also means we shouldn't wait for the next Business Central update to repair our missing account or an old custom formula.

Alex

Yes, preserving the definition is usually what you want. The maintenance trigger is often a business change: a new account, a reorganized reporting structure, or a changed question the report needs to answer. Review the affected definition then, and keep the useful checks alongside it. That is more targeted than rebuilding the report after every software update. For our missing-account example, the repair is to restore the intended coverage and verify the calculation, not to replace a familiar report just because a newer default exists elsewhere.

Scene start 25:51

Find the layer blocking the call

Emma

Our next item is for anyone responsible for an integration, even if they don't write the code. Business Central can call an outside service, and protections around those outgoing calls may stop a request before the service handles it. Microsoft's default outgoing-call protection reached general availability in April, not this October. The practical question is how to diagnose a failed connection without treating every security control as an obstacle to switch off.

Alex

First ask whether the request reached the other service and produced a response. That divides the investigation usefully. A call can fail locally because the extension isn't allowed to make outgoing HTTP requests, or because a platform protection rejects the destination. If the service did respond, its response may still describe a failure. Receiving an HTTP response isn't the same as getting a successful business result. A support message that preserves that distinction gives the next person somewhere to start; 'the integration is down' doesn't yet tell us which side to investigate.

Emma

The permission detail has a catch worth keeping. The documentation says outgoing requests need to be enabled for each extension, including library apps. So someone can check the main extension, see the permission enabled, and still not have established that the actual calling component is allowed. That's a narrower investigation than immediately blaming the external service.

Alex

Right, identify the component making the request rather than changing permissions at random. Then keep permission separate from destination protection. The anti-SSRF protection is about preventing the server from being induced to call restricted internal destinations. Permission to make HTTP calls doesn't mean every possible destination should be reachable. In Business Central online, that validation is always enabled and can't be disabled. So if the architecture depends on an address the platform rejects, the answer isn't to search for a hidden online off switch. The integration design and the intended destination need to be reviewed.

Emma

The operational guide also covers on-premises installations, including supported builds from older version lines. So the April release date doesn't mean we can identify the behavior just by saying 'version twenty-eight or later.' There is a targeted allowed-address setting on supported on-premises builds. That sounds different from removing the protection for everything.

Alex

It is. An administrator can assess an intentionally required destination against the supported setting and the installed build. That is a scoped configuration decision, not a recommendation to disable protection globally. And it won't resolve a different failure such as an invalid server certificate. Certificate validation asks whether the connection's certificate can be trusted; destination protection asks a different question about where the request is going. If the error points to trust, investigate the certificate and service configuration. Making a destination allowable doesn't magically make its certificate valid.

Emma

Let's say those checks pass and the service returns a response, but the expected operation still hasn't happened. I don't want the integration owner to hear 'the HTTP call succeeded' and assume the customer information was accepted. What should the developer distinguish in that message?

Alex

Whether the request could be sent, which HTTP status came back, and what that response means for the operation. A service can answer with a non-success status. Even a successful status has to be interpreted according to that service's documented contract; it isn't a universal promise that every downstream business step is complete. The useful message might therefore be that the service rejected the request, rather than that Business Central couldn't connect. That distinction changes the owner and the next action. It also stops a team repeatedly adjusting local security settings when the remote service has already explained the problem.

Emma

I'd want a support request to say which layer the evidence points to, then: the calling extension, a rejected destination or trust check, or an actual response from the service. Enough detail to investigate, without pasting credentials or customer payloads into a ticket. We can keep the precise on-premises build numbers and settings in the notes; the useful habit is to stop treating every failed call as the same fault.

Alex

And once that evidence identifies a cause, change the relevant thing and verify the intended operation. Don't make a collection of unrelated configuration changes and lose the explanation of which one mattered. That keeps a small permission or service problem small, while leaving the platform's protections doing their job. We haven't tested anyone's connection here; we've identified a way to make the next investigation more precise.

Scene start 31:20

Let the document use the company default

Emma

Let's finish with something smaller and pleasantly practical. A colleague prefers Business Central's interface in English, but the company normally sends documents in Danish. Since April, the company-level default document language can be set separately. Company Information has a Default Language Code field. So a person's comfortable working language doesn't have to decide the company's default document language. What should we expect that setting to change?

Alex

It separates the document-language default from the operator's interface language. That can remove a needless trade-off for a multilingual team. But a language choice doesn't automatically translate the stored business data. An item description or a customer comment entered in English doesn't become Danish just because the document uses Danish labels. Think of the document's language and the words someone stored in its data as two different things. Both can appear on the same page, and both affect whether the customer receives a coherent document.

Emma

So a Danish heading above an English delivery comment would be a useful example to include when checking it. And I wouldn't want the team to assume a company default overrides every explicit customer or vendor language choice. The sources establish the default setting, but not every precedence case or every custom report. We'd still need to inspect the document the company actually sends.

Alex

Yes. Use a representative document with the actual report and relevant recipient settings. Include a description or comment, rather than checking only the title. Then look at formatting separately: region settings concern things such as number and date presentation, and aren't the same as language. Changing a language doesn't select a different country's legal functionality either. You don't need a grand multilingual project to evaluate this feature. You need a few documents that expose the distinctions your company cares about, and a clear expectation for each.

Emma

I like that this doesn't require asking the colleague to work in a less comfortable interface just to get the default right. The small improvement is real even though it doesn't translate every sentence. For our example, the outcome we'd want is simple: the colleague keeps the English interface, while the expected Danish document still has the right labels, content and formatting for its recipient.

Alex

And if those representative documents behave as intended, the standard setting may be all the company needs. Keep ownership of the stored descriptions and comments where it belongs, rather than expecting a language default to maintain them. That makes the feature easier to explain to the team: use the interface that helps you work, and verify the document choices separately. A modest distinction, but one that can remove an unnecessary daily compromise.

Emma

That's where we'll leave it. A posted invoice, a job status and a balanced report each tell us something useful, but none answers every question around the work. Following the right evidence can reveal a late cost, an unfinished output, or a check that needs a clearer purpose. And sometimes the improvement is simply letting a colleague work in one language while the company sends documents in another. The episode notes include the direct sources, the practical limits and deeper technical details. Thanks for listening to Central Perspectives from ITrators. Until next time.

Episode notes

What this means in practice

Assign the charge to the goods it belongs to

A separate freight invoice arrives after the original purchase receipt.

Use an item charge linked to the relevant posted receipt. Get Receipt Lines belongs to Item Charge Assignment here; it is not the earlier invoice-matching workflow. Suggested distribution can use equal shares, line amounts, net weight or unit volume. Weight and volume depend on maintained item data. Choosing a mathematical basis is a business decision: a lightweight expensive component and a bulky inexpensive item need not consume transport in proportion to their prices. Inspect the proposed amounts before posting; an exact total alone does not justify its split.

Established standard functionality; not an October 2026 release.

Follow the cost, not only the invoice

Follow the cost, not only the invoice

Some of the received goods have already been sold.

Cost adjustment forwards changed inbound costs to related outbound entries according to the costing method. Automatic adjustment depends on setup; manual adjustment is also supported. Review the actual affected value entries and their period rather than assuming immediate propagation or backdating. Closed inventory periods and allowed posting dates constrain adjustment dates. Standard costing needs separate interpretation: a later item charge changes actual-versus-standard variance. A proposed sandbox check should include a related sale, the remaining inventory and the applicable accounting period; this is not a claim that the hosts performed such a test or accounting advice for a specific company. Posting inventory cost to the general ledger is a separate completion step; verify the relevant automatic setup or batch result.

Established costing mechanics; setup, costing method and posting-period restrictions apply.

A specific error can follow successful posting

A background post-and-print job reports Error.

Microsoft documents a printer dialog requiring a person: the document can post, printing remains unfinished and the job eventually times out to Error. This specific case is not the explanation for every red status. First establish the document outcome and the failed operation, then choose the narrow recovery with the responsible owner. A restart is not automatically safe merely because the job failed, and manually posting again is not a substitute for finding what already happened. Avoid unattended printer setups that require someone to answer a prompt.

Existing documented background-posting behavior, not a new October feature.

Waiting, identity and stopping

Waiting, identity and stopping

An administrator must distinguish legitimate queue coordination from a failed process.

Same-category jobs wait for the active job rather than compete over shared changes. Earliest Start Date/Time is not a guaranteed start instant. On Hold prevents a future automatic start but does not stop a job already running; do not treat it as an emergency cancellation switch. Job execution uses the user who sets Ready and requires permissions to the relevant objects. Background code must not depend on interactive UI; developers should inspect the intended unattended path. These distinctions guide diagnosis, not blanket permission elevation or session termination.

Established job-queue rules; permissions and workload remain environment-specific.

A plausible total can still be incomplete

A report owner must explain a difference from the general ledger.

Inspect missing or duplicated accounts, formula references, signs and omitted rows. A new G/L account may exist without being included in a customized report. Compare with a Trial Balance or a suitably filtered G/L-entry analysis, keeping the reporting period and scope consistent. Do not change a formula merely to make two differently filtered totals agree. New financial-report defaults do not overwrite an existing tenant’s stored definitions on upgrade, so upgrading is not proof that a custom definition was repaired.

Existing financial-report functionality; no claim of an October change or independent audit.

Make the check meaningful

Make the check meaningful

A check row should reveal a particular definition error without cluttering the recipient’s PDF.

A validation row can calculate an expected relationship to zero. Set Show to No to omit the row from PDF output and use Show All Lines when reviewing it. The check does not prove that every transaction is correct or that the report answers the intended question. Net Change normally describes activity during a period; Balance at Date describes a balance at a date. Choose the view for the question, then test a deliberate relevant counterexample in a safe copy rather than assuming that an unchanged zero proves completeness.

Existing check-figure and row/column behavior; proposed checks have not been executed here.

A failed call is not yet a diagnosis

An extension tries to call an external service.

Outbound HttpClient calls require permission for each extension, including library apps. A failure may happen before the remote service receives the request. Destination anti-SSRF protection and server-certificate validation answer different security questions. If a response is received, check its HTTP status separately from transport success. Capture the relevant error and environment context without sharing credentials; let that evidence determine the next owner or investigation rather than assuming every integration problem is the same.

Anti-SSRF GA 1 April 2026; separate certificate validation applies from version 26 onward.

Online and on-premises differ

Online and on-premises differ

The administrator is checking documented destination protection.

Online anti-SSRF cannot be disabled. The documented on-premises settings NavHttpClientAntiSSRFEnabled and NavHttpClientAntiSSRFAllowedAddresses are available from 26.11/platform 26.0.46773, 27.2/platform 27.0.42799 and 28.0/platform 28.0.47117.0. The latter permits specifically reviewed internal IP addresses while protection stays enabled. Verify the actual build and intended destination; do not transpose a server-setting procedure into SaaS or recommend globally disabling safeguards. No endpoint or tenant configuration was tested for this episode.

Current operational build matrix; historical release plan establishes April GA, not October novelty.

A small default with a clear boundary

Colleagues use different interface languages but serve the same local customers.

Default Language Code on Company Information sets a company-wide default for customer-facing documents separately from the operator’s UI language. The release plan dates the feature to 1 April 2026. Stored descriptions and comments are not automatically translated, and region settings govern presentation such as decimal separators separately. Verify representative actual reports and explicit customer/vendor language choices rather than assuming this general guide establishes every precedence or customization case.

Generally available 1 April 2026; a useful existing discovery, not an October announcement.

Download discussion notes

Sources & context

Explore the sources behind the discussion. The episode notes explain qualifications and practical considerations.

Use item charges to account for extra trade costs

Design details: Cost adjustment

Adjust item costs

Design details: Variance

Post multiple documents at the same time

Use job queues to schedule tasks

Job queue

Troubleshoot Financial Reporting

Financial Reporting frequently asked questions (FAQ)

Call external services with the HttpClient data type

Get more secure outgoing HTTP calls by default

Changing your language and region settings

Set default language for documents on the company level

Design details: Reconciliation with the general ledger

Design details: Item application

Ændre dine indstillinger for sprog og område