Platform reference
SAP ERP: Architecture, Data Model, and Tables
How SAP ECC 6.0 and S/4HANA are built, how the organizational and document models work, and which tables hold the data behind GFEBS, Navy ERP, GCSS-Army, LMP, and DLA EBS.
Numbered tables
5 diagrams1. What runs on SAP in DoD
Five systems in this suite run on SAP ERP: GFEBS, Navy ERP, GCSS-Army, LMP, and DLA EBS. They share one product data model. A purchase order sits in EKKO and EKPO in all five. A financial document sits in BKPF and BSEG in all five. What differs between programs is configuration, custom Z-tables, interfaces, and which modules are switched on.
| System | Owner | Main SAP scope | Role in the reporting chain |
|---|---|---|---|
| GFEBS | Army | FI, PSM-FM, CO, MM purchasing, SD for reimbursables, asset accounting, real estate | Army General Fund general ledger. Sends its trial balance to DDRS. |
| Navy ERP | Navy | FI, PSM-FM, CO, MM, PS, SD, plant maintenance, HR time | General ledger for Navy systems commands and working capital activities. |
| GCSS-Army | Army | MM inventory and purchasing, PM maintenance, property book, with a finance component | Tactical logistics ERP. Its financial postings follow the GFEBS finance template. |
| LMP | Army Materiel Command | MM, PP, SD, PM, FI and CO for the Army Working Capital Fund | National-level logistics and the AWCF general ledger. |
| DLA EBS | Defense Logistics Agency | MM, SD, FI, CO, plus planning and procurement add-ons | DLA supply chain and working capital fund accounting. |
Scope lines summarize public program descriptions. Each program office holds the authoritative module and release list.
2. Technical architecture
SAP ERP is a three-tier client-server system. Users and interfaces reach an application server. The application server runs ABAP programs in work processes. Only the application server talks to the database.
Work process types and the database interface follow the SAP NetWeaver documentation. Program-specific sizing and hosting are not shown.
| Component | What it does | Why a financial manager should care |
|---|---|---|
| Dispatcher | Receives each request and assigns it to a free work process of the right type. | Long queues at month end show up as slow screens and delayed postings. |
| Dialog work process (DIA) | Runs one screen step of an online transaction. | Each step is its own database commit unit, which is why SAP uses update tasks. |
| Update work process (UPD, UP2) | Writes the document to the database after the dialog ends. V1 updates are time-critical. V2 updates are statistical. | A failed update leaves a document number with no document. Transaction SM13 lists them. |
| Background work process (BGD) | Runs scheduled jobs: payment runs, interface loads, depreciation, period-end programs. | Job logs in SM37 are audit evidence that a control ran. |
| Enqueue server | Holds the logical lock table so two users cannot change the same document. | Stuck locks block postings. SM12 shows them. |
| Message server | Balances logons across instances. | No direct audit relevance. |
| ICM | Handles HTTP, HTTPS, and SMTP for Fiori, web services, and OData. | Web-service interfaces authenticate here. |
| Gateway | Handles RFC calls from other systems, including IDoc delivery. | Interface user accounts and RFC destinations (SM59) are access-control scope. |
| Database interface | Translates Open SQL into the database dialect and manages table buffers. | Explains why the same ABAP program runs on Oracle or HANA. |
Clients, landscapes, and transports
- A client is a self-contained business tenant inside one SAP system. The client number is the first key field (
MANDT) of almost every application table. Any direct SQL against an SAP database must filter on it. - A standard landscape has three systems: development, quality assurance, and production. Configuration and code move between them in transport requests. The transport log is the change-management evidence auditors ask for.
- Configuration lives in tables too. The Implementation Guide (
SPRO) is a menu over thousands of customizing tables such asT001(company codes) andT003(document types). - The ABAP Dictionary (
SE11) defines every table. ECC has three physical kinds: transparent tables, pooled tables, and cluster tables.BSEGis a cluster table in ECC, which is why it cannot be joined in plain SQL there. In S/4HANA it is transparent.
3. Organizational structure
SAP separates the legal view, the cost view, the budget view, and the logistics view of an organization. Each view has its own top-level unit. Assignments between them decide which postings are allowed.
| Unit | Field | Config table | Meaning in a DoD implementation |
|---|---|---|---|
| Client | MANDT | T000 | The production tenant. Usually one per program. |
| Company code | BUKRS | T001 | A balanced set of books. Often one per reporting entity or fund group. |
| Chart of accounts | KTOPL | T004 | The account list. DoD programs load the DoD Standard Chart of Accounts: a six-digit USSGL account plus a four-digit DoD extension. |
| Ledger | RLDNR | T881 | New GL ledgers. A leading ledger carries the statutory view. |
| Controlling area | KOKRS | TKA01 | Cost accounting scope for cost centers, orders, and WBS elements. |
| FM area | FIKRS | FM01 | Budget control scope. Holds funds, funds centers, and commitment items. |
| Business area | GSBER | TGSB | Cross-company-code segment for balance sheets below company code. |
| Plant | WERKS | T001W | A site that holds stock or performs maintenance. |
| Storage location | LGORT | T001L | Where stock sits inside a plant. |
| Purchasing organization | EKORG | T024E | The unit that negotiates and issues purchase orders. |
| Sales organization | VKORG | TVKO | The unit that sells. Used for reimbursable orders and working capital sales. |
4. The document principle
Every posting in SAP creates a numbered document that cannot be deleted. A correction is a new reversing document. Each document has a header and line items, and each carries a link back to the document that caused it. That chain is what makes transaction-level audit support possible.
- A financial document is identified by company code, document number, and fiscal year:
BUKRS+BELNR+GJAHR. - The header field
AWTYPnames the kind of source object.AWKEYholds its key.AWTYP = MKPFpoints to a material document.RMRPpoints to a logistics invoice.VBRKpoints to a billing document.BKPFmeans the posting was made directly in FI. - The document type
BLARTclassifies the posting. Common values:SAgeneral ledger,KRvendor invoice,KZvendor payment,RElogistics invoice,WEgoods receipt,ZPpayment run,AAasset posting. - Posting keys (
BSCHL) set debit or credit and the account type.40debits a GL account.50credits one.31credits a vendor.25debits a vendor for payment. - Changes to master data and documents are logged in
CDHDRandCDPOS. These two tables answer the question of who changed what, and when.
5. Finance and Funds Management data model
Three ledgers update together when a business event posts. Financial Accounting records the proprietary entry. Funds Management records budget consumption against fund, funds center, and commitment item. Controlling records cost against a cost center, order, or WBS element. The line item in BSEG carries the account assignments for all three.
Key fields are marked at the top of each entity. Field lists are abbreviated. Confirm the full key in SE11 for the release in use.
| Table | Holds | Key fields | Use it to |
|---|---|---|---|
BKPF | Accounting document header | BUKRS, BELNR, GJAHR | Find who posted, when, with which transaction, and from which source object. |
BSEG | Accounting document line items | BUKRS, BELNR, GJAHR, BUZEI | Read every debit and credit with its account assignment. |
BSIS / BSAS | GL open and cleared item index | BUKRS, HKONT, AUGDT, GJAHR, BELNR | List line items by GL account without reading BSEG. |
BSIK / BSAK | Vendor open and cleared items | BUKRS, LIFNR, GJAHR, BELNR | Age accounts payable and prove payment clearing. |
BSID / BSAD | Customer open and cleared items | BUKRS, KUNNR, GJAHR, BELNR | Age receivables, including reimbursable billings. |
FAGLFLEXA | New GL line items per ledger | RYEAR, DOCNR, RLDNR, RBUKRS, DOCLN | Read the ledger view with segment and fund on every line. |
FAGLFLEXT | New GL totals | RYEAR, RLDNR, RBUKRS, RACCT, plus dimensions | Build a trial balance by period. |
GLT0 | Classic GL totals | BUKRS, RYEAR, RACCT, RBUSA | Legacy totals where the new GL is not active. |
SKA1 / SKB1 / SKAT | GL account master: chart, company code, text | KTOPL, SAKNR / BUKRS, SAKNR | Check account type, reconciliation flag, and open-item management. |
LFA1 / LFB1 / LFBK | Vendor master: general, company code, bank | LIFNR | Validate payee data. |
KNA1 / KNB1 | Customer master | KUNNR | Identify trading partners on receivables. |
REGUH / REGUP | Payment run header and paid items | LAUFD, LAUFI, ZBUKR, LIFNR, VBLNR | Tie a payment to the invoices it cleared. |
PAYR | Payment medium register | ZBUKR, HBKID, HKTID, CHECT | Trace check or EFT numbers. |
T001B | Posting period control | BUKRS, account type, period range | Show which periods were open when a document posted. |
CDHDR / CDPOS | Change document header and items | OBJECTCLAS, OBJECTID, CHANGENR | Prove who changed a master record or document field. |
| Table | Holds | Key or main fields | Use it to |
|---|---|---|---|
FM01 | FM area definition | FIKRS | Find the update profile and fiscal year variant. |
FMFINCODE | Fund master | FIKRS, FINCODE | Map a fund to its appropriation and validity dates. |
FMFCTR | Funds center master | FIKRS, FICTR, DATBIS | Identify the organization that holds budget. |
FMCI | Commitment item master | FIKRS, GJAHR, FIPEX | Classify spending by object class or expenditure type. |
TFKB | Functional area | FKBER | Classify by program or mission. |
FMMEASURE | Funded program | FMAREA, MEASURE | Track budget below the fund for a program or project. |
FMIOI | Commitment and funds transfer line items | Reference document fields REFBN, REFBT, RFORG, RFPOS, RFKNT, RFETE | Read open commitments and obligations from requisitions, orders, and earmarked funds. |
FMIFIIT | FI line items in FM | FMBELNR, FIKRS, FMBUZEI, BTART, RLDNR, GJAHR, STUNR | Read invoices, payments, and other actuals against budget. KNBELNR links to the FI document. |
FMIT | FM totals | Ledger, year, FM area, fund, funds center, commitment item, value type | Summarize commitments and actuals by budget address. |
FMBH / FMBL | BCS budget entry document header and lines | FM_AREA, DOCYEAR, DOCNR | Trace each budget load, transfer, supplement, and return. |
FMBDT | BCS budget totals | FM area, year, budget address, budget category, budget type | Read current budget by address. |
FMAVCT | Availability control totals | Control ledger, FM area, control address | Compare consumable budget to consumed amount. This is what the funds check reads. |
KBLK / KBLP | Earmarked funds header and lines | BELNR, BLPOS | Trace funds reservations, precommitments, and commitments not tied to a purchase order. |
KBLE | Earmarked funds consumption history | BELNR, BLPOS, reference document | See which documents drew down a reservation. |
WRTTP) seen on commitment and actual line items| Value type | Meaning | Typical source | Budgetary stage |
|---|---|---|---|
| 50 | Purchase requisition | EBAN | Commitment |
| 51 | Purchase order | EKKO / EKPO | Obligation |
| 52 | Business trip commitment | Travel management | Obligation |
| 54 | Invoice | BKPF / BSEG, RBKP | Expenditure accrued |
| 57 | Payment | Payment document | Outlay |
| 58 | Down payment request | FI | Advance requested |
| 61 | Down payment | FI | Advance paid |
| 65 | Funds commitment | KBLK / KBLP | Obligation without a purchase order |
| 66 | Transfer posting | FI | Reclassification |
| 80 / 81 / 82 | Funds block, funds reservation, funds precommitment | KBLK / KBLP | Administrative reservation and commitment |
| 95 | Secondary cost posting | CO | Cost allocation with FM update |
Value types are standard PSM-FM values. Which ones post, and at which date, depends on the FM update profile set in the FM area.
How SAP produces USSGL budgetary accounts
Standard FI only records proprietary accounts. The US Federal extension of Public Sector Management adds a budgetary ledger. When an FM event posts, such as an obligation or a payment, the budgetary ledger derives the matching 4000-series entry and posts it in the same FI document or a linked one. The result is that one business event carries both the proprietary and the budgetary entry, which is what FFMIA requires at the transaction level.
6. Procure-to-pay document flow
Procure-to-pay is the largest transaction population in most DoD general fund audits. The flow below shows the SAP step, the tables each step writes, and the accounting effect.
USSGL accounts show the standard budgetary progression. In several DoD programs entitlement or disbursing happens outside the ERP and returns by interface.
| Table | Holds | Key fields | Link forward |
|---|---|---|---|
EBAN | Purchase requisition items | BANFN, BNFPO | EKPO-BANFN on the purchase order item |
EBKN | Requisition account assignment | BANFN, BNFPO, ZEBKN | Fund, funds center, commitment item for the commitment |
EKKO | Purchasing document header | EBELN | EKPO, EKBE |
EKPO | Purchasing document item | EBELN, EBELP | Item price, quantity, plant, material group |
EKKN | Purchase order account assignment | EBELN, EBELP, ZEKKN | GL account, cost object, and FM address for the obligation |
EKET | Delivery schedule lines | EBELN, EBELP, ETENR | Delivery dates and quantities |
EKBE | Purchase order history | EBELN, EBELP, ZEKKN, VGABE, GJAHR, BELNR, BUZEI | VGABE 1 is a goods receipt. VGABE 2 is an invoice receipt. |
MKPF / MSEG | Material document header and items | MBLNR, MJAHR, ZEILE | BKPF-AWKEY holds the material document number and year |
ESSR / ESLL | Service entry sheet header and lines | LBLNI | Acceptance of services against a purchase order |
RBKP / RSEG | Logistics invoice header and items | BELNR, GJAHR | BKPF-AWKEY holds the invoice number and year |
MARA / MARC / MARD / MBEW | Material master: general, plant, storage location, valuation | MATNR | Stock quantities and moving average or standard price |
- Start from the invoice or payment in the sample. Read
BKPFfor the document and noteAWTYPandAWKEY. - If
AWTYPisRMRP, splitAWKEYinto invoice number and year and readRBKPandRSEG.RSEGgives the purchase order and item. - Read
EKBEfor that order item. It lists every goods receipt and invoice posted against it. - Read
EKKO,EKPO, andEKKNfor the obligation amount and the funding line. - Read
FMIOIbyREFBNequal to the order number for the open obligation, andFMIFIITbyKNBELNRequal to the FI document for the expenditure. - Read
EKPO-BANFNto step back to the requisition inEBAN, orKBLPif the commitment was an earmarked funds document.
7. Other module data models
| Table | Holds | Key fields |
|---|---|---|
CSKS / CSKT | Cost center master and text | KOKRS, KOSTL, DATBI |
CSKA / CSKB | Cost element master | KTOPL, KSTAR / KOKRS, KSTAR, DATBI |
AUFK | Order master: internal, maintenance, production | AUFNR |
COBK | CO document header | KOKRS, BELNR |
COEP | CO actual line items | KOKRS, BELNR, BUZEI |
COSP / COSS | CO totals for primary and secondary costs | OBJNR, GJAHR, WRTTP, KSTAR |
COOI | CO commitment line items | REFBT, REFBN, RFPOS |
PROJ | Project definition | PSPNR, external key PSPID |
PRPS | WBS element | PSPNR, external key POSID |
PRHI | WBS hierarchy | POSNR |
RPSCO | Project totals | OBJNR, WRTTP, GJAHR |
| Table | Holds | Key fields |
|---|---|---|
VBAK / VBAP | Sales order header and items | VBELN, POSNR |
LIKP / LIPS | Delivery header and items | VBELN, POSNR |
VBRK / VBRP | Billing document header and items | VBELN, POSNR |
VBFA | Sales document flow | VBELV, POSNV, VBELN, POSNN, VBTYP_N |
KONV | Pricing conditions | KNUMV, KPOSN, STUNR |
VBFA is the SD equivalent of EKBE. It links order, delivery, and bill in one table.
| Table | Holds | Key fields |
|---|---|---|
ANLA | Asset master | BUKRS, ANLN1, ANLN2 |
ANLZ | Time-dependent asset assignments | BUKRS, ANLN1, ANLN2, BDATU |
ANLB / ANLC | Depreciation terms and annual values | BUKRS, ANLN1, ANLN2, AFABE |
ANEK / ANEP | Asset document header and line items | BUKRS, ANLN1, GJAHR, LNRAN |
ANLP | Periodic depreciation postings | BUKRS, GJAHR, PERAF, ANLN1 |
EQUI / EQUZ | Equipment master and time segments | EQUNR |
IFLOT | Functional location | TPLNR |
AFIH / AFKO / AFVC | Maintenance order header, order header data, operations | AUFNR, AUFPL |
QMEL | Maintenance or quality notification | QMNUM |
RESB | Reservations and dependent requirements | RSNUM, RSPOS |
MCHB | Batch stock | MATNR, WERKS, LGORT, CHARG |
LAGP / LQUA | Warehouse bins and quants | LGNUM, LGTYP, LGPLA / LQNUM |
8. ECC 6.0 compared with S/4HANA
S/4HANA keeps the document principle and most table names, and changes where totals and line items live. One table, ACDOCA, holds the line items that ECC spread across FI, the new GL, CO, asset accounting, and the material ledger. Totals are computed on read.
| Area | ECC 6.0 | S/4HANA | Effect on extracts and audit queries |
|---|---|---|---|
| GL line items | BSEG, FAGLFLEXA | ACDOCA universal journal. BSEG remains as the entry view. | Point trial balance and universe queries at ACDOCA. |
| GL totals | GLT0, FAGLFLEXT | No stored totals. Same-named compatibility views read ACDOCA. | Old queries still run, with different performance. |
| Open item indexes | BSIS, BSAS, BSIK, BSAK, BSID, BSAD | Compatibility views | No longer physical tables. |
| CO line items and totals | COEP, COSP, COSS | Actuals in ACDOCA. COEP keeps some value types. | FI and CO reconcile by design because they share one line. |
| Asset line items | ANEP, ANLC, ANLP | Actuals in ACDOCA. Plan values in FAAT_PLAN_VALUES. | Asset subledger ties to GL without a reconciliation program. |
| Material documents | MKPF, MSEG | MATDOC | One table for header and item. |
| Vendor and customer master | LFA1, KNA1 | Business partner BUT000 is the lead object, linked through CVI_VEND_LINK and CVI_CUST_LINK. | Payee validation must read the business partner. |
| Funds Management | FMIOI, FMIFIIT, FMIT, BCS tables | Same tables remain in use. | FM queries carry over. |
| Database | Several supported | HANA only, column store, in memory | Line-item reporting replaces batch extracts. |
| User interface | SAP GUI | Fiori apps over OData, SAP GUI still available | Access reviews must cover Fiori catalogs as well as roles. |
Sources: SAP material on the universal journal and migration to S/4HANA Finance listed at the end of this page.
9. Integration technologies
The Army has publicly described SLT streaming from GFEBS and GCSS-Army into Advana. Other programs may use different extraction methods.
| Technology | What it is | Evidence tables or transactions |
|---|---|---|
| IDoc | Structured message with a control record, data segments, and status records. Used for inbound invoices, travel, pay, and outbound orders. | EDIDC, EDID4, EDIDS. Monitor with WE02, WE05, BD87. |
| RFC and BAPI | Remote function calls. A BAPI is a stable business interface, for example to create a purchase order. | SM59 destinations, SM58 transactional RFC errors. |
| PI/PO | SAP middleware that maps and routes messages between systems. | Message monitoring in the PI system. |
| Batch input and LSMW | Simulated screen entry for mass loads. | SM35 session logs. |
| SLT | Trigger-based replication server that copies table changes to another database in near real time. | Replication configuration and logging tables in the SLT system. |
| BW extraction | Delivered extractors feed a data warehouse. Examples: 0FI_GL_14 new GL line items, 0PU_IS_PS_31 FM commitment line items, 0PU_IS_PS_32 FM actual line items. | RSA3 extractor checker, delta queue ODQMON or RSA7. |
| OData and CDS views | S/4HANA exposes data through Core Data Services views and OData services. | Service catalog and view definitions. |
| Status | Direction | Meaning | Action |
|---|---|---|---|
| 03 | Outbound | Data passed to port | Sent. Confirm receipt downstream. |
| 12 | Outbound | Dispatch OK | None. |
| 51 | Inbound | Application document not posted | Read the error, fix data or master data, reprocess with BD87. |
| 53 | Inbound | Application document posted | None. The status record names the document created. |
| 64 | Inbound | Ready to be passed to application | Waiting for a background job. Check the job. |
| 68 | Inbound | Error, no further processing | Closed manually. Needs documented justification. |
10. Security and controls
- Access is granted through roles built in
PFCG. A role bundles transaction codes and authorization objects. Examples:F_BKPF_BUKcontrols posting by company code.F_FICB_FKRcontrols FM area access.M_BEST_EKOcontrols purchase orders by purchasing organization. - Role assignments sit in
AGR_USERS. Role contents sit inAGR_1251. User master data sits inUSR02. These three tables support a user access review. - Segregation of duties is tested by checking whether one user holds conflicting transactions, such as creating a vendor (
XK01) and running payments (F110). SAP GRC Access Control automates the rule set. - The security audit log (
SM20) and table change logging (DBTABLOG, read throughSCU3) record sensitive actions and configuration changes. - Direct table maintenance through
SE16NorSM30in production is a common audit finding. Review who holdsS_TABU_DIS.
11. Trial balance and universe of transactions queries
A defensible trial balance from SAP reads the ledger line items and sums them by the reporting dimensions. The universe of transactions is the same query without the sum.
- Pick the ledger table:
FAGLFLEXAin ECC with the new GL,ACDOCAin S/4HANA. - Filter on client, company code, ledger, fiscal year, and posting period.
- Group by GL account, fund, functional area, and any other attribute the SFIS trial balance needs.
- Compare the totals to
FAGLFLEXTor to transactionFAGLB03. They must agree to the cent. - Join the line items to
BKPFfor user, date, document type, andAWTYP/AWKEY. This gives every balance a path to its source document. - Compare FM totals in
FMITto the budgetary accounts in the ledger. Differences point to documents that updated one ledger and not the other.
Sources
- SAP NetWeaver documentation: work processes and the application server
- SAP Press: S/4HANA Finance and the universal journal
- SAP Community: ECC tables after migration to S/4HANA Finance
- Table reference: FMIFIIT
- Table reference: FMIOI
- Table reference: FMIT
- Army.mil: GFEBS and GCSS-Army replication pipelines to Advana (Sept 2023)
- DoD FMR Volume 1, Chapter 7: DoD Standard Chart of Accounts
Educational reference. Standard product tables and public sources only. Not an official DoD, DFAS, SAP, or Oracle publication.