Visit the SAP Forum

Languages : English | Dutch | French | Portugese | Italian



INTERVIEW EBOOK
Get 9,000+ Interview Questions & Answers in an eBook. Interview Question & Answer Guide
  • 9,000+ Interview Questions
  • All Questions Answered
  • 5 FREE Bonuses
  • Free Upgrades



My site is worth $6,666.
How much is yours worth?

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 sss@cal.vsnl.net.in *       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


Urgent Job Openings


SAP Resources

  • SAP Articles
  • SAP Books
  • SAP Certifications
  • SAP Companies
  • SAP Downloads
  • 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

  • Copyright © 2006. OneStopSAP. All rights reserved
    The site is maintained by Vyom Technosoft. Sitemap (XML)