{"id":7250,"date":"2025-08-01T19:13:35","date_gmt":"2025-08-01T13:43:35","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?question=subroutines-in-sap"},"modified":"2025-08-01T19:13:35","modified_gmt":"2025-08-01T13:43:35","slug":"subroutines-in-sap","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=subroutines-in-sap","title":{"rendered":"Subroutines in SAP"},"content":{"rendered":"<p>A <strong>subroutine<\/strong> is a block of reusable code defined using FORM and called using PERFORM. It is a <strong>procedural<\/strong> method of modularization mainly used in classical ABAP programming.<\/p>\n<h3><strong>\u00a0When to use:<\/strong><\/h3>\n<ul>\n<li>In classic procedural ABAP programs.<\/li>\n<li>For logic reuse in the same or other programs via INCLUDE.<\/li>\n<\/ul>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code><!--StartFragment --><span><span>*&amp;---------------------------------------------------------------------*<\/span>\r\n<span>*&amp;\u00a0Report\u00a0\u00a0ZREP_LCLCLASS<\/span>\r\n<span>*&amp;<\/span>\r\n<span>*&amp;---------------------------------------------------------------------*<\/span>\r\n<span>*&amp;<\/span>\r\n<span>*&amp;<\/span>\r\n<span>*&amp;---------------------------------------------------------------------*<\/span>\r\n\r\n<span>REPORT\u00a0<\/span>zrep_lclclass<span>.<\/span>\r\n\r\n<span>DATA<\/span><span>:\u00a0<\/span>lv_a\u00a0<span>TYPE\u00a0<\/span><span>i\u00a0<\/span><span>VALUE\u00a0<\/span><span>5<\/span><span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lv_b\u00a0<span>TYPE\u00a0<\/span><span>i\u00a0<\/span><span>VALUE\u00a0<\/span><span>10<\/span><span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lv_result\u00a0<span>TYPE\u00a0<\/span><span>i\u00a0<\/span><span>VALUE\u00a0<\/span><span>0<\/span><span>.<\/span>\r\n\r\n<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'Before\u00a0subroutine\u00a0<span>call<\/span><span>:<\/span>'<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_a\u00a0='<span>,\u00a0<\/span>lv_a<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_b\u00a0='<span>,\u00a0<\/span>lv_b<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_result\u00a0='<span>,\u00a0<\/span>lv_result<span>.<\/span>\r\n\r\n<span>*\u00a0Call\u00a0the\u00a0subroutine<\/span>\r\n<span>PERFORM\u00a0<\/span>calculate_sum\u00a0<span>USING\u00a0\u00a0\u00a0\u00a0<\/span>lv_a\u00a0\u00a0\u00a0\u00a0\u00a0<span>\"\u00a0passed\u00a0by\u00a0value\u00a0(copy)<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lv_b\u00a0\u00a0\u00a0\u00a0\u00a0<span>\"\u00a0passed\u00a0by\u00a0value\u00a0(copy)<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span>CHANGING\u00a0<\/span>lv_result<span>.\u00a0\u00a0<\/span><span>\"\u00a0passed\u00a0by\u00a0reference\u00a0(direct)<\/span>\r\n\r\n<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'After\u00a0subroutine\u00a0<span>call<\/span><span>:<\/span>'<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_a\u00a0='<span>,\u00a0<\/span>lv_a<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_b\u00a0='<span>,\u00a0<\/span>lv_b<span>,<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\u00a0'lv_result\u00a0='<span>,\u00a0<\/span>lv_result<span>.<\/span>\r\n\r\n<span>*------------------------------------------------------------------*<\/span>\r\n<span>*\u00a0Subroutine\u00a0Definition<\/span>\r\n<span>*------------------------------------------------------------------*<\/span>\r\n<span>FORM\u00a0<\/span>calculate_sum\u00a0<span>USING\u00a0\u00a0\u00a0\u00a0<\/span>p_a\u00a0<span>TYPE\u00a0<\/span><span>i<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0p_b\u00a0<span>TYPE\u00a0<\/span><span>i<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span>CHANGING\u00a0<\/span>p_sum\u00a0<span>TYPE\u00a0<\/span><span>i<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0p_a\u00a0<span>=\u00a0<\/span>p_a\u00a0+\u00a0<span>1<\/span><span>.\u00a0\u00a0<\/span><span>\"\u00a0Modifies\u00a0copy\u00a0(no\u00a0effect\u00a0on\u00a0lv_a)<\/span>\r\n\u00a0\u00a0p_b\u00a0<span>=\u00a0<\/span>p_b\u00a0+\u00a0<span>1<\/span><span>.\u00a0\u00a0<\/span><span>\"\u00a0Modifies\u00a0copy\u00a0(no\u00a0effect\u00a0on\u00a0lv_b)<\/span>\r\n\r\n\u00a0\u00a0p_sum\u00a0<span>=\u00a0<\/span>p_a\u00a0+\u00a0p_b<span>.\u00a0\u00a0<\/span><span>\"\u00a0Modifies\u00a0original\u00a0lv_result\u00a0(by\u00a0reference)<\/span>\r\n\r\n<span>ENDFORM<\/span><span>.<\/span><\/span> \r\n<\/code><\/pre>\n<p>Output:<br \/>\n<img decoding=\"async\" class=\"content-img\" src=\"https:\/\/www.sapewmhelp.com\/wp-content\/uploads\/2025\/08\/subroutines.png\" \/><\/p>\n<\/div>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[158],"question_tags":[178,225,177,224],"class_list":["post-7250","question","type-question","status-publish","hentry","question-category-abap","question_tags-abap","question_tags-modularization","question_tags-sap","question_tags-subroutine"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/7250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7250"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7250"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=7250"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=7250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}