6 Columns with Active Background
6 Columns with Active Background
Active List Item Background

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