Phase 1: Enterprise Foundation (FI/CO Prerequisites)
Prime Directive Check: Before any IS-U configuration can begin, the standard SAP Financial Accounting (FI) and Controlling (CO) enterprise structure must exist. IS-U is an industry layer built on top of ECC/S4 core — without a Company Code, there is no legal entity to bill from; without a Controlling Area, there is no cost allocation framework.
⚠️ Prerequisite: Phase 0: System Standards & US Localization must be complete. Country settings (date format, decimal notation, currency, tax procedure
TAXUSJ) and user defaults must be verified before creating any enterprise objects.
Step 1.1 — Define the Chart of Accounts
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → General Ledger Accounting → Master Data → G/L Accounts → Preparations → Edit Chart of Accounts List |
| T-Code | OB13 |
SAP Screen Flow
Screen 1 — Chart of Accounts List (Table View)
When you execute OB13, SAP displays the existing Chart of Accounts entries in a table view.
- Click the New Entries button on the toolbar.
Screen 2 — New Entries: Details
Fill in the following fields:
| Field | Value | Notes |
|---|---|---|
| Chart of Accts | CAOH | 4-character alphanumeric key |
| Description | Chart of Accounts — Utilities | Free-text description |
| Maint. Language | EN | Maintenance language for G/L account names |
| Length of G/L Account Number | 10 | Defines how many digits each G/L account can have |
| Controlling Integration | ✓ (checkbox) | Enables automatic CO posting |
| Group Chart of Accts | (leave blank) | Only needed for multi-entity consolidated charts |
- Click Save (💾) or press
Ctrl+S. - A transport request dialog appears → select or create a Workbench Request → Confirm.
Why This Is Step 1
The Chart of Accounts (CoA) is the most fundamental financial object in SAP. It defines the structure of the General Ledger — every posting, whether it originates from AP, AR, Asset Accounting, or IS-U’s FI-CA, ultimately resolves to a G/L account within this chart. The Company Code (Step 1.3) cannot be created without assigning a CoA.
Key Configuration Notes
- Use 10-digit account numbers to follow S/4HANA best practice and allow granular revenue/expense segmentation for utility rate classes.
- The CoA
CAOHis a custom identifier reflecting “Chart of Accounts — Ohio.” SAP delivers standard CoAs (INT, CAUS), but for a regulated utility, a dedicated CoA provides full flexibility to model PUCO-compliant revenue accounts, regulatory asset accounts, and rider-specific liability accounts.
Step 1.1a — Define G/L Account Groups
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → General Ledger Accounting → G/L Accounts → Master Data → Preparations → Define Account Group |
| T-Code | OBD4 |
Account Groups control the number range and field layout of G/L accounts within a Chart of Accounts. Without at least one Account Group defined for
CAOH, T-CodeFS00will reject any G/L account creation with the error: “No account groups are defined in chart of accounts CAOH”.
SAP Screen Flow
Screen 1 — Account Groups (Table View)
When you execute OBD4, SAP displays existing account groups.
- Enter Chart of Accounts
CAOHin the header field (or filter). - Click New Entries.
Screen 2 — New Entries: Account Group Details
Create the following account groups:
| Acct Group | Name | From Acct | To Account |
|---|---|---|---|
ASET | Assets | 1000000000 | 1999999999 |
LIAB | Liabilities | 2000000000 | 2999999999 |
EQTY | Equity | 3000000000 | 3999999999 |
REVN | Revenue | 4000000000 | 4999999999 |
EXPN | Expenses | 5000000000 | 6999999999 |
- Click Save (
Ctrl+S). - Confirm the transport request.
Why This Step
Account Groups are the structural backbone of the Chart of Accounts. They serve two purposes:
-
Number Range Segmentation: They restrict which number ranges are valid for each category of G/L account (e.g., all asset accounts must be in the
1xxxxxxxxxrange). -
Field Status Control: Each group can have its own field status rules governing which fields are required, optional, or hidden when a user creates a G/L master record.
-
Dependency from Previous Instructions: Requires the Chart of Accounts
CAOHfrom Step 1.1. -
Dependency for Next Instructions: Every G/L account created via
FS00— including the utility revenue and AR accounts needed for FI-CA account determination (Phase 2, Step 2.5) — requires an Account Group to exist first.
Step 1.1b — Define Retained Earnings Account (P&L Account Type)
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → General Ledger Accounting → G/L Accounts → Master Data → Preparations → Define Retained Earnings Account |
| T-Code | OB53 |
SAP requires a P&L Statement Account Type and a corresponding Retained Earnings G/L account before any P&L account can be created in the Chart of Accounts. Without this,
FS00will reject revenue/expense account creation with the error: “No P&L statement account type is defined in chart of accounts CAOH”.
SAP Screen Flow
Screen 1 — Retained Earnings Account: Selection
- Execute
OB53→ Enter Chart of AccountsCAOH→ click Execute (⏩).
Screen 2 — Retained Earnings Configuration
- Click New Entries.
| Field | Value | Notes |
|---|---|---|
| P&L Statement Acct Type | X | Standard single-type indicator |
| Account | 3900000000 | Retained Earnings — must be in the EQTY account group range |
- Click Save (
Ctrl+S).
Note: If G/L account
3900000000does not yet exist, SAP will display a warning — this is expected. The account will be created later viaFS00in Phase 2, Step 2.5 C.3. TheOB53entry simply tells the system where to carry forward P&L balances at year-end closing.Clarification:
OB53is a one-time, single-entry configuration. You do NOT enter every G/L account here. You only define one mapping: “For P&L account typeX, carry the year-end net result to Retained Earnings account3900000000.” Every revenue/expense account you later create inFS00is automatically classified as P&L by its Account Group — SAP uses thisOB53mapping at year-end to sweep their balances.
Why This Step
At fiscal year-end, SAP automatically carries the net result of all P&L accounts into a single Balance Sheet account — the Retained Earnings account. This is defined per Chart of Accounts, not per Company Code. Without it:
-
No P&L-type G/L account (revenue, expense) can be created in
FS00. -
The year-end closing program (
FAGLGVTR) cannot execute. -
Dependency from Previous Instructions: Requires the Chart of Accounts
CAOH(Step 1.1) and Account GroupEQTY(Step 1.1a). -
Dependency for Next Instructions: All revenue accounts (
4100000000,4200000000,4300000000) created in Phase 2, Step 2.5 C.3 require this configuration.
Step 1.2 — Define the Fiscal Year Variant
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Fiscal Year → Maintain Fiscal Year Variant |
| T-Code | OB29 |
SAP Screen Flow
Screen 1 — Fiscal Year Variants (Table View)
When you execute OB29, SAP displays existing Fiscal Year Variants.
- Click the New Entries button.
Screen 2 — New Entries: Details
| Field | Value | Notes |
|---|---|---|
| FV | K4 | 2-character variant key |
| Description | Calendar Year, 4 Special Periods | |
| Year-Dependent | (unchecked) | Same period structure repeats every year |
| Calendar Year | ✓ (checkbox) | Periods align to calendar months Jan–Dec |
| No. of Posting Periods | 12 | One per calendar month |
| No. of Special Periods | 4 | Periods 13–16 for adjustments |
- Click Save (
Ctrl+S). - Confirm the transport request.
Note: Since Calendar Year is checked, SAP auto-populates the period boundaries (Period 1 = Jan 1–31, Period 2 = Feb 1–28/29, etc.). No manual period assignment is needed.
Why This Is Step 2
The Fiscal Year Variant defines the period structure for all financial postings. It must exist before a Company Code can be created (Company Code references a Fiscal Year Variant). The utility operates on a calendar-year fiscal year (Jan–Dec).
Key Configuration Notes
- 4 special periods are standard for regulated utilities. They accommodate:
- Period 13: Year-end regulatory adjustments (PUCO rate case true-ups)
- Period 14: Tax adjustments
- Period 15: Audit reclassifications
- Period 16: Final closing entries
- Year-Dependent = unchecked means the same period structure repeats every year (standard for calendar-year entities).
Step 1.3 — Create the Company Code
Part A: Define Company Code Base Data (OX02)
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Enterprise Structure → Definition → Financial Accounting → Edit, Copy, Delete, Check Company Code |
| T-Code | OX02 |
SAP Screen Flow
Screen 1 — Edit Company Code: Initial Screen
When you execute OX02, SAP presents a dialog with options.
- Click New Entries (or in some versions, the Edit → New Entries menu).
Screen 2 — New Company Code: Details
Fill in the required fields:
| Field | Value | Notes |
|---|---|---|
| Company Code | AEP1 | ⚠️ 4-character key — cannot be changed once transactions exist |
| Company Name | AEP Ohio — Distribution | |
| Street | 1 Riverside Plaza | AEP headquarters address |
| Postal Code | 43215 | |
| City | Columbus | |
| Country | US | |
| Language | EN | |
| Currency | USD | Local (company code) currency |
- Click Save (
Ctrl+S). - Confirm the transport request.
Part B: Maintain Company Code Global Parameters (OBY6)
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Company Code → Enter Global Parameters |
| T-Code | OBY6 |
SAP Screen Flow
Screen 1 — Global Parameters Table
- Locate Company Code
AEP1and double-click it.
Screen 2 — Company Code Global Data
- Assign the foundational financial variants created in previous steps:
| Field | Value | Notes |
|---|---|---|
| Chart of Accounts | CAOH | (created in Step 1.1) — press F4 to search |
| Fiscal Year Variant | K4 | (created in Step 1.2) |
- Click Save (
Ctrl+S).
Why This Is Step 3
The Company Code is the legal entity in SAP. It is the organizational unit for which a complete, self-contained set of financial statements (balance sheet and P&L) can be drawn. Every IS-U Contract Account, every billing posting, every FI-CA document will be posted under this Company Code.
Key Configuration Notes
- ⚠️ The Company Code ID
AEP1is a 4-character alphanumeric key. Once created and transactions are posted, this ID cannot be changed. - The Company Code reference to the CoA (
CAOH) and Fiscal Year Variant (K4) inOBY6creates the binding chain:CoA → Fiscal Year Variant → Company Code. WithoutOBY6assignment, assigning the Company Code to the Controlling Area in Step 1.9 will fail with errorKT294.
Step 1.4 — Define & Assign Field Status Variant
Part A: Define the Field Status Variant
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Ledgers → Fields → Define Field Status Variants |
| T-Code | OBC4 |
SAP Screen Flow
Screen 1 — Field Status Variant List
⚠️ Important: Do NOT click “New Entries.” Creating a blank Field Status Variant means it will have no field status groups inside it (meaning
G001won’t exist), which will causeFS00to crash later. You must copy the standard SAP variant.
- Select the row for standard variant
0001(Field Status for 0001). - Click the Copy As… button (two overlapping squares icon) on the top toolbar.
Screen 2 — Copy As: Details
- Overwrite the copied fields with our custom utility variant:
| Field | Value | Notes |
|---|---|---|
| Field Status Variant | AEP1 | 4-character key |
| Description | FSV for Utilities |
- Press Enter.
- SAP will display a prompt: “Copy all dependent entries?” → Click Copy all. (This is critical — it pulls in
G001,G005, etc.) - SAP will confirm: “Number of dependent entries copied: XX”. Press Enter.
- Click Save (
Ctrl+S). - Confirm the transport request.
Part B: Assign Company Code to Field Status Variant
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Ledgers → Fields → Assign Company Code to Field Status Variants |
| T-Code | OBC5 |
SAP Screen Flow
Screen 1 — Company Code → FSV Assignment Table
SAP displays a two-column table: Company Code | Field Status Variant.
- Locate Company Code
AEP1in the list (or click New Entries if not visible). - Set the field:
| Field | Value |
|---|---|
| Company Code | AEP1 |
| Field Status Variant | AEP1 |
- Click Save (
Ctrl+S).
Why This Step
The Field Status Variant controls which fields are required, optional, or hidden during financial document entry. Without this assignment, users will encounter screen errors when attempting to post any FI document (including the automated FI-CA postings from IS-U billing runs).
Step 1.5 — Define Posting Period Variant & Assign to Company Code
Part A: Define the Posting Period Variant
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Ledgers → Fiscal Year and Posting Periods → Posting Periods → Define Variants for Open Posting Periods |
| T-Code | OBBO |
SAP Screen Flow
Screen 1 — Posting Period Variants Table
- Click New Entries.
Screen 2 — New Entries: Details
| Field | Value |
|---|---|
| Variant | AEP1 |
| Name | Posting Periods — Utilities |
- Click Save (
Ctrl+S).
Part B: Assign Variant to Company Code
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Ledgers → Fiscal Year and Posting Periods → Posting Periods → Assign Variants to Company Code |
| T-Code | OBBP |
SAP Screen Flow
Screen 1 — Company Code → Variant Assignment Table
- Locate Company Code
AEP1in the list. - Set the field:
| Field | Value |
|---|---|
| Company Code | AEP1 |
| Variant | AEP1 |
- Click Save (
Ctrl+S).
Part C: Open the Current Posting Periods
| Attribute | Value |
|---|---|
| T-Code | OB52 |
SAP Screen Flow
Screen 1 — Maintain Posting Period Variant: Overview
- Enter Variant
AEP1in the header (or select it from the variant dropdown). - Click New Entries.
Screen 2 — New Entries: Posting Period Line
| Field | Value | Notes |
|---|---|---|
| A (Account Type) | + | + = All account types |
| From Acct | (leave blank) | Applies to all accounts |
| To Account | (leave blank) | |
| From Period 1 | 1 | January |
| Year 1 | 2026 | |
| To Period | 12 | December |
| Year | 2026 | |
| From Period 2 | 13 | Open special periods |
| Year 2 | 2026 | |
| To Period 2 | 16 | Through special period 16 |
| Year 2 | 2026 |
- Click Save (
Ctrl+S).
Why This Step
The Posting Period Variant controls which fiscal periods are open for posting. This is especially critical for IS-U because billing runs are automated batch processes — if the target posting period is closed, the entire billing run will fail with error F5 201. This variant allows independent period control per Company Code.
Step 1.6 — Define the Credit Control Area & Assign to Company Code
Part A: Define the Credit Control Area
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Enterprise Structure → Definition → Financial Accounting → Define Credit Control Area |
| T-Code | OB45 |
SAP Screen Flow
Screen 1 — Credit Control Areas List
- Click New Entries.
Screen 2 — New Entries: Details
| Field | Value | Notes |
|---|---|---|
| Credit Control Area | AEP1 | 4-character key |
| Description | Credit Control — Utilities | |
| Currency | USD | |
| Update | 000012 | Credit horizon: 12 months |
| Fiscal Year Variant | K4 | Must match Company Code FYV |
| Risk Category | 001 | Default risk category |
| Credit Limit | (leave as default) | Individual limits set on customer master |
- Click Save (
Ctrl+S).
Part B: Assign Company Code to Credit Control Area
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Enterprise Structure → Assignment → Financial Accounting → Assign Company Code to Credit Control Area |
| T-Code | OB38 |
SAP Screen Flow
Screen 1 — Company Code → Credit Control Area Assignment Table
- Locate Company Code
AEP1. - Set the field:
| Field | Value |
|---|---|
| Company Code | AEP1 |
| Credit Control Area | AEP1 |
- Click Save (
Ctrl+S).
Why This Step
The Credit Control Area manages customer credit exposure. For a regulated utility, this is foundational for:
- Dunning processes (disconnect/reconnect workflows driven by credit exposure)
- Deposit management (Ohio regulators allow security deposits based on credit assessment)
- FI-CA credit integration (IS-U Contract Accounts inherit credit limits from this area)
Step 1.7 — Define Document Number Ranges for FI-GL
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Document → Document Number Ranges → Define Document Number Ranges for Entry View |
| T-Code | FBN1 |
⚠️ Subledger Architecture Note: These number ranges are for the FI General Ledger only. Utility customer billing, payments, and collections happen entirely within the isolated FI-CA subledger — NOT in standard FI-AR (Accounts Receivable) or FI-AP (Accounts Payable). Therefore, we do not create FI-GL number ranges for customer invoices or vendor payments here. FI-CA has its own number ranges defined via
FPN1in Phase 2.
SAP Screen Flow
Screen 1 — Document Number Ranges: Company Code Selection
When you execute FBN1, SAP prompts for the Company Code.
| Field | Value |
|---|---|
| Company Code | AEP1 |
- Press Enter or click the green checkmark (✓).
Screen 2 — Number Range Maintenance: FI Documents
SAP displays the current number ranges (initially empty for a new Company Code).
- Click the Change Intervals button (pencil icon 📝) on the toolbar.
Screen 3 — Maintain Intervals: Change
- Click the Insert Interval button (➕ icon) to add a new row.
SAP presents an entry line with the following fields. Repeat for each number range:
Range 01 — General G/L Documents
| Field | Value | Notes |
|---|---|---|
| No | 01 | 2-character number range identifier |
| Year | 9999 | 9999 = valid for all fiscal years (no year restriction) |
| From No. | 0100000000 | Start of range |
| To Number | 0199999999 | End of range |
| NR Status | (leave blank) | System auto-populates as documents are created; shows the last number assigned |
| Ext (External) | ☐ (unchecked) | Internal numbering — SAP auto-assigns the next sequential number |
- Click Insert Interval (➕) again:
Range 19 — FI-CA Clearing Transfer to G/L
| Field | Value | Notes |
|---|---|---|
| No | 19 | Reserved for automated FI-CA → G/L transfer postings |
| Year | 9999 | |
| From No. | 1900000000 | |
| To Number | 1999999999 | |
| NR Status | (leave blank) | |
| Ext | ☐ (unchecked) | Internal |
- After both ranges are entered, click Save (💾) or press
Ctrl+S. - SAP will display: “Number range intervals were saved.” Click the Back button (🔙) to return.
Summary Table
| No | Year | From No. | To Number | NR Status | Ext | Description |
|---|---|---|---|---|---|---|
01 | 9999 | 0100000000 | 0199999999 | (blank) | ☐ | General G/L Documents (SA, journal entries, accruals) |
19 | 9999 | 1900000000 | 1999999999 | (blank) | ☐ | FI-CA Clearing Transfer to G/L (automated ZC postings) |
Why only 2 ranges? In a standard ERP, you would also create ranges for Customer Invoices (DR), Vendor Invoices (KR), etc. However, the utility manages all customer billing exclusively in the FI-CA subledger. FI-CA has its own isolated document number ranges (created via
FPN1in Phase 2, Step 2.2.2). The FI General Ledger only receives compressed summary postings from FI-CA via the Reconciliation Key transfer — and those use range19with document typeZC.
Why This Step
SAP requires pre-defined number ranges to assign sequential document numbers. Without these ranges, no financial document can be saved — the system throws error FO 117 (“Number range XX does not exist”). Range 19 is specifically reserved for the FI-CA to G/L transfer postings — the periodic compression and reconciliation of millions of subledger entries into summarized G/L entries.
Key Configuration Notes
- Year =
9999means the range is valid for all years. If you set a specific year (e.g.,2026), the range would only be valid for fiscal year 2026, and you’d need to create new ranges annually — not recommended. - NR Status is a display-only counter showing the last assigned number. It starts blank and auto-increments. You can manually set this field if migrating from a legacy system where you want SAP to continue numbering from a specific point.
- Ext (External) = unchecked means SAP auto-assigns numbers (internal numbering). If checked, the user must manually type a document number during posting — never used for automated IS-U billing processes.
- ⚠️ Number ranges must not overlap. If ranges
01and19share any numbers, the system will reject the save with errorNR 751.
Step 1.8 — Define Document Types (The Subledger Architecture)
⚠️ Architectural Note: A regulated utility handles millions of customers. We do not use standard SAP Accounts Receivable (FI-AR) or Accounts Payable (FI-AP) for utility billing. Customer billing, payments, and collections happen entirely within the isolated FI-CA subledger. Therefore:
- FI-GL document types (configured here via
OBA7) handle only corporate G/L postings and the automated clearing documents received from FI-CA.- FI-CA document types (configured in Phase 2 via table
V_TFK003/SM30) handle actual billing invoices, payments, and reversals.Do NOT create standard FI-AR types like
DR/DZor FI-AP types likeKR/KZfor utility billing. Those belong to a different subledger architecture (standard FI-AR) that is NOT used in IS-U.
Part A: General Ledger Document Types (FI-GL via OBA7)
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Financial Accounting Global Settings → Document → Document Types → Define Document Types for Entry View |
| T-Code | OBA7 |
SAP Screen Flow
Screen 1 — Document Types (Table View)
When you execute OBA7, SAP displays all existing document types. Many SAP-standard types already exist (SA, DR, KR, etc.).
Modify the Standard SA Document Type
- Locate the row for document type
SAand double-click it.
Screen 2 — Change View “Document Types”: Details
| Field | Value | Notes |
|---|---|---|
| Document Type | SA | Pre-existing standard type |
| Description | G/L Account Document | |
| Number Range | 01 | (created in Step 1.7) — press F4 to select |
| Reverse Doc Type | SA | Reversal document uses same type |
| Account Types Allowed | ☑ Assets, ☑ Customer, ☑ Vendor, ☑ Material, ☑ G/L Account — ALL CHECKED | General-purpose document that can post to any account type |
| Net Document Type | (unchecked) |
- Click Save (
Ctrl+S).
Create the Custom ZC Type for FI-CA Clearing
- Click the Back button (🔙) to return to the table view.
- Click New Entries.
Screen 3 — New Entries: Details
| Field | Value | Notes |
|---|---|---|
| Document Type | ZC | Custom type for FI-CA Utility Clearing — Z prefix ensures Y/Z customer namespace compliance |
| Description | FI-CA Utility Clearing | Receives automated summary postings from the FI-CA subledger |
| Number Range | 19 | (created in Step 1.7) |
| Reverse Doc Type | ZC | |
| Account Types Allowed | Check only: ☑ G/L Account | ⚠️ G/L only — this document type posts compressed subledger summaries, not individual customer lines |
- Click Save (
Ctrl+S).
FI-GL Document Types Summary
| Doc Type | Description | Number Range | Reverse Doc Type | Account Types Allowed | Purpose |
|---|---|---|---|---|---|
SA | G/L Account Document | 01 | SA | ALL (Assets, Customer, Vendor, Material, G/L) | Corporate journal entries, accruals, reclassifications |
ZC | FI-CA Utility Clearing | 19 | ZC | G/L Account only | ⚠️ Automated — receives compressed FI-CA → G/L transfer postings via Reconciliation Key |
⚠️ Important: Notice the absence of
DR(Customer Invoice),DZ(Customer Payment),KR(Vendor Invoice), andKZ(Vendor Payment). These standard FI-AR/AP document types are intentionally excluded. Utility billing does not flow through FI-AR — it flows through FI-CA, which has its own document type namespace configured below.
Part B: Contract Accounting Document Types (FI-CA Subledger)
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Financial Accounting → Contract Accounts Receivable and Payable → Basic Functions → Postings and Documents → Document → Maintain Document Types |
| Table View | V_TFK003 (accessible via SM30) |
| Prerequisite | FI-CA document number ranges must first be created via T-Code FPN1 (configured in Phase 2, Step 2.2.2) |
Note: This is a preview of the FI-CA document types. The full screen flow with number range creation is documented in Phase 2, Step 2.2.2 and Step 2.3. We introduce them here to complete the architectural picture.
These are the document types used by the SAP IS-U Billing Engine when a customer is billed, makes a payment, or has an invoice reversed:
| Doc Type | Description | FI-CA Number Range | Reverse Doc Type | Engine |
|---|---|---|---|---|
ZI | AEP Print Document / Invoice | 02 | ZR | Billing run (EA00) |
ZR | AEP Invoice Reversal | 03 | — | Reversal processing |
ZP | AEP Customer Payment | 04 | ZR | Payment posting (FP06) |
ZD | AEP Dunning Charge | 05 | ZR | Dunning run (FPDN) |
ZW | AEP Write-Off | 06 | ZR | Write-off processing |
ZB | AEP Budget Billing Plan | 02 | ZR | Budget billing creation |
The
Zprefix follows SAP’s customer namespace convention for custom objects.
The Two-Tier Posting Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ FI-CA SUBLEDGER (Isolated — Millions of individual transactions) │
│ │
│ ZI (Invoice) → Customer owes $169.35 │
│ ZP (Payment) → Customer pays $169.35 │
│ ZD (Dunning) → Late fee $5.00 applied │
│ │
│ Individual line items per customer, per billing period │
│ Managed via: Contract Account → Business Partner │
└────────────────────────┬────────────────────────────────────────────┘
│
│ Periodic Transfer (T-Code: FPG1)
│ Compressed via Reconciliation Key
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ FI GENERAL LEDGER (Corporate — Summarized journal entries) │
│ │
│ ZC (Clearing) → Debit: 1200000000 (AR) $1,250,000.00 │
│ Credit: 4100000000 (Revenue) $1,250,000.00 │
│ │
│ One aggregated entry for thousands of individual FI-CA postings │
│ Posted to Number Range 19 │
└─────────────────────────────────────────────────────────────────────┘Why This Architecture
A standard General Ledger would collapse under the volume of utility transactions. With 500,000+ customers billed monthly, FI-CA processes millions of individual line items. The two-tier architecture:
- FI-CA handles high-volume, customer-level transactions with optimized indexing and mass-processing capabilities
- FI-GL receives only compressed, summarized postings — keeping the General Ledger clean for financial reporting and audit
- The Reconciliation Key (Phase 2, Step 2.6) controls the compression and transfer frequency
Step 1.9 — Define the Controlling Area
| Attribute | Value |
|---|---|
| SPRO Path | SPRO → Controlling → General Controlling → Organization → Maintain Controlling Area |
| T-Code | OKKP |
SAP Screen Flow
Screen 1 — Controlling Area: Initial Screen
When you execute OKKP, SAP displays a tree structure on the left side with options:
- Maintain Controlling Area
- Assign Company Code
Part A: Create the Controlling Area
- Select Maintain Controlling Area in the tree.
- Click New Entries.
Screen 2 — New Entries: Controlling Area Details
| Field | Value | Notes |
|---|---|---|
| Controlling Area | AEP1 | 4-character key |
| Name | Controlling Area — Utilities | |
| CoCd → CCA Assignment | 1 (1:1 — One Company Code to One Controlling Area) | |
| Currency Type | 10 | Company Code Currency (USD) |
| Currency | USD | |
| Chart of Accounts | CAOH | ⚠️ Must match the Company Code’s CoA |
| Fiscal Year Variant | K4 | Must match Company Code’s FYV |
| Cost Center Std. Hierarchy | AEP1 | Top node of the cost center tree |
- Click Save (
Ctrl+S). - ⚠️ SAP Interacts: A warning dialog will appear stating: “Standard hierarchy AEP1 does not exist. Should system create standard hierarchy AEP1?”
- Click Yes. (This automatically generates the top-level node for the hierarchy we’ll use in Step 1.10).
Part B: Assign Company Code to Controlling Area
- In the left-hand tree, select Assign Company Code.
- Enter Controlling Area
AEP1.
Screen 3 — Assignment Table
| Field | Value |
|---|---|
| Company Code | AEP1 |
- Click Save (
Ctrl+S).
Part C: Activate Components/Control Indicators
- Go back to the main tree → select Activate Components/Control Indicators.
- The right-hand pane will show “Existing Fiscal Year Intervals” (currently empty: Entry 0 of 0).
- Click the New Entries button on the top toolbar.
Screen 4 — Component Activation Details
- The system prompts for a Fiscal Year and component flags. Fill them in:
| Field | Value | Notes |
|---|---|---|
| Fiscal Year | 2026 | The year these settings become active |
| Cost Centers | Component active | Required for utility cost allocation |
| Order Management | Component active | Required for project/service order tracking (change the dropdown) |
| Commit. Management | Component not active | Leave as default |
| Acty-Based Costing | Component Not Active | Leave as default |
| All Currencies | ✓ Checked | Located under “Other Indicators” |
- Click Save (
Ctrl+S).
Why This Step
The Controlling Area is the organizational unit for management accounting. In IS-U, it serves as the link between utility billing revenue and internal cost allocation. When a billing document posts revenue to an FI G/L account, the Controlling Area simultaneously records the associated profitability to a Profit Center (e.g., “Residential Columbus,” “Commercial Columbus,” “Industrial Columbus”).
Key Configuration Notes
- Set the Controlling Area to Company Code assignment as 1:1 (one controlling area to one company code). This is the standard model for a single regulated utility.
- Ensure the Chart of Accounts matches (
CAOH) — the CO module must post to the same G/L accounts as FI.
Step 1.10 — Create Essential Cost Centers
| Attribute | Value |
|---|---|
| T-Code | KS01 |
SAP Screen Flow
Screen 1 — Create Cost Center: Initial Screen
When you execute KS01, SAP prompts for initial parameters.
| Field | Value |
|---|---|
| Cost Center | CC-DIST (first cost center) |
| Controlling Area | AEP1 |
| Valid From | 01/01/2026 |
| Valid To | 12/31/9999 |
- Press Enter.
Screen 2 — Create Cost Center: Basic Data
| Field | Value | Notes |
|---|---|---|
| Name | Distribution Operations | Short description |
| Description | Distribution Operations — Utilities | Long description |
| Person Responsible | (enter responsible manager name) | |
| Cost Center Category | 1 (Production) | Or appropriate category |
| Hierarchy Area | AEP1 | Standard Hierarchy node |
| Company Code | AEP1 | Auto-populated from Controlling Area |
| Business Area | (leave blank) | |
| Currency | USD | |
| Profit Center | (leave blank for now) | Can assign later |
- Click Save (
Ctrl+S).
Repeat the entire process (KS01) for each additional cost center:
| Cost Center | Name | Description |
|---|---|---|
CC-DIST | Distribution Operations | Grid maintenance, line crews, substations |
CC-CUST | Customer Service | Call center, walk-in centers, correspondence |
CC-BILL | Billing & Revenue | Billing engine operations, rate administration |
CC-METER | Metering & AMI Operations | AMI head-end, meter deployment, MDM |
CC-IT | IT & Systems | SAP operations, integrations, infrastructure |
Why This Step
Cost Centers are required for any expense allocation in the system. IS-U processes like meter deployment, billing run execution, and print/mail operations will need cost objects. Creating these now establishes the CO structure before IS-U generates any cost-relevant transactions.
Step 1.11 — Verify Units of Measure (Critical for EDM)
| Attribute | Value |
|---|---|
| T-Code | CUNI |
SAP Screen Flow
Screen 1 — Units of Measurement: Initial Screen
When you execute CUNI, SAP presents a selection screen.
- In the Unit of Measurement field, enter
KWH. - Press Enter or click Display (👓).
Screen 2 — Unit of Measurement Details
Verify the following fields are correctly configured:
| Field | Expected Value | Notes |
|---|---|---|
| Measurement Unit | KWH | Internal SAP key |
| Long Text | Kilowatt-hour | |
| Short Text | kWh | |
| ISO Code | KWH | ⚠️ Critical — EDM uses ISO codes for data exchange |
| Dimension | ENERGY | |
| SI Unit | (linked to Joule conversion) | |
| Commercial Abbreviation | kWh |
- If any field is incorrect, click Change (pencil icon), correct it, and Save.
Repeat verification for all required UoMs:
| UoM Key | Long Text | ISO Code | Dimension |
|---|---|---|---|
KWH | Kilowatt-hour | KWH | Energy |
KW | Kilowatt | KW | Power |
MWH | Megawatt-hour | MWH | Energy |
MW | Megawatt | MW | Power |
V | Volt | V | Voltage |
A | Ampere | A | Current |
KVARH | Kilovolt-Ampere-Reactive-Hour | K5 | Reactive Energy |
⚠️ This must be verified before Phase 4. If
KWHdoes not exist with the correct ISO mapping, EDM profile allocation will fail silently and interval data will not flow into billing.
Why This Step (⚠️ Critical EDM Prerequisite)
Units of Measurement are global SAP objects (client-level), not company-code-specific. They are the atomic foundation for:
- Device Management: Register units on meters (KWH, KW)
- Energy Data Management: All interval data profiles store values in these units
- Billing: Rate calculations convert metered consumption (KWH) to monetary amounts (USD)
Phase 1 — Completion Checklist
| # | Object | T-Code | ID/Value | Status |
|---|---|---|---|---|
| 1.1 | Chart of Accounts | OB13 | CAOH | ☐ |
| 1.1a | G/L Account Groups | OBD4 | ASET, LIAB, EQTY, REVN, EXPN for CoA CAOH | ☐ |
| 1.1b | Retained Earnings Account | OB53 | P&L type X → account 3900000000 for CoA CAOH | ☐ |
| 1.2 | Fiscal Year Variant | OB29 | K4 (Calendar, 4 special) | ☐ |
| 1.3 | Company Code & Global Params | OX02 / OBY6 | AEP1 mapped to CAOH & K4 | ☐ |
| 1.4 | Field Status Variant | OBC4 / OBC5 | AEP1 assigned to AEP1 | ☐ |
| 1.5 | Posting Period Variant | OBBO / OBBP / OB52 | AEP1 assigned, periods 1–16 opened | ☐ |
| 1.6 | Credit Control Area | OB45 / OB38 | AEP1 assigned to AEP1 CoCd | ☐ |
| 1.7 | FI-GL Number Ranges | FBN1 | 01 (G/L), 19 (FI-CA Clearing) — year 9999, internal | ☐ |
| 1.8a | FI-GL Document Types | OBA7 | SA (all accts), ZC (G/L only — FI-CA clearing) | ☐ |
| 1.8b | FI-CA Document Types (preview) | V_TFK003 / SM30 | ZI, ZR, ZP, ZD, ZW, ZB — configured in Phase 2 | ☐ |
| 1.9 | Controlling Area | OKKP | AEP1 with 3 components active | ☐ |
| 1.10 | Cost Centers | KS01 | CC-DIST, CC-CUST, CC-BILL, CC-METER, CC-IT | ☐ |
| 1.11 | Units of Measurement | CUNI | KWH, KW, MWH, MW, V, A, KVARH verified | ☐ |
🔗 All Phase 1 prerequisites are now in place. Proceed to Phase 2: IS-U Basic Settings & FI-CA Integration.