Skip to content

Entity Maintenance

Watch this as a presentation — 1 on this page, slides with narration.

See every customer, supplier, employee and merchant in one list, and create a record that is more than one of them, such as the agent you both buy from and sell to. A record with none of the four flags appears in no type-specific applet, only here, which is how records go missing without being deleted.

Overview

Entity Maintenance is the type-agnostic view of BigLedger’s entity master. Every customer, supplier, employee and merchant is one row in the same entity master with four flags — customer, supplier, employee, merchant — and this applet is the one place where you can create a record with any combination of those flags, or see all of them in a single listing regardless of type. The dedicated applets (Customer Maintenance, Supplier, Employee Maintenance, Merchant) edit the same rows through a richer, type-specific form.

Nothing forces a record to carry exactly one flag. A record can be both a customer and a supplier, or both a customer and an employee, and this applet is the only screen that will create one — the freight agent you buy from and sell to, or the staff member who also holds an account. A record can also carry none of the four flags at all: it still holds a name, addresses and contacts, but no type-specific applet will list it, and this screen is the only place it is visible. That is how records go missing — not deleted, just untyped.

It is opened by master-data administrators who need the cross-type view (for example, to turn an existing customer into a supplier as well), and by whoever maintains the four category trees — Entity, Customer, Employee and Supplier categories — that the type-specific applets tag their records with.

Use this applet for the header, the four category trees, Payment Config, Tax, Address, Contact, Company Linking and Intercompany Branch. Four of its tabs do not persist anything in the current code: Entity Category (on the edit form), Login, Credit Term and Credit Limit. The Settings screens (Field Settings, Default Selection, Personalisation) also save nothing. Details are under Configuration and Lifecycle and effects; use the type-specific applets for those features.

Where it fits

DirectionApplet / documentWhy
UpstreamOrganisationCompanies for the Company Linking tab; branches (and their company) for the Intercompany Branch tab
UpstreamTax ConfigurationTax codes, filtered by country, offered on the Tax tab
UpstreamCashbookSettlement methods are the Payment Type choices on the Payment Config tab
UpstreamTenant AdminConfirmed logins that the Login tab looks up by e-mail (the tab cannot save the link — see below)
SiblingCustomer Maintenance, Supplier, Employee Maintenance, MerchantSame table, same rows; each sibling edits its own type and adds the type-specific tabs (e-Invoice, credit control, categories, logins, spending limits…)
DownstreamSales, purchase, receivables and payables documents; claims; payrollPick the entity by type; the AR / AP type, currency, addresses, contacts and payment methods maintained here are read at document time

Modules: Core, Purchasing, HR & Payroll, Claims.

Screens and menus

Left menu:

MenuWhat it is for
EntitySearch, create and edit entities of any type
Entity CategoryTree of entity categories
Customer CategoryTree of customer categories — the same categories the Customer Maintenance applet tags customers with
Employee CategoryTree of employee categories — as used by Employee Maintenance
Supplier CategoryTree of supplier categories — as used by the Supplier applet

Gear (Settings) menu: Field Settings and Default Selection under System Configuration. Webhook, Feature Visibility and the shared Permission Set / User / Team / Role listings also exist but are not listed in the settings menu; they are reachable only by typing the URL. Personalisation offers a per-user Default Selection.

Entity listing

Columns: Entity Name, Entity Ext Type (the type flags joined — for example CUSTOMER, EMPLOYEE), Entity Type (CORPORATE / INDIVIDUAL), Currency, Status, Creation Date, Modified Date; newest modification first. The advanced search offers a keyword (matched against the name and the customer / supplier / employee / merchant codes), Entity Type, Status and a Modified Date range. The + button opens the create form; clicking a row opens the edit form.

Two “type” columns. The listing’s Entity Ext Type is the business role (customer / supplier / employee / merchant) and Entity Type is the legal form (corporate / individual). On the create and edit forms the same two fields are labelled Type and Entity Type respectively.

Create form

A single Main tab. CREATE is enabled only while every required field is valid (see Fields).

Edit form

Tabs, in order: Main, Entity Category, Login, Payment Config, Tax, Address, Contact, Intercompany Branch, Company Linking, Remark, Credit Term and Limit (with inner Credit Term and Credit Limit tabs). There is no Branch tab.

How the tabs save differs, and it matters:

  • Update (header button) saves the Main tab, the Remark, and every row you added on the Tax, Address and Contact tabs — those tabs only stage rows in memory until you press Update.
  • Payment Config, Company Linking and Intercompany Branch save immediately through their own services when you press Add / Save inside the tab.
  • Entity Category, Login, Credit Term and Credit Limit have Add / Save buttons that persist nothing (see Lifecycle and effects).
  • There is no delete: the edit form has no Remove button.

Category screens

Each of the four category menus is a listing (Category Code, Category Name, Level Value, Type, Creation Date, Modified Date, Status; keyword search plus Status and Modified Date filters) with a create panel (Category Code, Category Name, Description — all mandatory — and an optional parent picked from the existing tree) and an edit panel that adds Status. The first time a category of a given kind is created the applet also creates the list it belongs to.

Employee Category Listing with Category Code, Category Name, Type, Level Value, Creation Date, Modified Date and Status columns
Employee Category listing. The Entity, Customer and Supplier category screens are identical apart from the Type column value.

Configuration

Before you can use it

  • Companies and branches in the Organisation applet — Company Linking picks companies; Intercompany Branch picks a branch and derives its company.
  • Tax codes in Tax Configuration — the Tax tab lists the tax types and codes of the chosen country; with no codes for that country the Tax Type list is empty.
  • Settlement methods in the Cashbook applet — they are the Payment Type options on Payment Config.
  • Entity code prefixes — this applet never sends a customer / supplier / employee / merchant code, so the backend generates one for every flag that is set, from the CUSTOMER_ID / SUPPLIER_ID / EMPLOYEE_ID / MERCHANT_ID running numbers plus the tenant’s per-type prefix. Set the prefixes before you create entities if you want codes like C000123.

Applet settings

Settings live in two applet-local screens — Field Settings and Default Selection — plus a per-user Default Selection under Personalisation. None of them is functional, and nothing in the applet reads any applet setting:

ScreenWhat you seeWhat happens
Field SettingsEight slide toggles in two panels — Lines Settings: Unit Discount, SST/VAT/GST, WHT, Blanket Order; Department Settings: Segment, G/L Dimension, Profit Center, Project — and a SAVE buttonThe toggles are not connected to anything and the button does nothing. Nothing is saved
Default SelectionDefault Branch and Default Location pickers and SAVEChoosing a value fails silently and SAVE stores nothing
Personalisation › Default SelectionThe same two pickers under User Default Settings — This will override Applet Default SettingsSame screen, same result

There is no working applet setting. If you need hidden fields, mandatory-field switches or default currency / country / credit terms, they exist in Customer Maintenance and Employee Maintenance, not here.

Document behaviour settings

Not applicable — this is a master-data applet with no document statuses, posting or printables.

Feature visibility / permissions

  • Client-side permissions: the applet defines and checks no client-side permission codes. The Feature Visibility route is the shared Manage Team Access screen only.
  • Server-side permissions: the Permission Set / User / Team / Role routes are the shared containers; permission targets can be any of the Applet, Branch, Company, Currency, Customer, Employee, Entity, Entity Login, GL Code, Label / Label List, Location, Merchant, Settlement Method, Supplier, Tax Code, Team and Tenant lookups.

Fields

Create — Main tab

Entity Name and Description are plain text of up to 255 characters. The form will not create a record without a name; Description is optional. Three things about them are not on the screen:

  • The name is not unique, and nothing checks it. The form requires a name, but neither the form nor the server’s entity checks compare it with other records, so a second record called GadgetSphere Trading is accepted without a word. Each gets its own generated code, so everywhere else the two look like different customers, with balances and statements split between them. This is read from the code, not tried. Checking for a duplicate is the job of whoever creates the record, and it takes ten seconds: before CREATE, type the name into the listing’s search box. If a record comes back, open it and add the extra role (customer, supplier, employee or merchant) under Type instead of creating a second record. One record carrying several roles is what this applet is for.
  • Renaming a record does not rename documents already raised. A document keeps its own copy of the name, taken when the customer or supplier was picked. The sales invoice screen, for one, copies it in at that moment, and the purchase order print and the document view read that copy, not the record. Saving a new name here changes the documents you raise from now on. Earlier invoices keep the old name, on screen and when reprinted. If a customer needs a document in its new name, that means a new document, and your accounts team decides whether to raise one. Nothing here does it for you.
  • Description is searched but not shown. The listing has no Description column, but its keyword search looks in Description as well as the name, codes and ID number. That makes it a good place for something people search by and would not otherwise see, such as a former trading name or the group a company belongs to. This too is read from the code, not tried: put a word in one record’s Description, search for it, and confirm the record comes back before your team relies on it.
FieldMeaningRequiredNotes / validation
StatusRecord statusYesACTIVE / INACTIVE; defaults to ACTIVE
TypeThe role flags, multi-selectYesCUSTOMER, SUPPLIER, EMPLOYEE, MERCHANT. Selecting EMPLOYEE clears Entity Type and restricts it to INDIVIDUAL (hint: “Please uncheck Employee Type for Corporate dropdown”)
Entity TypeLegal formYesCORPORATE / INDIVIDUAL; backend rejects anything else
Identity TypeIdentity document typeYes when INDIVIDUALPASSPORT / IDENTITY_CARD; shown for individuals only
AR / AP TypeWhich receivable / payable control account the entity posts toYesAR_TRADE, AR_OTHER, AR_MERCHANT, AP_TRADE, AP_OTHER, AP_MERCHANT, AP_EMPLOYEE; backend requires it (…DEFAULT_ARAP_TYPE_IS_NULL_OR_EMPTY)

Edit — Main tab

The same fields plus Tax Registration Number (label changes to Company Tax Registration Number for CORPORATE), Phone Number, Email (both max 255, no format check), and read-only Created By, Creation Date, Modified By, Modified Date. Picking INDIVIDUAL defaults Identity Type to IDENTITY_CARD when empty. The Currency field is shown and marked required, but Update does not write it back — currency can only be set on create (see Troubleshooting).

Edit — other tabs

TabFields (mandatory in bold)Writes
Entity CategoryTick categories from the category grid (Category Code, Name, Level Value, dates, Status)Nothing — the selection goes nowhere
LoginUser email (Verify looks up a USER_CONFIRMED e-mail login), Rank (OWNER, ADMIN, MANAGER, MEMBER, GUEST, VISITOR, ANNONYMOUS), StatusAttempts to save the link, but the entity is never filled in, so the backend rejects it
Payment ConfigPayee Residential Status (RESIDENT / NON-RESIDENT), Payment Type (a settlement method), Country, Bank (a fixed list of Malaysian banks), Bank Identifier Code (settlement type: BANK_TRANSFER, CASH, CHEQUE, CREDIT_CARD, E_WALLET, FPX_EMANDATE, PAYMENT_GATEWAY, MEMBERSHIP_POINT_CURRENCY, OPEN_CREDIT, OTHERS, VOUCHER), Bank Acc No., Bank Acc Holder Name, IBN Number, Account ExpiryThe payment method on the record (immediately)
TaxCountry (Malaysia, Singapore, Thailand, Indonesia — a hard-coded list of four), Tax Type, Tax Code, Tax Rate (%) — read-only, copied from the chosen code’s filing rate — Tax Option (INCLUDE TAX / EXCLUDE TAX). One row per country. See the warning belowThe tax details on the record — on Update
AddressAddress Name, Address Type (BILLING_ADDRESS / SHIPPING_ADDRESS), Address Line 1, lines 2-5, Country, State, City, PostcodeThe address on the record — on Update
ContactContact Name, Contact ID, Designation/Position, Office No, Extension No, Mobile No, Fax No, Phone Number, Email, Other NoA contact line on the record — on Update
Intercompany BranchBranch (picker; the Company field fills from the branch), Selected Entity (read-only), DescriptionThe entity-branch link (immediately); the edit panel changes the description
Company LinkingTick companies (Name, Code, Email)The company link (immediately); the edit panel shows Code, Name, Registration No. and lets you set the link’s AR/AP Type or delete the link
Credit TermCredit Term Code, Credit Term Name, Status, Set Year / Month / Day, Add Year / Month / DayNothing — Save only resets the form
Credit LimitCredit Limit Code, Credit Limit Name, Status, Currency, Credit Limit AmountNothing — Save only formats the amount

The Credit Term and Credit Limit listings read credit-term / credit-limit records that nothing in this applet writes; credit control is maintained in Customer Maintenance.

The Tax tab here has neither guard its siblings have, and its Tax Code list will usually not fill. Two differences from Customer Maintenance and the Supplier applet, which edit the same rows:

  1. No sales/purchase guard. Those two force the Malaysian Tax Type list to the three output types and the three input types respectively. This screen offers every tax type and withholding type the tenant’s tax codes carry, for any country, so an output code can be attached to a record you buy from.
  2. A missing null check. On any tax code with no withholding type, choosing a Tax Type errors and the Tax Code list stays empty or short; the sibling screens guard against this, this one does not. A code only carries a withholding type if somebody gave it one in Tax Configuration; on every other code the field is null, which is exactly the case that throws.

And the rate you see is a copy, not a link. It is filled by copying the chosen code’s filing rate when you pick the code and frozen into the row; changing the rate afterwards in Tax Configuration does not move it. The row’s one consumer anywhere is the shared pricing-scheme picker, which offers a fallback scheme built from it when a document line’s item returns no pricing scheme at all. So this tab is not where your tax gets configured: the rates and codes live in Tax Configuration, and what a document actually charges is decided there and on the item, not by the tax row here.

Lifecycle and effects

This applet writes master data; nothing here posts to the ledger or moves stock.

  • The AR / AP type is supplied once, and only when blank. The backend fills it with AP_TRADE when the supplier flag is on and AR_TRADE otherwise, on create and on update, but only if the value it is handed is empty. Ticking a second flag later never revisits it — a record created as a customer stays AR_TRADE for its purchases too, and nothing on the screen warns you. Check the AR / AP type by hand every time you tick a new flag on an existing record.
  • Codes are rewritten on save. Any customer, supplier, employee or merchant code sent is upper-cased, trimmed and stripped of every space before it is stored.
  • Status is ACTIVE or INACTIVE in this applet’s forms; the backend also accepts TEMP, which the sibling applets can set. Changing the status is a normal Update — no other effect is triggered.
  • Create saves the header with its currency, ID number and tax registration number. The backend requires a status, an Entity Type of INDIVIDUAL or CORPORATE and a default AR / AP type, then generates the per-type codes for every flag that is set. Because the applet sends no codes, the …CODE_SHOULD_NOT_BE_SET and …CODE_ALREADY_EXISTS rules cannot fire from here.
  • Update first re-reads the entity to copy the current revision of the header and of every extension and line, then saves the whole record. Each address, contact and tax row is validated for its parent, status and revision (ENTITY_EXT_OBJECT_*, ENTITY_LINE_OBJECT_* errors). A success toast “The Entity has been updated” returns you to the listing.
  • Payment methods are saved immediately; the backend requires the entity, a country code that exists, and — when given — an existing settlement method and bank.
  • Company links are saved, updated and deleted immediately; the backend requires an existing company and entity. The client refuses to add a company that is already linked (toast “…is already linked to this entity”) before calling the backend.
  • Intercompany branches are saved immediately; the backend requires an existing entity and branch.
  • Logins: the backend requires both the entity and the login. The create panel never fills in the entity, so every attempt from this applet fails; the listing filters on a fixed entity rather than the open one and therefore never shows the open entity’s logins.
  • Categories (all four menus) are saved as labels of the matching kind (ENTITY_CATEGORY / CUSTOMER_CATEGORY / EMPLOYEE_CATEGORY / SUPPLIER_CATEGORY), status ACTIVE, with an optional parent. The backend requires code, name, kind and status, an existing parent, and a code that is unique across every label in the tenant — the uniqueness check ignores the list and the kind.
  • Tagging an entity with a category is not persisted by this applet: the Entity Category tab’s selection is sent to an action that nothing handles, and Update does not include it.
  • No webhook or job is triggered from this applet’s code; the Webhook route is the shared configuration screen.

Related applets

  • Customer Maintenance — the customer view of the same rows, with the working category, login, credit-term / credit-limit, e-Invoice and file-import features that this applet lacks.
  • Supplier — the supplier view; uses the Supplier Category tree maintained here.
  • Employee Maintenance — the employee view; uses the Employee Category tree maintained here and adds logins, branch / company linking and spending limits.
  • Merchant — the merchant view (AR_MERCHANT / AP_MERCHANT).
  • Organisation — companies and branches for Company Linking and Intercompany Branch.
  • Tax Configuration — the tax codes offered per country on the Tax tab.
  • Cashbook — settlement methods, the Payment Type list on Payment Config.
  • Tenant Admin — the confirmed logins the Login tab verifies against.

Troubleshooting

SymptomCauseFix
CREATE stays disabled after choosing EMPLOYEE in TypeSelecting EMPLOYEE clears Entity Type and limits it to INDIVIDUALRe-select INDIVIDUAL in Entity Type; to create a corporate record, remove EMPLOYEE from Type
Currency changed on the edit form reverts after UpdateUpdate never writes the currency backSet the currency when creating; to change it later use the sibling applet for that type
Categories ticked on the Entity Category tab disappear after UpdateThe selection is sent to an action nothing handles and is not part of what Update savesTag the record in Customer / Supplier / Employee Maintenance
Login tab shows logins that do not belong to this entity, or Add failsThe listing filters on a fixed entity rather than the open one; the create panel sends no entity, and the backend rejects it because no entity is setLink logins on the Login tab of Customer / Supplier / Employee Maintenance
Credit Term / Credit Limit rows never appearBoth create forms discard the input; the listings read credit-term / credit-limit records nothing writesMaintain credit terms and limits in Customer Maintenance
Field Settings or Default Selection do not saveThe screens are not connected to storage (see Applet settings)Nothing to configure here; the switches you are looking for live in the sibling applets
Category create is refused as a duplicate code although no category of that kind has the codeLabel codes are unique across the whole tenant — item categories, customer categories and every other label share the namespaceChoose a code not used by any other label
Category create is refused because the parent does not existThe chosen parent was deleted or belongs to another tenant contextRefresh the tree and pick the parent again
Tax tab: Tax Type list is empty after choosing a countryNo tax codes exist for that countryCreate them in Tax Configuration
Payment Config: Payment Type list is emptyNo settlement methods are defined for the tenantCreate them in the Cashbook applet
Payment Config save fails with ENTITY_PAYMENT_METHOD_OBJECT_COUNTRY_CODE_*Country is mandatory and must be a known codePick a country from the list
“… company is already linked to this entity” when adding a companyThe applet checks this before savingNothing to do — open the existing link to change its AR / AP type
Create from an integration is refused for an unknown entity typeEntity Type must be exactly INDIVIDUAL or CORPORATEFix the calling payload; the UI cannot send anything else
The record you need is missing from a sales / purchase pickerThe relevant flag (customer / supplier) is not set on the entity, or the status is INACTIVEAdd the type in Type on the Main tab and set the status to ACTIVE; the backend then generates the missing code

Related documentation

Last updated on