SAP GENERAL_DERIV_METHOD_AMORT Function Module for Amortization for Position Changes
GENERAL_DERIV_METHOD_AMORT is a standard general deriv method amort SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Amortization for Position Changes processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for general deriv method amort FM, simply by entering the name GENERAL_DERIV_METHOD_AMORT into the relevant SAP transaction such as SE37 or SE38.
Function Group: FPM_DERIVATION_METHODS
Program Name: SAPLFPM_DERIVATION_METHODS
Main Program: SAPLFPM_DERIVATION_METHODS
Appliation area: F
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function GENERAL_DERIV_METHOD_AMORT pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'GENERAL_DERIV_METHOD_AMORT'"Amortization for Position Changes.
EXPORTING
I_TRANSACTION = "Business Transaction
* I_FLOW_CAT_ISSUE_SPREAD = ' ' "Bewegungstyp für ISSUE SPREAD
* I_FLOW_CAT_NEGOTIATION_AMORT = ' ' "Bewegungstyp für Stichtagsamort. NEG. SPREAD
* I_FLOW_CAT_ISSUE_AMORT = ' ' "Bewegungstyp für Stichtagsamort. ISSUE SPREAD
* I_FLOW_CAT_PARTIAL_AMORT_II = ' ' "Bewegungstyp für Amortisierung des abgehenden Bestandes
* I_FLOW_CAT_TOTAL_AMORT_II = ' ' "Bewegungstyp für Amortisierung des Depotgruppenbestandes
* I_FLOW_CAT_AGIO_II = ' ' "Bewegungstyp für kapitalanteilige Auflösung
* I_FLOW_CAT_PARTIAL_AMORT_I = ' ' "Bewegungstyp für Amortisierung des abgehenden Bestandes
* I_FLOW_CAT_TOTAL_AMORT_I = ' ' "Bewegungstyp für Amortisierung des Depotgruppenbestandes
* I_FLOW_CAT_AGIO_I = ' ' "Bewegungstyp für kapitalanteilige Auflösung
I_TAB_COMPLETE_REVAL = "Position Information
I_SUB_TRANSACTION = "Business Subtransaction
* I_ISSUE_SPREAD = ' ' "ISSUE SPREAD berechne? (--> Langtext)
* I_NEGOTIATION_SPREAD_METHOD = '1' "NEGOTATION SPREAD Methode (--> Langtext)
* I_BRUT_NET_METHOD = '1' "Brutto oder Netto Methode? (--> Langtext)
* I_TOTAL_AMORTIZATION = 'X' "Gesamtbestand amortisieren? (--> Langtext)
* I_ALL_POSITION_CHANGES = ' ' "Wann sollen Bew. erzeugt werden? (--> Langtext)
* I_FLOW_CAT_NEGOTIATION_SPREAD = "Bewegungstyp für NEGOTIATION SPREAD
IMPORTING
E_TAB_NEW_PLANED_FLOWS = "neu erzeugte Planbewegungen
E_TAB_NEW_POSTED_FLOWS = "neu erzeugte Istbewegungen
E_TAB_DELETED_PLANED_FLOWS = "zu löschende Planbewegungen
E_TAB_AMORTIZATION_FLOWS = "generierte Amortisierungsbewegungen
EXCEPTIONS
INVALID_METHOD = 1
IMPORTING Parameters details for GENERAL_DERIV_METHOD_AMORT
I_TRANSACTION - Business Transaction
Data type: TRSEK_TRANSACTIONOptional: No
Call by Reference: Yes
I_FLOW_CAT_ISSUE_SPREAD - Bewegungstyp für ISSUE SPREAD
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_NEGOTIATION_AMORT - Bewegungstyp für Stichtagsamort. NEG. SPREAD
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_ISSUE_AMORT - Bewegungstyp für Stichtagsamort. ISSUE SPREAD
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_PARTIAL_AMORT_II - Bewegungstyp für Amortisierung des abgehenden Bestandes
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_TOTAL_AMORT_II - Bewegungstyp für Amortisierung des Depotgruppenbestandes
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_AGIO_II - Bewegungstyp für kapitalanteilige Auflösung
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_PARTIAL_AMORT_I - Bewegungstyp für Amortisierung des abgehenden Bestandes
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_TOTAL_AMORT_I - Bewegungstyp für Amortisierung des Depotgruppenbestandes
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_AGIO_I - Bewegungstyp für kapitalanteilige Auflösung
Data type: TZB03-SBEWZITIDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_TAB_COMPLETE_REVAL - Position Information
Data type: TRSEK_TAB_REVALOptional: No
Call by Reference: Yes
I_SUB_TRANSACTION - Business Subtransaction
Data type: TRSEK_SUB_TRANSACTIONOptional: No
Call by Reference: Yes
I_ISSUE_SPREAD - ISSUE SPREAD berechne? (--> Langtext)
Data type: CDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_NEGOTIATION_SPREAD_METHOD - NEGOTATION SPREAD Methode (--> Langtext)
Data type: CDefault: '1'
Optional: Yes
Call by Reference: Yes
I_BRUT_NET_METHOD - Brutto oder Netto Methode? (--> Langtext)
Data type: CDefault: '1'
Optional: Yes
Call by Reference: Yes
I_TOTAL_AMORTIZATION - Gesamtbestand amortisieren? (--> Langtext)
Data type: CDefault: 'X'
Optional: Yes
Call by Reference: Yes
I_ALL_POSITION_CHANGES - Wann sollen Bew. erzeugt werden? (--> Langtext)
Data type: CDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLOW_CAT_NEGOTIATION_SPREAD - Bewegungstyp für NEGOTIATION SPREAD
Data type: TZB03-SBEWZITIOptional: Yes
Call by Reference: Yes
EXPORTING Parameters details for GENERAL_DERIV_METHOD_AMORT
E_TAB_NEW_PLANED_FLOWS - neu erzeugte Planbewegungen
Data type: TRSEK_TAB_FLOWSOptional: No
Call by Reference: No ( called with pass by value option)
E_TAB_NEW_POSTED_FLOWS - neu erzeugte Istbewegungen
Data type: TRSEK_TAB_FLOWSOptional: No
Call by Reference: No ( called with pass by value option)
E_TAB_DELETED_PLANED_FLOWS - zu löschende Planbewegungen
Data type: TRSEK_TAB_FLOWSOptional: No
Call by Reference: No ( called with pass by value option)
E_TAB_AMORTIZATION_FLOWS - generierte Amortisierungsbewegungen
Data type: TRSEK_TAB_FLOWSOptional: No
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
INVALID_METHOD - Amortisierungsmethode wird nicht unterstützt
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for GENERAL_DERIV_METHOD_AMORT Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lv_i_transaction | TYPE TRSEK_TRANSACTION, " | |||
| lv_invalid_method | TYPE TRSEK_TRANSACTION, " | |||
| lv_e_tab_new_planed_flows | TYPE TRSEK_TAB_FLOWS, " | |||
| lv_i_flow_cat_issue_spread | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_negotiation_amort | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_issue_amort | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_partial_amort_ii | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_total_amort_ii | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_agio_ii | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_partial_amort_i | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_total_amort_i | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_flow_cat_agio_i | TYPE TZB03-SBEWZITI, " SPACE | |||
| lv_i_tab_complete_reval | TYPE TRSEK_TAB_REVAL, " | |||
| lv_e_tab_new_posted_flows | TYPE TRSEK_TAB_FLOWS, " | |||
| lv_i_sub_transaction | TYPE TRSEK_SUB_TRANSACTION, " | |||
| lv_e_tab_deleted_planed_flows | TYPE TRSEK_TAB_FLOWS, " | |||
| lv_i_issue_spread | TYPE C, " SPACE | |||
| lv_e_tab_amortization_flows | TYPE TRSEK_TAB_FLOWS, " | |||
| lv_i_negotiation_spread_method | TYPE C, " '1' | |||
| lv_i_brut_net_method | TYPE C, " '1' | |||
| lv_i_total_amortization | TYPE C, " 'X' | |||
| lv_i_all_position_changes | TYPE C, " SPACE | |||
| lv_i_flow_cat_negotiation_spread | TYPE TZB03-SBEWZITI. " |
|   CALL FUNCTION 'GENERAL_DERIV_METHOD_AMORT' "Amortization for Position Changes |
| EXPORTING | ||
| I_TRANSACTION | = lv_i_transaction | |
| I_FLOW_CAT_ISSUE_SPREAD | = lv_i_flow_cat_issue_spread | |
| I_FLOW_CAT_NEGOTIATION_AMORT | = lv_i_flow_cat_negotiation_amort | |
| I_FLOW_CAT_ISSUE_AMORT | = lv_i_flow_cat_issue_amort | |
| I_FLOW_CAT_PARTIAL_AMORT_II | = lv_i_flow_cat_partial_amort_ii | |
| I_FLOW_CAT_TOTAL_AMORT_II | = lv_i_flow_cat_total_amort_ii | |
| I_FLOW_CAT_AGIO_II | = lv_i_flow_cat_agio_ii | |
| I_FLOW_CAT_PARTIAL_AMORT_I | = lv_i_flow_cat_partial_amort_i | |
| I_FLOW_CAT_TOTAL_AMORT_I | = lv_i_flow_cat_total_amort_i | |
| I_FLOW_CAT_AGIO_I | = lv_i_flow_cat_agio_i | |
| I_TAB_COMPLETE_REVAL | = lv_i_tab_complete_reval | |
| I_SUB_TRANSACTION | = lv_i_sub_transaction | |
| I_ISSUE_SPREAD | = lv_i_issue_spread | |
| I_NEGOTIATION_SPREAD_METHOD | = lv_i_negotiation_spread_method | |
| I_BRUT_NET_METHOD | = lv_i_brut_net_method | |
| I_TOTAL_AMORTIZATION | = lv_i_total_amortization | |
| I_ALL_POSITION_CHANGES | = lv_i_all_position_changes | |
| I_FLOW_CAT_NEGOTIATION_SPREAD | = lv_i_flow_cat_negotiation_spread | |
| IMPORTING | ||
| E_TAB_NEW_PLANED_FLOWS | = lv_e_tab_new_planed_flows | |
| E_TAB_NEW_POSTED_FLOWS | = lv_e_tab_new_posted_flows | |
| E_TAB_DELETED_PLANED_FLOWS | = lv_e_tab_deleted_planed_flows | |
| E_TAB_AMORTIZATION_FLOWS | = lv_e_tab_amortization_flows | |
| EXCEPTIONS | ||
| INVALID_METHOD = 1 | ||
| . " GENERAL_DERIV_METHOD_AMORT | ||
ABAP code using 7.40 inline data declarations to call FM GENERAL_DERIV_METHOD_AMORT
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_issue_spread). | ||||
| DATA(ld_i_flow_cat_issue_spread) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_negotiation_amort). | ||||
| DATA(ld_i_flow_cat_negotiation_amort) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_issue_amort). | ||||
| DATA(ld_i_flow_cat_issue_amort) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_partial_amort_ii). | ||||
| DATA(ld_i_flow_cat_partial_amort_ii) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_total_amort_ii). | ||||
| DATA(ld_i_flow_cat_total_amort_ii) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_agio_ii). | ||||
| DATA(ld_i_flow_cat_agio_ii) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_partial_amort_i). | ||||
| DATA(ld_i_flow_cat_partial_amort_i) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_total_amort_i). | ||||
| DATA(ld_i_flow_cat_total_amort_i) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_agio_i). | ||||
| DATA(ld_i_flow_cat_agio_i) | = ' '. | |||
| DATA(ld_i_issue_spread) | = ' '. | |||
| DATA(ld_i_negotiation_spread_method) | = '1'. | |||
| DATA(ld_i_brut_net_method) | = '1'. | |||
| DATA(ld_i_total_amortization) | = 'X'. | |||
| DATA(ld_i_all_position_changes) | = ' '. | |||
| "SELECT single SBEWZITI FROM TZB03 INTO @DATA(ld_i_flow_cat_negotiation_spread). | ||||
Search for further information about these or an SAP related objects