FSM Transaction Base Model Reference

Note:

This reference is intended for administrators and developers who work with shared Transaction model mappings and processing properties.

The common Transaction base has record identity transaction. FSM Mobile articles can use it through article.extend: "models/transaction". For transaction reading and record-specific processing, see Transaction Mappings and Processing Properties.

Standard default structure (JSON fragment):

          {
  "models/transaction": {
    "prototype": {
      "record": "transaction",
      "map": {
        "id": "*formulatext:case when {line} > 0 then {internalid} end|internalid",
        "type": "formulatext:nvl({recordtype}, lower({type}))",
        "createdfrom": "createdfrom",
        "createdfromtype": "createdfrom.recordtype|",
        "entity": "entity",
        "customer": "custbody_nx_customer",
        "asset": "custbody_nx_asset",
        "case": "custbody_nx_case",
        "task": "custbody_nx_task",
        "status": "status",
        "date": "trandate",
        "email": "email",
        "contact": "contactprimary.internalid|",
        "purchaseorder": "otherrefnum|",
        "paymentmethod": "paymentmethod"
      },
      "defaults": {},
      "syncentity": false,
      "inventory": false
    }
  }
} 

        

The prototype.map.project mapping is "job.internalid|job" with Project Management and "job.internalid|entity" without it. The prototype.map.projecttask mapping is "custbody_nx_projecttask" when Project Management is enabled. These conditional entries are omitted from the fragment.

Transaction Mappings and Processing Properties

The following table describes the transaction model's mappings and processing properties.

Property

Purpose

Standard Value

Effect and Dependencies

prototype.map.id

Identifies the transaction to which each returned line belongs.

Merged transaction ID derived from non-mainline rows.

Combines transaction lines into one mapped object. Preserve a populated merge key for the rows to retain.

prototype.map.type

Identifies the actual transaction record type.

Transaction record type, or lowercase transaction type.

Identifies the actual type used for supported writes.

prototype.map.createdfrom, prototype.map.createdfromtype

Identifies the source transaction used for transformation.

Source transaction and its record type.

Supports creation by transformation.

prototype.map.entity, prototype.map.customer, prototype.map.project

Identifies the transaction's entity, Customer, and Project relationships.

Native entity, FSM customer, and Project mapping. Project writes to job with Project Management and otherwise to entity.

Preserves customer/Project sourcing.

prototype.map.asset, prototype.map.case, prototype.map.task

Links the transaction to FSM service records.

custbody_nx_asset, custbody_nx_case, custbody_nx_task

FSM transaction relationships.

prototype.syncentity

Keeps the native Entity and FSM Customer values consistent, accounting for Project relationships.

false in this base. Enabled by several derived transaction models and standard FSM Mobile articles.

true enables relationship sourcing during creation and form validation. false leaves that synchronization inactive. This doesn't enable or disable FSM Mobile record synchronization.

prototype.inventory

Identifies the line collection whose bin, serial, and lot assignments FSM converts to and from NetSuite inventory fields.

false in this base. Item Fulfillment uses "items". Selected FSM Mobile articles also specify their Item collection.

false leaves assignment conversion inactive. A collection name such as "items" selects the mapped lines to process.

prototype.defaults

Supplies default attributes when a Transaction model is created.

Inherited empty defaults.

No additional explicit Transaction defaults.

Assignment conversion depends on enabled NetSuite inventory features and the line mappings. This property doesn't control stock availability or fulfillment.

The syncentity and inventory properties control built-in transaction processing. Retain each model's standard values unless a supported feature configuration specifies a change. Their appearance in a default fragment doesn't establish these properties as general customization switches. Employee prototype.map.inventory is a separate field mapping. For the employee inventory-location mapping, see FSM Employee Model Reference.

Project Task mapping is added when Project Management is enabled. The base also supplies date, status, email, primary contact, purchase-order reference, and payment-method mappings. Individual transactions adapt mappings where fields differ or are not searchable.

In dynamic mode, the transaction base preserves selected fields whose values depend on the entity when the entity changes. The base also handles item group end lines. When a line map includes line identity, the base uses that identity to update lines. Inventory assignment conversion depends on enabled bin, serial, lot, and advanced inventory features. Those built-in processors and their maps are not a procedure for copying internal functions.

Warning:

Saving a complete editable sublist can remove lines missing from the supplied collection. Preserve all lines that must remain, their identities, and their read-only state. For sublist mapping requirements, see FSM Searches and Field Mapping.

Selecting this base for an FSM Mobile article retains the transaction base. It doesn't automatically select the Sales Order, Invoice, Item Fulfillment, or other specialized model, nor does it recreate a standard resource's own synchronization behavior.

Additional Information

Related Topics

General Notices