Visit the SAP Forum

Languages : English | Dutch | French | Portugese | Italian



INTERVIEW EBOOK
Get 30,000 Interview Questions & Answers in an eBook.

Interview Success Kit - Get Success in Job Interviews



Send your Resume to 6000 Companies
START YOUR WEBSITE
India's Best Web Hosting Company

Recursion with Loop Checking in SAP


Home »ABAP Programming »Recursion with Loop Checking in SAP


"Recursion with Loop Checking in SAP

* This program can be a model for any ABAP recursion.
* This is often needed to navigate down hierarchical data.
* One example is BOM.

* Important point is to chack for stack overflow
* and give RIGHT MESSAGE so that corrective action can be taken.


*&---------------------------------------------------------------------* * Sample Program Showing Recursion in ABAP * Simple BOM Tree walking in ABAP * Takes Care of Diagnostics as well - detects Loops * Hence never experience Stack Overflow! *&---------------------------------------------------------------------* ** Author Jayanta Narayan Choudhuri *         Flat 302 *         395 Jodhpur Park *         Kolkata 700 068 *       Email [email protected] *       URL:  http://www.geocities.com/ojnc REPORT zjncrecursion. INCLUDE zjncinclude. " From www.sap-img.com TABLES: makt. CONSTANTS: maxlevels TYPE i VALUE 10. TYPES: BEGIN OF ty_usage,           parent  TYPE  makt-matnr,           child   TYPE  makt-matnr,           usage   TYPE  mseg-menge,        END OF ty_usage. DATA: wa_usage  TYPE ty_usage,       it_usage  TYPE STANDARD TABLE OF ty_usage.    " USAGE data TYPES: BEGIN OF ty_stack,           level   TYPE  h_level,           matnr   TYPE  makt-matnr,           menge   TYPE  mseg-menge,        END OF ty_stack. DATA: istackpos TYPE i,       wa_stack  TYPE ty_stack,       it_stack  TYPE STANDARD TABLE OF ty_stack.   "BOM Stack TYPES: BEGIN OF ty_reqd,           matnr   TYPE  makt-matnr,           menge   TYPE  mseg-menge,        END OF ty_reqd. DATA: wa_reqd   TYPE ty_reqd,       it_reqd   TYPE STANDARD TABLE OF ty_reqd.    "NET Requirement of  RAW Material PARAMETERS: p_build TYPE makt-matnr,    "Target   to Build             p_menge TYPE mseg-menge.    "Quantity to Build INITIALIZATION.   PERFORM f_usage_data. START-OF-SELECTION.   istackpos = 0.   MOVE istackpos  TO wa_stack-level.   MOVE p_build    TO wa_stack-matnr.   MOVE p_menge    TO wa_stack-menge.   APPEND wa_stack TO it_stack.                              " 1st PUSH   PERFORM f_explode USING p_build.   SORT it_reqd BY matnr.   PERFORM zjnc_dump_list USING 'IT_REQD' 'WA_REQD' 'Net RAW  Requirement'. *&--------------------------------------------------------------------* *&      Form  f_Explode *&--------------------------------------------------------------------* FORM f_explode USING p_pmatnr.   DATA: icount   TYPE i,         totalreq TYPE mseg-menge.   istackpos = istackpos + 1.                          " PUSH   IF istackpos GE maxlevels.     PERFORM f_dumpstack.    " terminate     LEAVE PROGRAM.   ENDIF.   icount = 0.   LOOP AT it_usage INTO wa_usage WHERE parent = p_pmatnr.     icount = icount + 1.     MOVE istackpos      TO wa_stack-level.     MOVE wa_usage-child TO wa_stack-matnr.     MOVE wa_usage-usage TO wa_stack-menge.     APPEND wa_stack     TO it_stack.                  " PUSH     PERFORM f_explode USING wa_usage-child.   ENDLOOP.   IF icount = 0.                                  " then LEAF     totalreq = '1.0'.     LOOP AT it_stack INTO wa_stack.       totalreq = totalreq * wa_stack-menge.     ENDLOOP.     MOVE p_pmatnr   TO wa_reqd-matnr.     MOVE totalreq   TO wa_reqd-menge.     COLLECT wa_reqd INTO it_reqd.   ENDIF.   DELETE it_stack INDEX istackpos.                      " POP   istackpos = istackpos - 1.                            " POP ENDFORM.                    "f_Explode *&--------------------------------------------------------------------* *&      Form  f_dumpstack *&--------------------------------------------------------------------* FORM f_dumpstack.   PERFORM zjnc_dump_list USING 'IT_STACK' 'WA_STACK' 'LOOP in BOM  STACK'. ENDFORM.                    "f_dumpstack *&--------------------------------------------------------------------* *&      Form  f_usage_data for Hungry Bengali ABAPer in Kolkata *&--------------------------------------------------------------------* FORM f_usage_data.   MOVE 'FISHCURRY'   TO wa_usage-parent.   MOVE 'SPICES'      TO wa_usage-child.   MOVE 10            TO wa_usage-usage.   APPEND wa_usage TO it_usage.   MOVE 'FISHCURRY'   TO wa_usage-parent.   MOVE 'MIRCHI'      TO wa_usage-child.   MOVE 5             TO wa_usage-usage.   APPEND wa_usage TO it_usage.   MOVE 'FISHCURRY'   TO wa_usage-parent.   MOVE 'ALOO'        TO wa_usage-child.   MOVE 8             TO wa_usage-usage.   APPEND wa_usage TO it_usage.   MOVE 'SPICES'      TO wa_usage-parent.   MOVE 'MIRCHI'      TO wa_usage-child.   MOVE 2             TO wa_usage-usage.   APPEND wa_usage TO it_usage.   MOVE 'SPICES'      TO wa_usage-parent.   MOVE 'JEERA'       TO wa_usage-child.   MOVE 3             TO wa_usage-usage.   APPEND wa_usage TO it_usage.   MOVE 'SPICES'      TO wa_usage-parent.   MOVE 'HALUD'       TO wa_usage-child.   MOVE 7             TO wa_usage-usage.   APPEND wa_usage TO it_usage. ENDFORM.    
A D V E R T I S E M E N T

A D V E R T I S E M E N T

S A P - R E S O U R C E S


Get Free SAP Resources:

Are you looking for:
  • SAP Jobs
  • Free SAP eBooks
  • SAP Softwares
  • SAP Tutorials
  • ERP Implementation Examples
Enter Email Address:
(Enter your email address above and we will instantly send you the download link to you, when you confirm your email.)
Search SAP Resources:
discussionDiscussion Center
Discuss
Discuss

Query

Feedback
Yahoo Groups
Y! Group
Sirfdosti Groups
Sirfdosti
Contact Us
Contact
Sign in

User Name:
Password:
Forget password? | Register


INTERVIEW EBOOK

Get 30,000 Interview Questions & Answers in an eBook.

Interview Success Kit - Get Success in Job Interviews


Send your Resume to 6000 Companies

SAP Resources

  • SAP Articles
  • SAP Books
  • SAP Certifications
  • SAP Companies
  • SAP Study Materials
  • SAP Events
  • SAP Faqs
  • SAP Jobs
  • SAP Job Consultants
  • SAP Links
  • SAP News
  • SAP Sample Papers
  • SAP Interview Questions
  • SAP Training Institutes
  •  
    SAP Tutorial

  • Introduction
  • SAP History
  • SAP Facts
  • SAP Tables
  • SAP Function
  • SAP Report
  • Reasons To Use SAP
  • SAP Landscape
  • SAP Transaction Code
  • SAP Lotus Notes Integration
  • Business Connector and XML
  • Enterprise Release 4.7

  • SAP Training Institutes

  • SAP Training Institutes
  • Job Consultants Address
  • SAP Companies Address

  • Business Process Cycle

  • Analyze
  • Design
  • Implement
  • Operate
  • Optimize
  • Skills And Education

  • Logistics Module

  • Sales and Distribution
  • Quality Management
  • Materail Management
  • Plant Maintenance
  • Financial Modules (FI/CO)
  • Project system
  • Production Planning
  • Service Management

  • SAP NetWeaver

  • Introduction
  • Object Model
  • Interoperability
  • Creating Web Apps
  • Java Connector
  • Advantages & Conclusion
  • Life Cycle Management
  • Composite Application Framework

  • SAP Tools

  • SQL Trace Tool
  • SAP CRM
  • SAP SRM
  • SAP SCM
  • SAP ERP
  • SAP BW

  • SAP Modules

  • SAP FI Module
  • SAP CO Module

  • SAP Technical

  • SAP ITS Architecture
  • Financial Management
  • Manufacturing Planning and Execution
  • Customer Order Management
  • Lackbox Processing
  • SD and Financial Accounting Integration
  • SAP - HR (Human Resource)

  • SAP Miscellanous

  • Web Application Server(WAS)
  • Data Archiving
  • Mobile Engine
  • SAP Script
  • SAP Transactions
  • SAP Business Warehouse(BW)

  • SAP Reference

  • SAP Facts
  • SAP Tables
  • SAP Function
  • SAP Report
  • SAP Landscape

  • SAP Others

  • SAP Treasury
  • SAP Finance
  • SAP WAS
  • SAP Data Archiving
  • SAP ALE
  • SAP EDI
  • SAP Exchange
  • SAP X-APPS
  • SAP Applications Components
  • SAP Software
  • Dunning
  • SAP IDES
  • SAP Payroll Basics
  • SAP BASIS and Security Authorization
  • SAP Backup
  • SAP Router

  • ABAP Tutorials

  • Introduction
  • ABAP Transaction
  • ABAP Function
  • ABAP File Processing
  • ABAP Objects
  • ABAP Syntax
  • ABAP Queries
  • SAPMail Using ABAP
  • ABAP Programming Hints

  • SAP Projects & Codes

  • Finding the user-exits
  • Purchase Order Display
  • Batch Input
  • Dynamic Open SQL
  • Creating Extract Dataset
  • Reading database tables
  • Load table from a UNIX file
  • Create subscreen

  • SAP Resources

  • SAP Books
  • SAP Links

  • Interview Question



  • Common Interview Que.
  • ABAP Interview Que.
  • ERP Interview Que.
  • HR Interview Que.
  • MM Interview Que.
  • PP Interview Que.
  • ALE Interview Que.
  • EDI Interview Que.
  • Basis Interview Questions
  • SAP-SD Interview Questions
  • FI&CO Interview Questions
  • BW Interview Questions
  • CRM Interview Questions
  • Interview Questions

  • Careers at SAP

  • Careers in SAP (SAP Jobs)
  • Advertise
  •