SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software Kodyaz SAP and ABAP Programming Tutorials
Development resources, articles, tutorials, samples, codes and tools for .Net, SQL Server, Vista, etc.




CRM Companies List
Web Based CRM Software


Zero Padding - How to Add Leading Zeros in ABAP

Zero padding or to add leading zeros in ABAP is a must in some cases.
When padding zeros to a variable is not done, a concatenation using CONCATENATE ABAP command or a SELECT search statement will not result as desired.

Frequently in ABAP programs, variables are not in the form that are expected. If it is required to give an example, an Item Number or a POSNR variable which is expected to be 6 character long, may be just equal to 10, 20, or 1, 2, etc.
Using this variable without zero padding in ABAP report might cause problems or may fail. Padding zeros or to add leading zeros will alter the variable value into the right form according to its data structure.



For example, the following ABAP report will fail to find an existing Sales Order in VBAK SAP table.
The reason is, VBELN sales document number data type is 10 characters long and requires leading zeros.

REPORT Z_ZERO_PADDING.

DATA :
 lv_char10 TYPE char10,
 ls_vbak TYPE vbak.

lv_char10 = '300841'.
SELECT SINGLE * FROM VBAK INTO ls_vbak WHERE vbeln = lv_char10.
IF sy-subrc = 0.
  WRITE 'SUCCESS'.
ELSE.
  WRITE 'FAIL'.
ENDIF.

This time opposite of removing preceding zeros, ABAP developers requires zero padding or to add leading zero in ABAP.

In this ABAP tutorial, ABAP developers can find an example ABAP report demonstrating how padding leading zeros can be implemented.
Actually, there are numerous methods for zero padding in ABAP.
Here is a few of methods which you can use to add leading zero to ABAP variables.

ABAP developers can use UNPACK command in order to unpack an packed field value into a target variable with adding leading zeros.
The ABAP statement "UNPACK lv_char10 TO lv_vbeln.", unpacks the field value '300841' and places it into lv_vbeln variable.
Since lv_vbeln ABAP variable is in VBELN data type which is 10 characters long, the UNPACK ABAP command will add leading zeros (4 zero in this example).
As you see using UnPack ABAP statement is one of the easiest methods for zero padding in ABAP.

REPORT Z_ZERO_PADDING.

DATA :
 lv_char10 TYPE char10,
 lv_vbeln TYPE vbeln,
 ls_vbak TYPE vbak.

lv_char10 = '300841'.

UNPACK lv_char10 TO lv_vbeln.

SELECT SINGLE * FROM VBAK INTO ls_vbak WHERE vbeln = lv_vbeln.
IF sy-subrc = 0.
  WRITE 'SUCCESS'.
ELSE.
  WRITE 'FAIL'.
ENDIF.

Another method for padding zeros is to call function CONVERSION_EXIT_ALPHA_INPUT fm.
If you set the same variable lv_vbeln as Input and Output parameters of ABAP function module CONVERSION_EXIT_ALPHA_INPUT, the variable value will be convert to the desired structure where zero padding is done automatically.

REPORT Z_ZERO_PADDING.

DATA :
 lv_char10 TYPE char10,
 lv_vbeln TYPE vbeln,
 ls_vbak TYPE vbak.

lv_char10 = '300841'.

lv_vbeln = lv_char10.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
 EXPORTING
   INPUT = lv_vbeln
 IMPORTING
   OUTPUT = lv_vbeln.


SELECT SINGLE * FROM VBAK INTO ls_vbak WHERE vbeln = lv_vbeln.
IF sy-subrc = 0.
  WRITE 'SUCCESS'.
ELSE.
  WRITE 'FAIL'.
ENDIF.

An other method that can be used to add leading zero in ABAP variables is using OVERLAY statement.
Here is an example where "SHIFT ... RIGHT DELETING TRAILING SPACE" is used with "OVERLAY ... WITH ..." for zero padding.

The first ABAP statement "SHIFT lv_vbeln RIGHT DELETING TRAILING SPACE" will change the lv_vbeln value as ' 300841' with four preceding space characters.
And the second command "OVERLAY lv_vbeln WITH '0000000000'" will replace the space characters in lv_vbeln with zero characters.
What is important here is the number of zeros in the Overlay pattern.
The number of zero characters must be as character length of the ABAP variable.

REPORT Z_ZERO_PADDING.

DATA :
 lv_char10 TYPE char10,
 lv_vbeln TYPE vbeln,
 ls_vbak TYPE vbak.

lv_char10 = '300841'.

lv_vbeln = lv_char10.
SHIFT lv_vbeln RIGHT DELETING TRAILING SPACE.
OVERLAY lv_vbeln WITH '0000000000'.

SELECT SINGLE * FROM VBAK INTO ls_vbak WHERE vbeln = lv_vbeln.
IF sy-subrc = 0.
 WRITE 'SUCCESS'.
ELSE.
 WRITE 'FAIL'.
ENDIF.

As you can see zero padding using ABAP can be implemented in various methods. In this ABAP tutorial, I have demonstrated three padding zeros examples for developers. I hope these will answer the question : "How to add leading zeros in ABAP ?".







SAP Resources

SAP Tutorial

SAP Forums

SAP Tools

SAP Transaction Codes Table






SAP Tutorial and ABAP Tutorials (including Web Dynpro, Smartforms and SAP UI5)

Convert Units in Adobe Form Layout Ruler and Length Measurements
Display Adobe Form in SAP Web Dynpro
Adobe Form Interface Reference Field for Currency and Quantity
Read Checkbox Value in Web Dynpro Editable ALV
Trigger ALV Events in Web Dynpro Component
Remove ALV Buttons on SAP Web Dynpro Component
Delete All Data from SAP Database Table
Traffic Lights in SAP Web Dynpro ALV Table
Set Page Title in Web Dynpro Application
Create Search Help in ABAP for Web Dynpro Component
Convert the table using the Database Utility (SE14)
Primary key change not permitted for value table
SAP Web Dynpro ALV Tutorial
SAP Web Dynpro Service Cannot be Reached Error
How to Execute SAP Program in Background Task
Trigger Output Re-Determination for Billing Documents
ABAP LOOP Statement with At New and At End
Delete Entries in NAST Table using RSCLNAST ABAP Program
Execute ABAP Program Automatically After Transport Request Import
SAP UI5 Themes List
Add Year, Month or Day to Date Variable in ABAP using RP_CALC_DATE_IN_INTERVAL
How to find string length using STRLEN ABAP string function
Search and Find SAP Transaction Code using SE93 or SEARCH_SAP_MENU
Export Graphics from SE78 SAP Form Graphics Administration using ABAP program
Main program for include RV61Bxxx not found
How to Find Output Determination Procedure for a Billing Document
How to Export IDOC as Excel and Save as Local File from WE02 Transaction
How to Find User Exits in ABAP Codes of SAP Transaction
ABAP Shared Memory Objects Tutorial with Sample ABAP Code
Create Scheduled Job using SAP SM36 Transaction
Create Sales Order, Delivery and Billing Document in SAP
ABAP Tutorial for SET and GET PARAMETER ID Command
Unicode Character Problem in IFS File Interface
Read Pricing Condition Text using ABAP in SAP Sales Document Output
Export SAP Data to Fixed Length Text File
Export Table Contents into Text File and Download File
Business Document Service Error: Error when accessing graphic (BDS), RC = 5
Get Proforma Invoice from Commercial Invoice in ABAP
Convert Sales Unit into Text using Function Module in Target Language
Get Fullname of SAP user using Function Module in ABAP Program
ABAP Submit Report to Run Another ABAP Program within Code
Message no XS826: Cannot process message; no node determined for 76550052
SE63 Smartform Translation and Export using SLXT Program
VF31 SAP Transaction to Reprocess Billing Output Messages
Import and Export SO10 Standard Text using RSTXSCRP ABAP Program
CALL_FUNCTION_NOT_FOUND ABAP Run Time Error
SAP Output Management - Create New SAP Output Type
SAP Purchase Order Tables, Transaction Codes and Output
Assign SAP Item Category to Sales Document Type using SPRO
Window MAIN does not fit onto page PAGE (height)
SAP Invoice Output ZZZZ is not Defined
Invoice Output fail because of missing Billing Type text in TVFKT table
Read Integer and Decimals of a Numeric Value in ABAP Programming
SAP Smartforms Table Parameter in Form Routine
Complex Conditions in SAP Smartform with AND/OR
Free Adobe LiveCycle Designer Download
Create SAP Dynamic Variant using Date Calculation
Translate Web Dynpro Header Title displayed on Web Browser
ABAP RegEx for ABAP Regular Expression to fetch Date from String
Change Output Condition Records
Web Dynpro Text Translation using Assistance Class
Move Minus Sign from Right to Left of Negative Number in SAP Smartform
Read Address Data using FM ADDR_GET instead of Querying ADRC Table
Add Value Help to Web Dynpro Select Options
Add Web Dynpro Applications to SAP Favorites Menu
Component Usage ALV Does Not Have an Active Component
Web Dynpro Component Service Syntax Error in Program /1BCWDY/O3EC1AX6A3OVKK9L5FXO==CP
Web DynPro Tutorial - Display Spool Requests using Web DynPro Table
Web DynPro Tutorial - How to create Web Dynpro Application (Web Dynpro Component)
Display Data on Web DynPro Table Element
Test Web Dynpro ABAP Component by Creating Web Dynpro Application
Graphics White Background Displayed Grey on SAP Smartform Output
Get SAP Document Flow using SD_DOCUMENT_FLOW_GET ABAP Function Module
How to Spell Numbers using ABAP Spell_Amount Function Module
How to Transport SAP Graphics using SE78 Transaction
How to Delete Standard Text using SO10 SAP Transaction
Dynamic Programming using Field Symbols in ABAP Reports
How to Disable Word Editor in SAP Smartform Text
How to Debug Popup Screen in ABAP
TVAP Item Category and SAP Table TVAPT for Text Translations
ABAP Runtime Error ST22 Transaction using Short Dump Analysis
Create Transport Request for Text Translations using RS_LXE_RECORD_TORDER
SAP Invoice Output Determination Analysis for Not Created Output Message
Set Default Single Values List for SAP Selection Screen Parameter
SAP Payment Terms Table and ZTERM Texts Table for ABAP Developers
How to Create SAPScript Text using SO10 Transaction Code
SAP Smartforms Tutorial - Table Calculations using Sum Total
SAP Smartforms Tutorial - Table Calculations using Count
SAP Smartforms Tutorial - How to Create Smartform
SAP NetWeaver Installation Guide using installshield wizard
SAP Smartforms Table for Sales Order and Invoice Outputs
Email Spool Request using SAPOffice - Spool to PDF
How to Display SAP Graphics using SE78 Transaction Code
SAPScript Transaction Codes
ABAP Tutorial - ABAP String Split Example Code
Sales Tables among ABAP Tables (SAP Sales and Distribution SD Tables)
How to Upload Data to SAP from Excel File using alsm_excel_to_internal_table Function Module
ALV Grid Color - Table Row Background Color in ALV List
Multi Color ALV Grid Color Alternate using ALV Layout info_fname Property
How to Debug SmartForms - Debugging SAP SmartForm in ABAP ?
ABAP - Create Hierarchy Tree List using rs_tree_construct, rs_tree_list_display and snodetext
Create CL_GUI_ALV_GRID ALV Grid Column Header using ABAP Data Element
ABAP Tutorial - SAP Split and ABAP Split String Function
Upload Data from Excel File in ABAP using TEXT_CONVERT_XLS_TO_SAP
SAP Tutorial - Convert Spool Request to PDF File using RSTXPDFT4 ABAP Report
SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter
Convert Smartform to PDF in Print Preview Mode
SAP Smartforms Tutorial - Create Smartforms Example
SAP Smartforms - How to Call Smartform within ABAP Program
Complete List of SAP Modules






Copyright © 2004 - 2014 Eralper Yilmaz. All rights reserved.
Community Server by Telligent Systems