- SAP Smartforms
- Data Type Conversion
- Character Encoding and Data Transformation
- Conversion Functions
- Data Transformation for File Processing
- Time and Date Handling
- BAPI and IDOC Data Conversions
- Internal and External Storage Formats
- Conversion of Legacy Data
- ABAP Conversion Exit Functions
- Error Handling During Conversion
- Handling Different Formats for Integration
24CONVERSION2811 – Internal and External Storage Formats
In SAP ABAP, internal and external storage formats are critical concepts when dealing with data conversions, especially in interfaces, reports and user-facing applications. These formats determine how data is stored internally within SAP and how it is presented or transferred externally.
1. Key Concepts
Internal Format
- This is how SAP stores data in the database or memory.
- Optimized for performance and storage.
- Not human-readable (e.g., dates in YYYYMMDD format or packed decimal numbers for currency).
External Format
- This is how data is displayed or exchanged with external systems.
- Designed for readability or compatibility (e.g., dates in DD/MM/YYYY format or currency with commas and decimal points).
- Depends on user locale and system settings.
2. Common Data Types with Internal and External Formats
- Data Type : Date(D)
- Internal Format : YYYYMMDD (e.g., 20250128)
- External Format : DD.MM.YYYY or MM/DD/YYYY
- Data Type : Time (T)
- Internal Format : HHMMSS (e.g., 153045)
- External Format : HH:MM:SS
- Data Type : Number (DEC)
- Internal Format : Packed Decimal
- External Format : Formatted with separators (1,234.56)
- Data Type : Currency(CURR)
- Internal Format : Packed Decimal
- External Format : 1,234.56 USD
- Data Type : Text (CHAR)
- Internal Format : Raw text
- External Format : Locale-dependent text
3. Common Conversion Scenarios
a. Date Conversion
- Internal → External: Convert an internal date (YYYYMMDD) into a human-readable format:
DATA: lv_date_internal TYPE d VALUE ‘20250128’,
lv_date_external TYPE char10.
CALL FUNCTION ‘CONVERT_DATE_TO_EXTERNAL’
EXPORTING
date_internal = lv_date_internal
IMPORTING
date_external = lv_date_external.
WRITE : / ‘External Date:’, lv_date_external. ” Output: ‘28.01.2025’
- External → Internal: Convert a date entered by a user (28.01.2025) to SAP’s internal format:
DATA : lv_date_internal TYPE d,
lv_date_external TYPE char10 VALUE ‘28.01.2025’.
CALL FUNCTION ‘CONVERT_DATE_TO_INTERNAL’
EXPORTING
date_external = lv_date_external
IMPORTING
date_internal = lv_date_internal.
WRITE : / ‘Internal Date:’, lv_date_internal. ” Output: ‘20250128’
b. Time Conversion
- Internal → External:
DATA: lv_time_internal TYPE t VALUE ‘153045’,
lv_time_external TYPE char8.
CALL FUNCTION ‘CONVERT_TIME_TO_EXTERNAL’
EXPORTING
time_internal = lv_time_internal
IMPORTING
time_external = lv_time_external.
WRITE: / ‘External Time:’, lv_time_external. ” Output: ’15:30:45′
- External → Internal:
DATA: lv_time_internal TYPE t,
lv_time_external TYPE char8 VALUE ’15:30:45′.
CALL FUNCTION ‘CONVERT_TIME_TO_INTERNAL’
EXPORTING
time_external = lv_time_external
IMPORTING
time_internal = lv_time_internal.
WRITE : / ‘Internal Time:’, lv_time_internal. ” Output: ‘153045’
c. Number and Currency Conversion
- Internal → External:
DATA: lv_amount_internal TYPE p DECIMALS 2 VALUE ‘123456’,
lv_amount_external TYPE string,
lv_currency TYPE string VALUE ‘USD’.
CALL FUNCTION ‘CLOI_PUT_SIGN_IN_FRONT’
EXPORTING
value = lv_amount_internal
IMPORTING
out_value = lv_amount_external.
WRITE: / ‘Formatted Amount:’, lv_amount_external. ” Output: ‘1,234.56’
- Currency-Specific Formatting:
WRITE: / lv_amount_internal CURRENCY lv_currency. ” Output: ‘1,234.56 USD’
d. Handling Floating Point Numbers
SAP handles floating-point numbers internally using scientific notation. Convert these to readable formats when required:
DATA: lv_float TYPE f VALUE ‘1234.56789’.
WRITE: / lv_float USING EDIT MASK ‘_________.___’. ” Output: ‘ 1234.568’
4. Tools for Conversion
SAP provides function modules to simplify conversion between internal and external formats:
Function Module and Its Purpose:
- CONVERT_DATE_TO_EXTERNAL – Converts internal date to external format.
- CONVERT_DATE_TO_INTERNAL – Converts external date to internal format.
- CONVERT_TIME_TO_EXTERNAL – Converts internal time to external format.
- CONVERT_TIME_TO_INTERNAL – Converts external time to internal format.
- CONVERT_TO_LOCAL_CURRENCY – Converts amounts to local currency format.
- CLOI_PUT_SIGN_IN_FRONT – Formats numbers with sign and separators.
5. Best Practices for Handling Formats
- Use Standard Conversion Functions: Always use SAP-provided function modules for consistency and error-free conversion.
- Understand Locale Settings:
- External formats may vary by user settings (e.g., 28.01.2025 in Europe vs 01/28/2025 in the US).
- Respect user locale (SY-LANGU) during formatting.
- Validate Input: Always validate external input before converting it to internal formats. For example, check date validity (DD/MM/YYYY) using DATE_CHECK_PLAUSIBILITY.
- Keep Formats Consistent: When transferring data between systems (e.g., IDocs, BAPIs), ensure both sender and receiver agree on the format (e.g., YYYYMMDD for dates).
- Minimize Direct String Manipulation: Avoid manually reformatting dates, times or numbers. Use SAP tools to ensure proper handling.
Author : Aniket Pawar, 9373518385
24CONVERSION2811 – Internal and External Storage Formats
In SAP ABAP, internal and external storage formats are critical concepts when dealing with data conversions, especially in interfaces, reports and user-facing applications. These formats determine how data is stored internally within SAP and how it is presented or transferred externally.
1. Key Concepts
Internal Format
- This is how SAP stores data in the database or memory.
- Optimized for performance and storage.
- Not human-readable (e.g., dates in YYYYMMDD format or packed decimal numbers for currency).
External Format
- This is how data is displayed or exchanged with external systems.
- Designed for readability or compatibility (e.g., dates in DD/MM/YYYY format or currency with commas and decimal points).
- Depends on user locale and system settings.
2. Common Data Types with Internal and External Formats
- Data Type : Date(D)
- Internal Format : YYYYMMDD (e.g., 20250128)
- External Format : DD.MM.YYYY or MM/DD/YYYY
- Data Type : Time (T)
- Internal Format : HHMMSS (e.g., 153045)
- External Format : HH:MM:SS
- Data Type : Number (DEC)
- Internal Format : Packed Decimal
- External Format : Formatted with separators (1,234.56)
- Data Type : Currency(CURR)
- Internal Format : Packed Decimal
- External Format : 1,234.56 USD
- Data Type : Text (CHAR)
- Internal Format : Raw text
- External Format : Locale-dependent text
3. Common Conversion Scenarios
a. Date Conversion
- Internal → External: Convert an internal date (YYYYMMDD) into a human-readable format:
DATA: lv_date_internal TYPE d VALUE ‘20250128’,
lv_date_external TYPE char10.
CALL FUNCTION ‘CONVERT_DATE_TO_EXTERNAL’
EXPORTING
date_internal = lv_date_internal
IMPORTING
date_external = lv_date_external.
WRITE : / ‘External Date:’, lv_date_external. ” Output: ‘28.01.2025’
- External → Internal: Convert a date entered by a user (28.01.2025) to SAP’s internal format:
DATA : lv_date_internal TYPE d,
lv_date_external TYPE char10 VALUE ‘28.01.2025’.
CALL FUNCTION ‘CONVERT_DATE_TO_INTERNAL’
EXPORTING
date_external = lv_date_external
IMPORTING
date_internal = lv_date_internal.
WRITE : / ‘Internal Date:’, lv_date_internal. ” Output: ‘20250128’
b. Time Conversion
- Internal → External:
DATA: lv_time_internal TYPE t VALUE ‘153045’,
lv_time_external TYPE char8.
CALL FUNCTION ‘CONVERT_TIME_TO_EXTERNAL’
EXPORTING
time_internal = lv_time_internal
IMPORTING
time_external = lv_time_external.
WRITE: / ‘External Time:’, lv_time_external. ” Output: ’15:30:45′
- External → Internal:
DATA: lv_time_internal TYPE t,
lv_time_external TYPE char8 VALUE ’15:30:45′.
CALL FUNCTION ‘CONVERT_TIME_TO_INTERNAL’
EXPORTING
time_external = lv_time_external
IMPORTING
time_internal = lv_time_internal.
WRITE : / ‘Internal Time:’, lv_time_internal. ” Output: ‘153045’
c. Number and Currency Conversion
- Internal → External:
DATA: lv_amount_internal TYPE p DECIMALS 2 VALUE ‘123456’,
lv_amount_external TYPE string,
lv_currency TYPE string VALUE ‘USD’.
CALL FUNCTION ‘CLOI_PUT_SIGN_IN_FRONT’
EXPORTING
value = lv_amount_internal
IMPORTING
out_value = lv_amount_external.
WRITE: / ‘Formatted Amount:’, lv_amount_external. ” Output: ‘1,234.56’
- Currency-Specific Formatting:
WRITE: / lv_amount_internal CURRENCY lv_currency. ” Output: ‘1,234.56 USD’
d. Handling Floating Point Numbers
SAP handles floating-point numbers internally using scientific notation. Convert these to readable formats when required:
DATA: lv_float TYPE f VALUE ‘1234.56789’.
WRITE: / lv_float USING EDIT MASK ‘_________.___’. ” Output: ‘ 1234.568’
4. Tools for Conversion
SAP provides function modules to simplify conversion between internal and external formats:
Function Module and Its Purpose:
- CONVERT_DATE_TO_EXTERNAL – Converts internal date to external format.
- CONVERT_DATE_TO_INTERNAL – Converts external date to internal format.
- CONVERT_TIME_TO_EXTERNAL – Converts internal time to external format.
- CONVERT_TIME_TO_INTERNAL – Converts external time to internal format.
- CONVERT_TO_LOCAL_CURRENCY – Converts amounts to local currency format.
- CLOI_PUT_SIGN_IN_FRONT – Formats numbers with sign and separators.
5. Best Practices for Handling Formats
- Use Standard Conversion Functions: Always use SAP-provided function modules for consistency and error-free conversion.
- Understand Locale Settings:
- External formats may vary by user settings (e.g., 28.01.2025 in Europe vs 01/28/2025 in the US).
- Respect user locale (SY-LANGU) during formatting.
- Validate Input: Always validate external input before converting it to internal formats. For example, check date validity (DD/MM/YYYY) using DATE_CHECK_PLAUSIBILITY.
- Keep Formats Consistent: When transferring data between systems (e.g., IDocs, BAPIs), ensure both sender and receiver agree on the format (e.g., YYYYMMDD for dates).
- Minimize Direct String Manipulation: Avoid manually reformatting dates, times or numbers. Use SAP tools to ensure proper handling.
Author : Aniket Pawar, 9373518385