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 Order✓✓When billed
Invoice✓✓✓
Credit Memo✓✓✓
Sales Order✓✓When invoiced

Inventory Transactions​

TransactionHeaderLinesNotes
Item Receipt✓✓Affects inventory accounts
Item Fulfillment✓✓COGS impact
Inventory Adjustment✓✓Full GL impact
Assembly Build✓✓WIP 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​