SAP tableObjectTBTCPModuleBASIS

TBTCP table — Background Job Step Table TBTCP

TBTCP stores one row per step of a background job: the program or external command, the variant, the step sequence number, and the user under whose authorization the step runs. It is the child table of TBTCO, the job header. It holds what is scheduled to execute, not runtime status or duration, which live in TBTCO and the job log.

TBTCP is the step-level detail table behind every background job defined in SM36 and monitored in SM37. This page covers its key fields, how it joins to the job header table TBTCO, and the recurring mistakes consultants make when using it to diagnose failed or misconfigured batch steps.

Published 15 Sept 2026· 1,041 words

What it stores

One row in TBTCP represents a single step of a background job: an ABAP program with a variant, or an external command/program, scheduled as part of a job whose header lives in TBTCO. A job made of several chained steps, for example a data extraction report followed by a formatting program and a spool output step, produces one TBTCP row per step, numbered sequentially. The table records the definition of what runs and under which authorization, not the outcome. Whether the step succeeded, how long it took, or what its return code was is tracked at job level in TBTCO and in the job's execution log, not in TBTCP itself. Consultants read TBTCP when they need to isolate one step out of a multi-step job, most often to confirm the exact program and variant that actually ran, or to check under which user the step executed.

Key fields

  • MANDT - client
  • JOBNAME - name of the background job, shared with the parent row in TBTCO
  • JOBCOUNT - job instance identifier, unique only in combination with JOBNAME and client, not on its own
  • STEPCOUNT - sequence number of the step within the job, starting at 1
  • PROGRAM - name of the ABAP program executed in this step, populated for ABAP-type steps
  • VARIANT - name of the variant used when running PROGRAM
  • AUTHCKMAN - user whose authorizations the step executes under, which can differ from the job's creator or scheduler
  • TYP - indicator of the step type, distinguishing an ABAP report step from an external command or external program step
  • LANGU - logon language used for the step

How it joins the data model

  • TBTCP-JOBNAME = TBTCO-JOBNAME and TBTCP-JOBCOUNT = TBTCO-JOBCOUNT, the parent-child link from job header to its steps
  • TBTCO-PERIODIC and related scheduling fields link the job to its recurrence definition held in TBTCS for periodic jobs
  • A step that produces printed output correlates to a spool request in TSP01 and its attributes in TSP03, though the link runs through the job's identifying data rather than a formal foreign key
  • A step that writes to the application log correlates to entries in BALHDR and BALDAT via the log handle the step opened, again not a declared foreign key

How to read it safely

Always filter on MANDT and treat JOBNAME plus JOBCOUNT as the real key; JOBCOUNT by itself repeats across different job names and even across the same job name after redefinition. The table grows continuously in any system with meaningful batch volume, so selecting on PROGRAM or VARIANT alone across the full table is expensive and imprecise. The efficient path is to select the relevant job or jobs from TBTCO first, by name, status, or scheduled start window, and then read TBTCP restricted to those JOBNAME/JOBCOUNT pairs. Do not attempt to answer a timing question from TBTCP; it has no start or end timestamp fields.

How to prove it in the data

Symptom: a completed job appears to have run the wrong variant. Take the JOBNAME and JOBCOUNT from the SM37 job list, select TBTCP where JOBNAME equals that job and JOBCOUNT equals that instance, order by STEPCOUNT, and read PROGRAM and VARIANT for each row. Compare against the expected variant. If the step instead failed with an authorization error, check AUTHCKMAN on the same row against the authorizations actually assigned to that user.

ECC vs S/4HANA

TBTCP is unchanged as a structural concept in S/4HANA. Background job scheduling continues to rely on TBTCO and TBTCP as the core header and step tables, including where the newer Fiori application job monitoring apps present a modernized interface; that interface reads through the same underlying job scheduling infrastructure rather than replacing these tables with a CDS view.

Common pitfalls

  • Treating JOBCOUNT as globally unique. It is only unique in combination with JOBNAME and client; a join on JOBCOUNT alone silently mixes steps from unrelated jobs.
  • Looking in TBTCP for step runtime, start time, or status. None of that is stored here; it lives in TBTCO for the job as a whole and in the job log for step-level detail, so a query against TBTCP for duration returns nothing and gets misread as a data gap rather than a wrong-table problem.
  • Assuming STEPCOUNT is stable across changes to a job. When a released job is redefined it is normally copied to a new JOBCOUNT rather than edited in place, so historic TBTCP rows keep the step numbering that applied at the time they ran, which can differ from the current definition of the job with the same name.
  • Assuming AUTHCKMAN is the person who created or scheduled the job. It is the user whose authorizations govern execution of that step, which is frequently a dedicated batch user distinct from the scheduler, and confusing the two derails authorization troubleshooting.
  • Deleting or archiving TBTCP rows directly instead of through the standard job deletion mechanism, which breaks the link to TBTCO and leaves a job visible in SM37 with missing or inconsistent step detail.

Whose problem this is

Basis owns TBTCP as part of background job administration and monitoring. Functional consultants use it read-only when chasing a specific step failure inside a multi-step job. Any question about cleanup, retention, or structural inconsistency between TBTCO and TBTCP belongs to Basis, not to the functional team running the job.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/tbtcpERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.