Reusing International Conversion Classes In cases where various country-specific versions of an infotype exist alongside an international version, and provided that the international version of the infotype fulfills the majority of country-specific requirements, it may be effective to reuse the functionality of the international infotype’s conversion class within the country-specific conversion class(es) of the country-specific infotype(s). This end is achieved by means of inheritance, whereby the country-specific conversion class declares the international conversion class to be its superclass.
An international conversion class can only be re-used if it has not been declared as final. In other words, among the properties of any international conversion class to be re-used, the
Final
checkbox (VSEOCLASS-CLSFINAL) may not be selected.
If the international conversion class is not final and if you elect to re-use it, you must remember that your country-specific conversion class has inherited, and therefore relies upon, the functionality provided by the international class. For this reason, it is important to remain in contact with the party who is responsible for the international class, as you and that party must jointly agree upon its operation.
Finally, you should refrain from hard-coding the name of the international screen structure within the country-specific conversion class. Instead, the international conversion class should use a public constant attribute (with typePAD_SNAME) to contain the name of the international screen structure. Only via this attribute should the country-specific conversion class access the international screen structure.

This recommendation serves to prevent subsequent problems in the event that screen structures, at a later date, are exchanged within the international conversion class.
To reuse any international conversion class that fulfills the above prerequisites, proceed as follows.
Define the international conversion class as the superclass of the country-specific conversion class.
In the country-specific class, redefine methods OUTPUT_CONVERSION and INPUT_CONVERSION
In the implementation of these methods, proceed as follows.
First, call the corresponding method of the international class (statement CALL METHOD super->…) to process the international fields of the screen structure.
Second, encode the country-specific functions accordingly.

Only encode the required country-specific functions within the methods of the country-specific conversion class. Never encode such functions in the international conversion class!
The following examples are provided to clarify the principles that undergird the output and input conversion methods. The first example demonstrates an implementation of the output conversion method, while the second example demonstrates an implementation of the input conversion method. However, the procedure that is used to perform both methods is analogous.

The following example demonstrates the implementation of the output conversion method of a country-specific conversion class that has inherited the properties of an international conversion class. The international conversion class has been specified as the superclass of the country-specific conversion class.
A public constant attribute has been defined for the international conversion class; this attribute contains the name of the (international) screen structure for which the class was originally designed:A_SUPER_SCREEN_STRUCTURE_NAMEwith typePAD_SNAMEand the constant value'ZHCMT_BSP_PA_XX_R9001'
METHOD IF_HRPA_UI_CONVERT_STANDARD~OUTPUT_CONVERSION. DATA super_screen_structure TYPE REF TO data. FIELD-SYMBOLS <super_screen_structure> TYPE ANY. FIELD-SYMBOLS <p9001> TYPE p9001. FIELD-SYMBOLS <zhcmt_bsp_pa_us_r9001> TYPE zhcmt_bsp_pa_us_r9001. is_ok = if_hrpa_ui_convert_standard~true. CLEAR field_attributes. * ensure that method is called for the correct screen structure IF screen_structure_name <> 'ZHCMT_BSP_PA_US_R9001'. RAISE EXCEPTION TYPE cx_hrpa_violated_assertion. ENDIF. * create international screen structure CREATE DATA super_screen_structure TYPE (a_super_screen_structure_name). ASSIGN super_screen_structure->* TO <super_screen_structure>. * call output conversion of the international class CALL METHOD super->if_hrpa_ui_convert_standard~output_conversion EXPORTING mode = mode screen_structure_name = a_super_screen_structure_name pnnnn = pnnnn pnnnn2 = pnnnn2 pref = pref massn = massn massg = massg field_metadatas = field_metadatas message_handler = message_handler IMPORTING screen_structure = <super_screen_structure> is_ok = is_ok field_attributes = field_attributes. * exit in case of error IF is_ok = if_hrpa_ui_convert_standard~false. RETURN. ENDIF. * move values from international to country-specific screen structure MOVE-CORRESPONDING <super_screen_structure> TO screen_structure. * ************************************* * the country-specific part starts here * assign and type structures ASSIGN pnnnn TO <p9001>. ASSIGN screen_structure TO <zhcmt_bsp_pa_us_r9001>. ... * place any country-specific coding here ... ENDMETHOD.

The following example demonstrates the implementation of the corresponding input conversion method.
METHOD IF_HRPA_UI_CONVERT_STANDARD~INPUT_CONVERSION. DATA super_screen_structure TYPE REF TO data. FIELD-SYMBOLS <super_screen_structure> TYPE ANY. FIELD-SYMBOLS <p9001> TYPE p9001. FIELD-SYMBOLS <zhcmt_bsp_pa_us_r9001> TYPE zhcmt_bsp_pa_us_r9001. is_ok = if_hrpa_ui_convert_standard~true. * ensure that method is called for the correct screen structure IF screen_structure_name <> 'ZHCMT_BSP_PA_US_R9001'. RAISE EXCEPTION TYPE cx_hrpa_violated_assertion. ENDIF. * create international screen structure CREATE DATA super_screen_structure TYPE (a_super_screen_structure_name). ASSIGN super_screen_structure->* TO <super_screen_structure>. * move values from country specific to international screen structure MOVE-CORRESPONDING screen_structure TO <super_screen_structure>. * call input conversion of the international class CALL METHOD super->if_hrpa_ui_convert_standard~input_conversion EXPORTING screen_structure_name = a_super_screen_structure_name screen_structure = <super_screen_structure> message_handler = message_handler IMPORTING is_ok = is_ok CHANGING pnnnn = pnnnn. pnnnn2 = pnnnn2 pref = pref * exit in case of error IF is_ok = if_hrpa_ui_convert_standard~false. RETURN. ENDIF. * ************************************* * the country-specific part starts here * assign and type structures ASSIGN pnnnn TO <p9001>. ASSIGN screen_structure TO <zhcmt_bsp_pa_us_r9001>. ... * place any country-specific coding here ... ENDMETHOD.