Skip to main content

Custom Segments: Transaction Impact

Understanding how custom segments affect transactions, GL postings, and downstream processes.


Transaction Flow

SEGMENT ON TRANSACTION
─────────────────────────────────────────────────────────

┌─────────────────────────────────────────────────────────┐
│ VENDOR BILL │
│ Vendor: ABC Consulting │
│ Amount: $20,000 │
│ Project Code: PRJ-002 (Mobile App) │
├─────────────────────────────────────────────────────────┤
│ │
│ LINE 1: Development Services │
│ ├── Account: 6100 - Professional Services │
│ ├── Amount: $15,000 │
│ └── Project: PRJ-002 │
│ │
│ LINE 2: Project Management │
│ ├── Account: 6100 - Professional Services │
│ ├── Amount: $5,000 │
│ └── Project: PRJ-002 │
│ │
└───────────────────────────┬─────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ GL IMPACT (if enabled) │
├─────────────────────────────────────────────────────────┤
│ │
│ Dr. 6100:PRJ-002 Professional Services $20,000 │
│ Cr. 2000 Accounts Payable $20,000 │
│ │
│ Segment-specific account posting │
└─────────────────────────────────────────────────────────┘

Header vs Line-Level Segments

Header-Level Segment

Applied to entire transaction:

┌─────────────────────────────────────────────────────────┐
│ EXPENSE REPORT │
│ Employee: John Smith │
│ Project Code: PRJ-002 (header) ←────────────────────┐ │
├─────────────────────────────────────────────────────────┤
│ Line 1: Airfare $500 Project: PRJ-002 ◄─┤ │
│ Line 2: Hotel $400 Project: PRJ-002 ◄─┤ │
│ Line 3: Meals $100 Project: PRJ-002 ◄─┘ │
└─────────────────────────────────────────────────────────┘

Line-Level Segment

Each line can have different value:

┌─────────────────────────────────────────────────────────┐
│ VENDOR BILL │
│ Vendor: Multi-Project Consulting │
├─────────────────────────────────────────────────────────┤
│ Line 1: Website Work $5,000 Project: PRJ-001 │
│ Line 2: Mobile Work $8,000 Project: PRJ-002 │
│ Line 3: ERP Analysis $3,000 Project: PRJ-003 │
└─────────────────────────────────────────────────────────┘

GL Account Behavior

With GL Impact Enabled

SettingAccount NumberDescription
Base Account6100Professional Services
+ Segment PRJ-0016100:PRJ-001Professional Services : Website
+ Segment PRJ-0026100:PRJ-002Professional Services : Mobile App

Account Creation

When a segment value is used for the first time:

  1. System checks for segment-specific account
  2. If not exists, creates new account automatically
  3. New account inherits properties from base account
  4. Posting uses the segment-specific account
First transaction with PRJ-004:

1. System looks for: 6100:PRJ-004
2. Not found → Creates 6100:PRJ-004
3. New account:
- Name: Professional Services : Data Center
- Type: Expense
- Parent: 6100
4. Transaction posts to 6100:PRJ-004

Without GL Impact

Transaction posts to base account only:
Dr. 6100 Professional Services $20,000

Segment stored as metadata:
- Transaction field: cseg_project = PRJ-002
- Available for filtering in reports
- No separate GL account

Intercompany Transactions

Cross-Subsidiary with Segments

INTERCOMPANY SCENARIO
─────────────────────────────────────────────────────────

Subsidiary A (US) → Subsidiary B (UK)
Project: PRJ-002 (shared across subsidiaries)

┌─────────────────────────────────────────────────────────┐
│ INTERCOMPANY JOURNAL ENTRY │
├─────────────────────────────────────────────────────────┤
│ │
│ US Books: │
│ Dr. 1200:PRJ-002 IC Receivable $10,000 │
│ Cr. 4000:PRJ-002 IC Revenue $10,000 │
│ │
│ UK Books: │
│ Dr. 6100:PRJ-002 IC Expense $10,000 │
│ Cr. 2100:PRJ-002 IC Payable $10,000 │
│ │
└─────────────────────────────────────────────────────────┘

Segment Sharing Across Subsidiaries

ConfigurationBehavior
Shared ValuesSame segment values available in all subsidiaries
Subsidiary-SpecificDifferent values per subsidiary
FilteredValues filtered by subsidiary selection

Transaction Types Reference

Fully Supported

TransactionHeaderLinesGL Impact
Journal Entry
Vendor Bill
Vendor Credit
Check
Expense Report
Purchase OrderWhen billed
Invoice
Credit Memo
Sales OrderWhen invoiced

Inventory Transactions

TransactionHeaderLinesNotes
Item ReceiptAffects inventory accounts
Item FulfillmentCOGS impact
Inventory AdjustmentFull GL impact
Assembly BuildWIP and finished goods

Segment Inheritance

From Header to Lines

// Default behavior if configured
Transaction Header:
Project Code: PRJ-002

New Line Added:
└── Inherits: Project Code = PRJ-002

From Source Transactions

Purchase Order → Item Receipt → Vendor Bill

PO Line:
├── Item: Widget A
└── Project: PRJ-001

Item Receipt Line (created from PO):
├── Item: Widget A
└── Project: PRJ-001 (inherited)

Vendor Bill Line (created from Receipt):
├── Item: Widget A
└── Project: PRJ-001 (inherited)

Override Behavior

SettingBehavior
Allow OverrideUser can change inherited value
LockedInherited value cannot be changed
Default OnlyInherits but can be cleared

Validation Rules

Mandatory Segments

Transaction cannot be saved without:
├── Project Code (if mandatory for this transaction type)
└── Error: "Please enter a value for Project Code"

Value Restrictions

// User Event Script - Validate segment value
const validateLine = (context) => {
const project = context.currentRecord.getCurrentSublistValue({
sublistId: 'expense',
fieldId: 'cseg_project'
});

const department = context.currentRecord.getValue('department');

// Validate project matches department
if (!isValidProjectForDept(project, department)) {
return false; // Prevent save
}
return true;
};

Cross-Segment Validation

Rule: IT projects only valid with IT department

Valid:
├── Department: IT + Project: PRJ-IT-001 ✓

Invalid:
├── Department: Sales + Project: PRJ-IT-001 ✗
└── Error: "Project PRJ-IT-001 is not valid for Sales department"

Budgeting with Segments

Budget Records

Budget Entry:
├── Account: 6100 - Professional Services
├── Subsidiary: US Operations
├── Department: IT
├── Project Code: PRJ-002
├── Period: Jan 2025
└── Amount: $50,000

Budget vs Actual Reports

Budget vs Actual by Project
─────────────────────────────────────────────────────────

Project Budget Actual Variance
─────────────────────────────────────────────────────────
PRJ-001 $100,000 $95,000 $5,000 (Under)
PRJ-002 $150,000 $162,000 -$12,000 (Over)
PRJ-003 $75,000 $70,000 $5,000 (Under)
─────────────────────────────────────────────────────────
Total $325,000 $327,000 -$2,000

Common Issues

Issue: Segment Not Appearing on Transaction

CauseSolution
Not deployed to transaction typeAdd transaction in Applies To
Not on transaction formCustomize form to add field
Role doesn't have accessGrant segment permission to role
Value is inactiveReactivate or choose different value

Issue: GL Account Not Created

CauseSolution
GL Impact not enabledEnable GL Impact on segment
Account type restrictedCheck account type settings
Segment value inactiveActivate the segment value

Issue: Incorrect GL Posting

CauseSolution
Line vs header conflictCheck segment sourcing rules
Missing segment valueMake segment mandatory
Wrong segment inheritedCheck source transaction

See Also