

{"id":92359,"date":"2021-04-27T09:00:29","date_gmt":"2021-04-27T03:30:29","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=89948"},"modified":"2021-04-28T11:46:44","modified_gmt":"2021-04-28T06:16:44","slug":"modularization-in-sap-abap","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/","title":{"rendered":"Modularization in SAP ABAP"},"content":{"rendered":"<p>In this tutorial, we\u2019ll be learning about SAP ABAP modularization techniques. They make programs readable, flexible, and reusable. Let\u2019s dive right into the world of modules!<\/p>\n<h3>What is Modularization in SAP ABAP?<\/h3>\n<ul>\n<li>Modularization essentially means &#8211; breaking things down into simpler forms.<\/li>\n<li>This involves creating small chunks of code called \u2018modules\u2019 that perform a specific task.<\/li>\n<li>A module simply contains a sequence of ABAP statements that the program executes in a logical manner.<\/li>\n<li>Creating and using modules in programming creates easy readability and enhances understanding of code.<\/li>\n<li>This also promotes reusability &#8211; that is, once you write a module to perform a specific task, you can reuse the same module when having to perform the same task again.<\/li>\n<li>Breaking down tasks into logical blocks is a simple and easy way to make your code readable, and promote the good coding practice.<\/li>\n<\/ul>\n<h3>Need &amp; Advantages of SAP ABAP Modularization<\/h3>\n<ul>\n<li>The modules, or processing blocks, enhance how we structure the program.<\/li>\n<li>They make it easy for us to read the code.<\/li>\n<li>They also make it easy to maintain the code.<\/li>\n<li>These help to avoid redundancy.<\/li>\n<li>They introduce \u2018reusability\u2019 features in code &#8211; i.e. we can reuse a block defined in one area into another area as well.<\/li>\n<li>Since it divides the problem into smaller portions, it is easy to debug.<\/li>\n<\/ul>\n<h3>Various Modularization Techniques in SAP ABAP<\/h3>\n<ol>\n<li>Macros<\/li>\n<li>Include Files<\/li>\n<li>Subroutines<\/li>\n<li>Function Modules<\/li>\n<li>Methods &amp; Classes<\/li>\n<\/ol>\n<p>Modularization can be of two broad categories &#8211;<\/p>\n<ol>\n<li>Modules through source code\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Local Macros<\/li>\n<li>Glocal Include<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Modules at ABAP programs (processing blocks)\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Subroutines<\/li>\n<li>Function modules<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3>SAP- ABAP Macro<\/h3>\n<ul>\n<li>We can use macros when we want to reuse specific statements.<\/li>\n<li>If we have a long calculation or a complex print statement that we do not want to keep typing again and again but still want to include, we can put it in a macro.<\/li>\n<li>The scope of a macro is only within the program in which we declare it i.e. we cannot use it outside that program.<\/li>\n<li>We can define macros using the DEFINE statement and close with END-OF-DEFINITION statement.<\/li>\n<li>A macro basically acts as a shorter placeholder for longer statements.<\/li>\n<\/ul>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">DEFINE &lt;macro_name&gt;.\r\n        ...\r\n        &lt;STATEMENTS&gt;\r\n        ...\r\n        END-OF-DEFINITION.\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">DEFINE ZDATAFLAIR_MACRO.\r\n        \r\n        WRITE: \u201cThis is the first macro.\u201d.\r\n        WRITE: \u201cThis is the second macro.\u201d.\r\n        WRITE: \u201cThis is the third macro.\u201d.\r\n        WRITE: \u201cThis is the fourth macro.\u201d.\r\n        WRITE: \u201cThis is the fifth macro.\u201d.\r\n\r\n        END-OF-DEFINITION.\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\"><span style=\"font-weight: 400;\">This is the first macro.<\/span><br \/>\n<span style=\"font-weight: 400;\">This is the second macro.<\/span><br \/>\n<span style=\"font-weight: 400;\">This is the third macro.<\/span><br \/>\n<span style=\"font-weight: 400;\">This is the fourth macro.<\/span><br \/>\n<span style=\"font-weight: 400;\">This is the fifth macro.<\/span><\/div>\n<h3>Include Programs<\/h3>\n<ul>\n<li>Include programs helps us use our entire code into another program.<\/li>\n<li>This way, we can create small chunks of programs stored separately and then use them via include in one complex program.<\/li>\n<li>Thus we make the final program easy to read.<\/li>\n<li>Also, we can use the program multiple times so this also promotes reusability.<\/li>\n<li>This is the same as copying the entire program into another, or nesting it within one.<\/li>\n<li>We can use the INCLUDE statement to use this modularization technique.<\/li>\n<\/ul>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">INCLUDE &lt;program_name&gt;\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<p>ZS_DATAFLAIR_001:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">REPORT ZS_DATAFLAIR_001.\r\nINCLUDE ZDATAFLAIR.\r\nWRITE: \u201cHello, this is the parent program.\u201d.<\/pre>\n<p>ZDATAFLAIR:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">WRITE: \u201cHello, this is the INCLUDE program.\u201d.\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\">Hello, this is the INCLUDE program.<br \/>\nHello, this is the parent program<\/div>\n<p>However, there are a few rules we should keep in mind while using INCLUDE:<\/p>\n<ol>\n<li>Include programs cannot include themselves.<\/li>\n<li>The code within a program that we want to include must contain complete statements.<\/li>\n<\/ol>\n<h3>Subroutines in SAP ABAP<\/h3>\n<ul>\n<li>A subroutine is a module or section within the code itself that can be called multiple times.<\/li>\n<li>It is a module, or a unit of modularization, that has a function wrapped by the source code.<\/li>\n<li>It can be thus reused any number of times as we wish.<\/li>\n<li>We can declare subroutines using FORM statement and end with ENDFORM.<\/li>\n<li>We can call subroutine using PERFORM statement.<\/li>\n<li>Subroutines can be internal or external.<\/li>\n<\/ul>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FORM &lt;subroutine_name&gt;.\r\n\u2026\r\n&lt;statements&gt;\r\n\u2026\r\nENDFORM.\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FORM ZF_DATAFLAIR_001.\r\nWRITE: \u201cThis is a form.\u201d.\r\nENDFORM.\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\">\n<h5><span style=\"font-weight: 400;\">This is a form.<\/span><\/h5>\n<\/div>\n<h3>Types of SAP ABAP Subroutines<\/h3>\n<ol>\n<li>Internal subroutines:\n<ul>\n<li>If a subroutine is in the same program which is being called, we call it an internal subroutine.<\/li>\n<li>An internal subroutine is allowed to access data objects in the program.<\/li>\n<\/ul>\n<\/li>\n<li>External subroutines:\n<ul>\n<li>If a subroutine is outside the program which is being called, we call it an external subroutine.<\/li>\n<li>An external subroutine is not allowed to access data objects in the program and has to use the PASS option for access.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Calling an internal subroutine<\/p>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PERFORM &lt;subroutine_name&gt; [&lt;parameters_to_pass&gt;]\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PERFORM &lt;ZF_DATAFLAIR_001&gt;\t\t\u201cSince there are no parameters in our example\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\"><span style=\"font-weight: 400;\">This is a form.<\/span><\/div>\n<div class=\"code-output\">Calling an external subroutine<\/div>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PERFORM &lt;subroutine_name&gt; (&lt;Program&gt;)[&lt;parameters_to_pass&gt;]\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PERFORM &lt;ZF_DATAFLAIR_001&gt; (ZR_SS_DATAFLAIRSAMPLE_001)\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\"><span style=\"font-weight: 400;\">This is a form.<\/span><\/div>\n<h3>Function Modules in SAP ABAP<\/h3>\n<ul>\n<li>Function modules contain statements that we can reuse.<\/li>\n<li>However, unlike INCLUDE programs, we can run the statements within function modules on their own i.e. independently.<\/li>\n<li>The function group puts together a couple of statements that logically belong together.<\/li>\n<li>Hence, a function module is a type of modularisation that creates logical blocks rather than strictly processing blocks.<\/li>\n<li>We can define function modules using FUNCTION and ENDFUNCTION statements.<\/li>\n<li>We can use RFCs (Remote Function Calls) to call functions from outside the SAP system.<\/li>\n<\/ul>\n<p><strong>SYNTAX<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FUNCTION &lt;function_name&gt;\r\n\u2026\r\n&lt;statements&gt;\r\n\u2026\r\nENDFUNCTION.\r\n<\/pre>\n<p><strong>EXAMPLE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FUNCTION ZF_DATAFLAIR\r\nWRITE: \u201cThis is statement 001.\u201d.\r\nWRITE: \u201cThis statement can be executed independently of statement 001.\u201d.\r\nENDFUNCTION.\r\n<\/pre>\n<p><strong>CALLING ABOVE FUNCTION MODULE<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CALL FUNCTION &lt;module_name&gt;\r\n        [EXPORTING &lt;exporting_parameters&gt;]\r\n        [IMPORTING &lt;importing_parameters&gt;]\r\n        [CHANGING &lt;changing_parameters&gt;]\r\n        [TABLES &lt;table_names&gt;]\r\n        [EXCEPTIONS &lt;exception_names&gt;]\r\n        [OTHERS = ro]\r\n<\/pre>\n<p><strong>OUTPUT<\/strong><\/p>\n<div class=\"code-output\"><span style=\"font-weight: 400;\">This is statement 001.<\/span><br \/>\n<span style=\"font-weight: 400;\">This statement can be executed independently of statement 001.<\/span><\/div>\n<h3>Function Groups in SAP ABAP<\/h3>\n<ul>\n<li>We can contain function modules in one of many standard function groups.<\/li>\n<li>The function modules within one function group are allowed to access global data.<\/li>\n<li>We cannot run function groups.<\/li>\n<li>They comprise selection screens, lists, etc.<\/li>\n<li>When we create the container, the code will create the main and include programs on its own.<\/li>\n<li>With respect to object-oriented programming, function groups are great for promoting data encapsulation.<\/li>\n<li>Data encapsulation is wrapping of data and functions into one single unit.<\/li>\n<\/ul>\n<p>How to Create a Function Group &amp; Function Module<\/p>\n<ol>\n<li>Open the SAP system.<\/li>\n<li>Click on tcode input box and type in \u2018SE80\u2019.<\/li>\n<li>You will get a dropdown menu, from which you will select \u2018Program\u2019.<\/li>\n<li>Now we will write the name of the function group (must start with \u2018Z\u2019).<\/li>\n<li>Function group is created.<\/li>\n<li>Now that the function group is opened, you get the option to directly create a function module.<\/li>\n<li>Add its name and properties, include necessary files that have its source code and hit enter.<\/li>\n<li>Save, test and activate the created function module.<\/li>\n<\/ol>\n<h3>Methods &amp; Classes in SAP ABAP<\/h3>\n<ul>\n<li>Methods are smaller pieces of a program created to perform a specific action.<\/li>\n<li>Each method has a name, parameters, return type and a specific use case that it resolves.<\/li>\n<li>A program calls a method simply in one line when it needs to perform an action.<\/li>\n<li>A class is an encapsulation of objects, data and methods that is part of the code.<\/li>\n<li>We call class instances as objects, which are the building blocks of object-oriented programming.<\/li>\n<li>We have explained methods &amp; classes in detail in our OOPS part #01 tutorial.<\/li>\n<\/ul>\n<h3>Summary<\/h3>\n<p>Thus, we learnt in this tutorial about the various techniques of modularization in ABAP. We learnt the meaning and use of modularization techniques, and the various types in ABAP. We also saw a few examples and tutorials on how to use the techniques.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we\u2019ll be learning about SAP ABAP modularization techniques. They make programs readable, flexible, and reusable. Let\u2019s dive right into the world of modules! What is Modularization in SAP ABAP? Modularization essentially&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":92430,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23786],"tags":[24078,24079,24080],"class_list":["post-92359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sap-abap","tag-modularization-in-sap-abap","tag-modularization-techniques-in-sap-abap","tag-sap-abap-modularization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modularization in SAP ABAP - DataFlair<\/title>\n<meta name=\"description\" content=\"Modularization is used to divide application program into smaller units to maintain easily &amp; reduce code redundancy. Learn more about it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modularization in SAP ABAP - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Modularization is used to divide application program into smaller units to maintain easily &amp; reduce code redundancy. Learn more about it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-27T03:30:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-28T06:16:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modularization in SAP ABAP - DataFlair","description":"Modularization is used to divide application program into smaller units to maintain easily & reduce code redundancy. Learn more about it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/","og_locale":"en_US","og_type":"article","og_title":"Modularization in SAP ABAP - DataFlair","og_description":"Modularization is used to divide application program into smaller units to maintain easily & reduce code redundancy. Learn more about it.","og_url":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2021-04-27T03:30:29+00:00","article_modified_time":"2021-04-28T06:16:44+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Modularization in SAP ABAP","datePublished":"2021-04-27T03:30:29+00:00","dateModified":"2021-04-28T06:16:44+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/"},"wordCount":1124,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg","keywords":["Modularization in SAP ABAP","Modularization techniques in SAP ABAP","SAP ABAP Modularization"],"articleSection":["SAP ABAP Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/","url":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/","name":"Modularization in SAP ABAP - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg","datePublished":"2021-04-27T03:30:29+00:00","dateModified":"2021-04-28T06:16:44+00:00","description":"Modularization is used to divide application program into smaller units to maintain easily & reduce code redundancy. Learn more about it.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/04\/modularization-techniques-in-sap-abap.jpg","width":1200,"height":628,"caption":"modularization techniques in sap abap"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/modularization-in-sap-abap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"SAP ABAP Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/sap-abap\/"},{"@type":"ListItem","position":3,"name":"Modularization in SAP ABAP"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/92359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=92359"}],"version-history":[{"count":1,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/92359\/revisions"}],"predecessor-version":[{"id":92431,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/92359\/revisions\/92431"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/92430"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=92359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=92359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=92359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}