NAV data exchange on invoices — endpoints and background job
How the NAV query, the asynchronous invoice kind refresh job, the line additional data and manual labelling work.
Seven endpoints sit under the navdata function right (SUBSCRIPTION): NAV download, invoice kind refresh, line additional data and manual labelling. Each checks the content scope per invoice (invoiceInScope).
Line additional data (lineadditional, lineadditionalsave)
Manual viewing and saving of NAV additionalLineData and productCodes for an invoice or a line through masterdata/analytic::saveLineAdditionalData; the NAV line is not touched.
Manual labelling (labelsearch, addLabel, removeLabel)
Assignment: dlbtlabel->addLink, source manual. On removal the pass-through rows of the label are deleted; the target invoice only while it is a draft (contract/passthrough::invoiceIsDraft, deleteInvoice).
Data model
Table names carry the installation's own prefix in the database: invoice_ctrl, invoice, invoice_item, analytics tables (masterdata/analytic), label_link, pass-through tables (contract/passthrough), cron_queue.
Permissions and prerequisites
- Layer 2:
canAction(navdata)on every endpoint; the key is classified SUBSCRIPTION. - Layer 3:
invoiceInScopeper invoice. - Prerequisite: a NAV technical user at the owner company, the
navosalibrary. Error keys:error_nav_*,error_navref_queue.