SD and MM Flow with diagrams

Flow of MM & SD modules with Transaction codes and Diagrams., please give the phases of the flow and what are all the tables involved in it.

MM flow
MRP Controller ( MD11 )
Pur.Requisition (ME51 )
Req.For.Quot (ME41 )
Purchase Order (ME21)
OrderConfirmation(VA01)
Goods Receipt  (MIGO)
Material Documentation  ( MB51 )
Invoice Verification ( MIRO )
Physical  INVENTORY DOCUMENT 
   >   Inventory Counting
>   Cycle Counting  
>   Clear Differences
SD
     INQUIRY ( VA11)
               QUOTATION (VA21)
             PURCHASE ORDER (ME21)
            ORDER CONFIRMATION (VA01)      
         PICKING LIST –  (VL36)
        PACKING LIST  - (VL02, VL01)
                     SHIPPING – (VT01)
                     INVOICE – (VF21, VF01)
             AR

Similar Messages

  • SD  and MM FLOW with example

    Hi friends,
    Can any one tell me the SD and MM Flow with respect to company and customer like what the company and customer will do in various stages?

    hai  Reddy,
    SAP Sales and Distribution Processing Document Flow
    Document Flow in Sales
    The sales documents you create are individual documents but they can also form part of a chain of inter-related documents. For example, you may record a customer’s telephone inquiry in the system. The customer next requests a quotation, which you then create by referring to the inquiry. The customer later places an order on the basis of the quotation and you create a sales order with reference to the quotation. You ship the goods and bill the customer. After delivery of the goods, the customer claims credit for some damaged goods and you create a free-of-charge delivery with reference to the sales order. The entire chain of documents – the inquiry, the quotation, the sales order, the delivery, the invoice, and the subsequent delivery free of charge – creates a document flow or history. The flow of data from one document into another reduces manual activity and makes problem resolution easier. Inquiry and quotation management in the Sales Information System help you to plan and control your sales.
    The following graphic shows how the various types of sales documents are inter-related and how data subsequently flows into shipping and billing documents.
    D Transaction Code Flow:
    Inquiry / Document type IN
    Tcode for creation VA11,VA12, VA13. Tables VBAK, VBAP
    Quotation / QT
    Tcode for creation VA21,VA22,VA23. Tables VBAK, VBAP
    Purchase Order PO
    Tcode for creation ME21,ME22,ME23. tables EKKO,EKPO.
    Sales Order OR
    Tcode for creation VA01,VA02,VA03. Tables VBAK,VBAP
    Delivery LF
    Tcode for creation VL01,VL02,VL03. Tables LIKP,LIPS
    Billing MN
    Tcode for creation VF01,VF02,VF03. Tables VBRK,VBRP
    To create a sales order we need purchase order number and custmer number. Before that, to create a purchase order we need to have material no, vendor no.
    To create vendor tcode is
    xk01(create), xk02(change) , xk03(display)
    Tables are lfa1.
    To create custmer tcode is xd01, xd02, xd03.
    Table is kna1.
    After creating sales order using this no we can create delivery note tcode is vl01.
    MM  FLOW.
    Tables
    PO
    EKKO---Header level
    EKPO-Item level
    PR
    EBAN
    GR/Material document
    MKPF--Header
    MSEG-Item
    Invoice
    RBKP-header
    RSEG-Item
    Accounting doc
    BKPF--header
    BSEG--Item
    ServicesSSR--Header
    ESLL-Item
    It really depends on the company and their business process. Generally though:
    Purchase Requisition (user reqests stuff, either for manuf/stock, or supplies). -> then the PReq would go through an approval process (Release Strategy). Once approved, one can either create a Request for Quote (RFQ) to multiple vendors to obtain the best prices - and/or create the Purchase Order (either directly from the PReq or from the RFQ).
    Once the PO is created -> then a Goods Receipt is necessary (to indicate you received the goods ordered). Then Invoice Verification (again - if this is set up) - which basically prevents overpayment to a vendor (won't allow you to pay for goods not received through Goods Receipt). Then ultimately the payment to the Vendor.
    So - Transaction flow for create (common):
    PReq -> RFQ -> PO -> G/R -> Invoice -> payment (?)
    ME51N -> ME41 -> ME21N -> MIGO -> MIRO -> payment (?)
    Tables for Purchase Requisition:
    EBAN -
    EBKN - Account Assignment
    Tables for Purchase Orders:
    EKKO - Header
    EKPO - Item
    EINA - Purchasing Info Record (oops forgot to mention that above - PInfoRec has the vendor/material/price for future sourcing)
    Tables for Request for Quote:
    same as PO above
    Tables for Goods Receipt:
    MKPF - Material Document Header
    MSEG - Material Document Item
    EKBE - History of PO
    Tables for Invoice Verification:
    BSIS (good substitute for BSEG, which is a monster)
    If Found Helpfull Do Reward.
    Regards.
    EShwar.

  • About advance receipt and its flow with the Sales Order

    Hi Friends,
    I work for a construction client. Here I have a scenario where the client recieves a down payment on the flats from the customers before raising a Sales Order. The query is how does the client attach this particular receipt of down payment to a particular plant (in other words, there are so many buildings under construction, and the customer would make a payment for a particular flat in a particular building and the receipt is to be raised for one particular flat of a particular floor, in one particular building), how do we go about tracking the same.
    Pls suggest.
    Regards
    Soujanya.

    Thank you!
    But I get the following message in VL01N:
    "No schedule lines due for delivery up to the selected date "
    What does it mean exacly?
    I have a Confirmed Production Order.
    I have a quantity in CSTOCK.
    So, what is missing here?
    Thanks in advance!
    Rudy

  • Scheduling Mappings and Process Flows

    Can you please tell me how to schedule mappings and process flows in a little detail, if any one has done that. I think OEM can be used for this but dont have any clear cut idea of doing it. Can the mappings/process flows be scheduled without using OEM console ?
    Waiting for you suggestions.
    rgds
    -AP

    Hi
    You can schedule your mapping and process flows with OEM or database job.
    You will find script templates in the OWB HOME/owb/rtp/sql directory
    and you can scheldule them.
    If you want to do it in OEM use the oem_exec_template.sql file createing an OEM job. Read the OWB documentation about it. If you have any question about it ask it, I have done this procedure many times.
    Ott Karesz
    http://www.trendo-kft.hu

  • Data Models and Data Flow diagrams.

    Hi  Gurus,
        Can anybody brief me the concept of Data Models and Data Flow Diagrams and their development with illustrations. And is it a responsibility of a Technical or a Functional consultant..i.e to translate Business requirements and functional specifications into technical specifications, data flow diagrams and data models.
    Your valuable answers will be rewarded.
    Thanks in advance.

    Hi,
    Concept of Data Models
    Data model or Data modelling is basically how you define or design your BW Architecture based on Business requirements. It deals with designing and creating a effcient BW architecture sticking to standard practices.
    Multi-Dimensional Modeling with SAP NetWeaver BI
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6ce7b0a4-0b01-0010-52ac-a6e813c35a84
    /people/githen.ronney3/blog/2008/02/13/modeling-strategies
    Modeling the Data Warehouse Layer with BI
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3668618d-0c01-0010-1ab5-aa75c3a4dfc2
    /people/gilad.weinbach2/blog/2007/02/23/a-beginners-guide-to-your-first-bi-model-in-nw2004s
    Data Flow Diagrams
    This show the path of data flow for each individual object in BW. How data dets loaded into that object and how it is going out of the object etc.
    Right click on the data target > show data flow .
    It shows all the intermdeiate layer through which data comes into that particular object.
    Responsibility of a Technical or a Functional consultant
    This is done genrally in the designing phase itself by a Senior Technical Consultant with the help of a Functional consultant or a Techno=Functional consultant interacting with Business.
    Hope this helps.
    Thanks,
    JituK

  • Problem with context mapping and data flow in a FPM application

    Hi All,
    I am trying to develop an ESS application using FPM. For the same, the requirement is to see the history of an employee in the second view.
    The first view has got just the overview information and the second one has got the detail. So, the records or the fields are the same on both the views.
    As per the FPM guidelines, the Model is residing in the Fc component and the respective Vc components are using the model data accordingly.
    I am executing the model in the Fc component calling the executable method in the interfaceController of the first view and then trying to display the output data of the BAPI in the first view which provides the overview information.This is working fine.
    But when i am trying to map the same output node to the Table UI for the second view, the record size is coming zero and thus no information is available.
    For the above issue, I am again executing the RFC in the InterfaceController of the second view to populate the records, which is incorrect as it is already executed and the data is available for the first view.
    I request you to let me know the correct approach to Context mapping and data flow when using FPM-roadmap. Is their any standard method or approach available to deal with such requirements? Please let me know.
    Thanks in advance.
    Regards
    DK

    Hi Idhaya,
    I model node is available in Fc and the Fc interface controller is being used in the first Vc and the second Vc.
    So the idea is, as the executable method is generated in the Fc, so i have created a custom method to call the executable method in Fc, where the input parameter is getting passed and this custom method is finally getting called is the first Vc.
    So , now my first Vc is ready to call the custom method in Fc and execute the RFC. Once the RFC is executed, the nodes in the Fc should get populated which is the ideal case.
    And as the Fc is used as a component in the second Vc, the same node is available to the UI elements.
    But, when I check the record size for the output node, it is always zero, for the second Vc.
    Regards
    DK

  • Work flow and tables related with ESS Travel Module

    Hi Experts,
    I am new for work flow. Presently I am working for SAP ESS / MSS Travel module. Can you please let me know the names of work flows and tables related with ESS Travel module.
    Regards,
    Gary

    Hi Gary,
    Check if this [thread1|Let us learn SAP ESS Travel] [thread2|Travel Management Tables] helps you.
    Regards,
    Saumya

  • Returning from a JSF flow with faces-redirect

    I'm using Glassfish 4.1 with JSF 2.2.9. I can't figure out how to return from a JSF flow with a redirect. I've tried this in the flow definition xml:
    <flow-return id="returnFromFlow">
        <from-outcome>/index.xhtml?faces-redirect=true</from-outcome>
    </flow-return>
    This does the redirect but results in navigation errors on the page, specifically the button that enters the flow again: "Unable to find matching navigation case from view ID '/index.xhtml' for outcome 'select-person'" (the flow is called select-person).
    I've also tried appending faces-redirect=true to the action of the commandButton that exits the flow. Now the flow does not exit, it reloads the current page within the flow and says "Unable to find matching navigation case with from-view-id '/select-person/select-person.xhtml' for action 'returnFromFlow?faces-redirect=true' with outcome 'returnFromFlow?faces-redirect=true'"
    Exiting the flow with h:link works, but I want to be able to call an action and submit form values with the button so that isn't a good workaround for me.
    What's kind of interesting is that navigating between views within the flow DOES work with faces-redirect=true. I can add a "step2" node, and a commandButton with action="step2?faces-redirect=true", and it works. It's just exiting the flow that does not work.
    Any ideas?

    Hi Frank,
    Thanks so much for your response.
    Yes, since the user can do a commit prior to exiting my edit task flow, option 1 will not work for me.
    Option 2 sounded feasible, but jdeveloper would not let me set the restore point to true, since my btf didn't require a transaction. Is there a step I'm missing here??
    The thing that is really getting me when return via the cancel button from this edit task flow, back to my parent task flow, the record pointer is always moving back to the beginning of the data set in my parent task flow. For example,if I have a data set
    rec1, rec2, rec3..
    On my parent taskflow call it browser task flow, I navigate (via the next button) to rec3, and I click edit. At this point, my edit task flow kicks off, and since both task flows share the same data control, the edit task flow rec pointer is the same as the browse one.
    Okay I decide I don't want to change anything in my rec3, so I click cancel.
    At this point, when I return back to the navigator task flow, it points me back to rec1 ..
    HOwever, the savepoint seems to fix this. When I set my cancel return from edit taskflow to savePoint = true, the rec pointer stays in the correct spot. However, I cannot always do this, because the user can make iterative saves in the edit task flow which (based on your previous email) stales out the savepoint id.
    Question, so in this case, how can I make the parent browser task flow call stay on the same record I was just editing, opposed to going back to the beginning of the data set(ie. rec1)??

  • Unable to scan and communicat​e with scan function C6180 Vista Home Premium 64 bit Printing works

    I have an all in one C6180 Photosmart connected by wireless network (infrastructure). Network consists of 2-laptops, 1-Desktop and the printer.  Everything works from HP solution Center on the Compaq laptop and the Dell desktop both running Windows XP. My newest laptop is a Dell studio XPS core2   2.4ghz running Windows Vista Home Premium 64 bit. I am unable to scan from the Dell Laptop using HP Solution Center nor can I scan from the printer buttons to the laptop. Solution Center opens I select "scan document" and immediately get an error message "unable to communicate with scanning device. Likewise with the copy function.  The laptop does recognize the printer though and I am able to print wirelessly.  All functions work when connected via USB so I believe the printer is fine.  I have been working with this problem since I bought the printer in 2007. I spent many hours reading hundreds of internet posts, talking by phone with HP and via e-mail support from HP.  I became frustrated and gave up for awhile but now I want to see if there are any new solutions that I don't know about. I downloaded full feature software and drivers for the 6180 from HP and performed various levels of uninstall (L1, L2, L3, L4). I also cleaned the registry with ccleaner, windows disk cleanup and manual registry deletions when allowed per HP. I have checked port settings, tried stopping HP functions is Services.Msc. The Digital monitor is currently running, however no scanner communication-computer to 6180 and no scanner communication 6180 to computer. I can print and fax from computer wirelessly. I have ran the HP diagnostic utility separately and it appears everything is fine, connection IPaddress etc. During install when prompted to run test it says the printer is connected to the network. I have tried to add a device to the network after install and get the message no wireless devices found. The scanner does not appear under Cameras and Scanners in control panel. Nor will it find the scanner when I try to add device. Firewalls and antivirus have been turned off. Still can't make it work. Suggestions please.

    Sorry about your pain.  L3 uninstall is what I recommend.  Re-install from hp.com and this time, with the printer properly attached it should flow OK.
    Say thanks by clicking "Kudos" "thumbs up" in the post that helped you.
    I am employed by HP

  • How can I open a vi and show the block diagram?

    Hi,
    I am opening an vi using "Open VI Reference" and "Invoke Methodpen FP", but I want to open the vi and show the block diagram, but I haven´t found any method (Invoke Method) to do that and any property.
    Any idea?
    Thanks!
    Gracinda

    OK, I can come up with a reason.  I have written a program that will search the entire VI Hierarchy of a program and update all of the descriptions for all VIs with the top level program part #, the name of the top level program that the VI is used in, the company copyright info, the ITAR notice, company address, the name of the engineer performing the update, along with the date and time.  This will also place as a background image on all the VIs, a watermark of the company name, legality stuff and the copyright. It works very slick in that if there are thousands of sub-vis, such as what I'm working on now, it goes through all of them, makes sure the data is there as per company policy without having to open every one of them look at them and update or not whichever the case may be. The one portion that is tough is that the program will detect if there is a description written about what funtion the VI performs and if there is not a description, then it pops up a dialog requesting the user to write a description. The problem is that without looking at the block diagram for the VI, it can be nearly impossible to write a description for the functionality of the VI. So is there a way to programmatically open a VI, show its block diagram (this would only be in the case of a missing description) and then upon completion of the updates, close the block diagram? (I already open and close the VI programmatically in order to read the VI DESC and update as needed, but that is in the background and of course you can't see the block diagram).
    Thanks,
    Dan

  • How Do You Make an Image Flow with the Text?

    Hello all,
    I am using CS4 InDesign on Windows Vista. I am fairly new to Indesign but try to do my research and homework well before asking what I hope is not a really dumb question.
    I am writing a book of approx. 350 pages that is an illustrated encyclopedia of 156 plants and their oils.
    Each 2 page spread is a single entry for a plant. The graphics frames on each spread are identical in size, position and styles for a consistent look throughout the document.As you can see (hopefully) each page is a single column. See screenshot below
    In order to overcome my first problem of positioning and sizing the graphics frames uniformly, I created the master pages with the graphics placeholders sized, positioned and formatted to my liking. This worked wonderfully and I placed all of my 300+ graphics by simply over riding each frame.
    Then in my editing I decided to add another 2 page spread somewhere in the middle of this fairly large document.
    What a NIGHTMARE. The text predictably shifted but now ALL of my graphics were no longer associated with the corresponding text! Arrrgghhh.I had not anticipated this behavior (used MS Word for 15 years) or I would have done something different.
    3 hours later I finished re -"placing" the images associated with the correct text.
    I researched the help file and found out about the neccessity of anchoring graphics to text. I have read through the threads in this forum, followed links to "indesignsecrets.com/make-an-image-flow-with-the-text" and " Working with anchored objects by Anne Marie Concepcion"
    My concerns are this.
    An inline graphic places the graphic back onto your text layer for some reason ( Previously my graphics each had their own layer)
    Not wanting to start (again) from scratch with my graphics I converted them to inline/custom anchored objects.
    But to select then cut then paste every pre existing graphic to anchor it inline seems to be cumbersome and counter intuitive although the top smaller graphic did position well and the text seemed to wrap ok.
    When I placed the larger bottom graphic on the left facing page using custom positioning I was not able to get the text to wrap at all.( The in line anchoring did not seem to allow for positioning on anything but the 'Y' axis).
    It seems that there would be a simpler way to place text and graphics where you want them and have them associate and flow together (or not) when you want them to and have text wrap easily around an anchored object without keyboard gymnastics. It would seem that the concept of a certain graphic being associated or linked with certain text would not be an unusual concept in desktop publishing.
    Am I missing something?
    Can you place an anchored graphics frame on the master page with your desired options?
    How would this be done if possible?
    Is there any other way (i.e grouping) to keep graphics associated with the desired text so that it flows together if extra pages are added?
    Is the fact that my graphics frames are on my master pages responsible for my text wrap difficulty? (I have text wrap enabled on my master pages)
    Are there any settings, redundant or otherwise, I need to be aware of?
    Thank you in advance for any suggestions or directions
    L.N.

    Hello Again,
    Thank You Bob but I am still a little fuzzy on this. I have already created object styles for the graphics frames. For instance the small graphic underneath the heading (Its a drop of oil) has an object style applied. Now I checked and it has the anchored object options checked in the style dialog box. When I reapply the style to the next similar graphics nothing happens. It is still not anchored. Do I need to create a new style based on "nothing" add my effects plus the anchoring options? Basically start over. If thats what I need to do thats OK. As to your instruction that object styles could accomodate this anchoring thing...thats what I thought too but somehow I can't get it to work. See object style dialog box screenshot below:
    For the larger graphic on the bottom of the left facing page. I still cannot get any text to wrap. In the screenshot example the text describing this particular plant doesn't go to the bottom of the page so the wrapping issue on this page is moot. However I have some entries where the body of the description is more involved and does go to the bottom of the page and the text WOULD need to wrap around the plant (larger ) graphic.
    Hi there Harb, Yes I found out early on that object styles can't apply size (that would be on my wish list for sure) That is why I found that creating my graphics frames on the master page with the correct size, effects and positioning tickled me so much. Can you believe I originally went through and MANUALLY resized and repositioned each and every 300+ graphics in this book but it still wasn't right. I'm nothing if not persistent. (Now if I could just get my grown sons to pick up their socks!)
    Anyway the master page graphics frames idea would be perfect if I could get the images to anchor in their respective spots on the master page as well.
    For your second suggestion. I am not clear about why I would need to break the threads of each spread so that each spread is a seperate article. Is the threading issue the thing that is causing my text to move on leaving their associated graphics behind? If so how do I go about doing this?
    So to recap:
    1. I need to know if I can modify my object style or recreate from scratch with the anchoring option (as I said it didn't work)
    2. Can't get text to wrap around the Custom anchored graphic at bottom of page at all
    3. Im not clear on the breaking the threading on the spreads
    I am willing to go back through and start from scratch (new master pages, styles etc ) if neccesary. This book is the culmination of 7 years of research and artwork.Basically the project is DONE. Now if I can just format it correctly.
    I can't thank you both enough for your time, suggestions, expertise and patience.
    Thanks again
    LN

  • Single task flow with multiple tabs not working properly in UIShell

    Hi,
    I am using the UIShell Dynamic tabs concept. Here am creating the task flow with a fragment which am binding to the backing bean. if am trying to open the same task flow in two tabs.the getter of backing bean are calling for both tabs when am opening the second tab.
    Please provide me any solution or why backing bean getter is firing for the first tab even i opened the second tab.
    Reg,
    Brahma B.

    There are a few problems that I have noticed so far.
    Line #1 <!doctype html5> is not recognised, hence the page will revert back to HTML 4.01 Transitoinal. It should read <!doctype html>
    Line #51 (links to) style rules should be placed in the <head> element, not in the <body> element
    Lines #124, #159 and #188 all link to the same JS file. Delete two of them.
    Lines #126, #161 and #207 contain a constructor for the same widget. The former two should be deleted.
    Lines #190 and #208 contain a constructor for the same widget. The former should be deleted
    Although JS can be placed anywhere in a document, I tend to place all JS at the bottom, just above the ending body tag (</body>) unless the JS is required for rendering purposes in which case it should be placed where it is required. This way, you can keep check of what you have linked to and which constructors you have created thus eliminating the problems mentioned above.
    Also you might like to have a look at a collapsible panel group http://labs.adobe.com/technologies/spry/samples/collapsiblepanel/CollapsiblePanelGroupSamp le.html. This will simplify the code somewhat.
    Gramps

  • OMB05603 while deploying a process flow with OMB

    Hi all,
    I am trying to deploy a process flow with OMB. I tried with the repository owner and with a non-admistrative user, but I am getting the following error.
    OMB05603: Deployment of Component 'PROCESS_FLOW_MODULE' with action 5 is not allowed.
    Any help is appreciated.
    Regards,
    Sebastian
    Code Extract
    catch {
         OMBCREATE TRANSIENT DEPLOYMENT_ACTION_PLAN '$plan_name'
         puts "deployment plan created"
         set objectList [OMBRETRIEVE COLLECTION '$col_name' GET ALL REFERENCES]
         foreach object $objectList {
              set objectType [lindex $object 0]
              set objectName [lindex $object 1]
              OMBALTER DEPLOYMENT_ACTION_PLAN '$plan_name' ADD ACTION '$objectName' \
              SET PROPERTIES (OPERATION) VALUES ('CREATE') SET REFERENCE $objectType '$objectName'
              puts "adding action for object $objectType $objectName"
    }

    Hi Sebastian
    I suspect this is because you are trying to deploy the process flow module.
    The process flow package should be deployed - not the module and not the flow itself.
    Cheers
    David

  • How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.

    how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
    please explain the important questions.

    How to deal with table control / step loop in BDC
    Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
    Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
    Demo ABAP code has two purposes:
    1. how to determine number of visible lines and how to calculte page number;
    (the 'calpage' routine has been modify to meet general purpose usage)
    2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
    Now I begin to describe the step to implement my method:
    (I use transaction 'ME21', screen 121 for sample,
    the method using is Call Transation Using..)
    Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
    (Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
    Now we have : FixedLine = 9
                  LoopLine  = 2(for table control, LoopLine is always equal to 1)
    Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
    Now we have: FirstLine = 0
              or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
    Step3: write a subroutine calcalculating number of pages
    (here, the name of actual parameter is the same as formal parameter)
    global data:    FixedLine type i, " number of fixed line on a certain screen
                    LoopLine  type i, " the number of lines occupied by one steploop item
                    FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new                                                               " scrolling screen is empty, otherwise is 1
                    Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get
                    pageno    type i, " you need to scroll screen how many times.
                    line      type i, " number of lines appears on the screen.
                    index(2)  type N, " the screen index for certain item
                    begin     type i, " from parameter of loop
                    end       type i. " to parameter of loop
    *in code sample, the DataTable-linindex stands for the table index number of this line
    form calpage using FixedLine type i (see step 1)
                       LoopLine  type i (see step 1)
                       FirstLine type i (see step 2)
                       DataLine  type i ( this is the item number you will enter in transaction)
              changing pageno    type i (return the number of page, depends on run-time visible                                                                             line in table control/ Step Loop)
              changing line      type i.(visible lines one the screen)
    data: midd type i,
          vline type i, "visible lines
    if DataLine eq 0.
       Message eXXX.
    endif.
    vline = ( sy-srows - FixedLine ) div LoopLine.
    *for table control, you should compare vline with maximum line of
    *table control, then take the small one that is min(vline, maximum)
    *here only illustrate step loop
    if FirstLine eq 0.
            pageno = DataLine div vline.
            if pageno eq 0.
               pageno = pageno + 1.
            endif.
    elseif FirstLine eq 1.
            pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
            midd = ( DataLine - 1 ) mod ( vline - 1).
            if midd = 0 and DataLine gt 1.
                    pageno = pageno - 1.
            endif.
    endif.
    line = vline.
    endform.
    Step4 write a subroutine to calculate the line index for each item.
    form calindex using Line type i (visible lines on the screen)
                        FirstLine type i(see step 2)
                        LineIndex type i(item index)
              changing  Index type n.    (index on the screen)
      if  FirstLine = 0.
            index = LineIndex mod Line.
            if index = '00'.
                    index = Line.
            endif.
      elseif FirstLine = 1.
            index = LineIndex mod ( Line - 1 ).
            if ( index between 1 and 0 ) and LineIndex gt 1.
                    index = index + Line - 1.
            endif.
            if Line = 2.
                    index = index + Line - 1.
            endif.
    endif.
    endform.
    Step5 write a subroutine to calculate the loop range.
    form calrange using Line type i ( visible lines on the screen)
                        DataLine type i
                        FirstLine type i
                        loopindex like sy-index
            changing    begin type i
                        end type i.
    If FirstLine = 0.
       if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
       elseif loopindex gt 1.
            begin = Line * ( loopindex - 1 ) + 1.
            end   = Line * loopindex.
            if end gt DataLine.
               end = DataLine.
            endif.
       endif.
    elseif FirstLine = 1.
      if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
      elseif loop index gt 1.
            begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
            end =   ( Line - 1 ) * ( loopindex - 1 ) + Line.
            if end gt DataLine.
                    end = DataLine.
            endif.
      endif.
    endif.
    endform.
    Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
    form creat_bdc.
    field-symbols: <material>, <quan>, <indicator>.
    data: name1(14) value 'EKPO-EMATN(XX)',
          name2(14) value 'EKPO-MENGE(XX)',
          name3(15) value 'RM06E-SELKZ(XX)'.
    assign:         name1 to <material>,
                    name2 to <quan>,
                    name3 to <indicator>.
    do pageno times.
    if sy-index gt 1
    *insert scroll page ok_code"
    endif.
            perform calrange using Line DataLine FirstLine sy-index
                             changing begin end.
    loop at DataTable from begin to end.
            perform calindex using Line FirstLine DataTable-LineIndex changing Index.
            name1+11(2) = Index.
            name2+11(2) = Index.
            name3+12(2) = Index.
            perform bdcfield using <material> DataTable-matnr.
            perform bdcfield using <quan>     DataTable-menge.
            perform bdcfield using <indicator> DataTable-indicator.
    endloop.
    enddo.
    An example abap program of handling Table Control during bdc programming.
    REPORT zmm_bdcp_purchaseorderkb02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
                    Declaring internal tables                            *
    *-----Declaring line structure
    DATA : BEGIN OF it_dummy OCCURS 0,
             dummy(255) TYPE c,
           END OF it_dummy.
    *-----Internal table for line items
    DATA :  BEGIN OF it_idata OCCURS 0,
              ematn(18),      "Material Number.
              menge(13),      "Qyantity.
              netpr(11),      "Net Price.
              werks(4),       "Plant.
              ebelp(5),       "Item Number.
            END OF it_idata.
    *-----Deep structure for header data and line items
    DATA  :  BEGIN OF it_me21 OCCURS 0,
               lifnr(10),      "Vendor A/c No.
               bsart(4),       "A/c Type.
               bedat(8),       "Date of creation of PO.
               ekorg(4),       "Purchasing Organisation.
               ekgrp(3),       "Purchasing Group.
               x_data LIKE TABLE OF it_idata,
             END OF it_me21.
    DATA  :  x_idata LIKE LINE OF it_idata.
    DATA  :  v_delimit VALUE ','.
    DATA  :  v_indx(3) TYPE n.
    DATA  :  v_fnam(30) TYPE c.
    DATA  :  v_count TYPE n.
    DATA  :  v_ne TYPE i.
    DATA  :  v_ns TYPE i.
    *include bdcrecx1.
    INCLUDE zmm_incl_purchaseorderkb01.
                    Search help for file                                 *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
           To upload the data into line structure                        *
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = it_dummy.
        Processing the data from line structure to internal tables       *
      REFRESH:it_me21.
      CLEAR  :it_me21.
      LOOP AT it_dummy.
        IF it_dummy-dummy+0(01) = 'H'.
          v_indx = v_indx + 1.
          CLEAR   it_idata.
          REFRESH it_idata.
          CLEAR   it_me21-x_data.
          REFRESH it_me21-x_data.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
                                           it_me21-bsart
                                           it_me21-bedat
                                           it_me21-ekorg
                                           it_me21-ekgrp.
          APPEND it_me21.
        ELSEIF it_dummy-dummy+0(01) = 'L'.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_idata-ematn
                                           it_idata-menge
                                           it_idata-netpr
                                           it_idata-werks
                                           it_idata-ebelp.
          APPEND it_idata TO it_me21-x_data.
          MODIFY it_me21 INDEX v_indx.
        ENDIF.
      ENDLOOP.
                    To open the group                                    *
      PERFORM open_group.
            To populate the bdcdata table for header data                *
      LOOP AT it_me21.
        v_count = v_count + 1.
        REFRESH it_bdcdata.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',
                                        ' ' 'BDC_CURSOR'  'EKKO-LIFNR',
                                        ' ' 'BDC_OKCODE'  '/00',
                                        ' ' 'EKKO-LIFNR'  it_me21-lifnr,
                                        ' ' 'RM06E-BSART' it_me21-bsart,
                                        ' ' 'RM06E-BEDAT' it_me21-bedat,
                                        ' ' 'EKKO-EKORG'  it_me21-ekorg,
                                        ' ' 'EKKO-EKGRP'  it_me21-ekgrp,
                                        ' ' 'RM06E-LPEIN' 'T'.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',
                                        ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                        ' ' 'BDC_OKCODE'  '/00'.
        MOVE 1 TO v_indx.
    *-----To populate the bdcdata table for line item data
        LOOP AT it_me21-x_data INTO x_idata.
          CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.
          CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.
          CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.
          CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.
          v_indx = v_indx + 1.
          PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '/00'.
        ENDLOOP.
        PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '=BU'.
        PERFORM bdc_transaction USING 'ME21'.
      ENDLOOP.
      PERFORM close_group.
                      End of selection event                             *
    END-OF-SELECTION.
      IF session NE 'X'.
    *-----To display the successful records
        WRITE :/10  text-001.          "Sucess records
        WRITE :/10  SY-ULINE(20).
        SKIP.
        IF it_sucess IS INITIAL.
          WRITE :/  text-002.
        ELSE.
          WRITE :/   text-008,          "Total number of Succesful records
                  35 v_ns.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_sucess.
          WRITE:/4  it_sucess-lifnr,
                 17 it_sucess-tabix CENTERED,
                 30 it_sucess-sucess_rec.
        ENDLOOP.
        SKIP.
    *-----To display the erroneous records
        WRITE:/10   text-006.          "Error Records
        WRITE:/10   SY-ULINE(17).
        SKIP.
        IF it_error IS INITIAL.
          WRITE:/   text-007.          "No error records
        ELSE.
          WRITE:/   text-009,          "Total number of erroneous records
                 35 v_ne.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_error.
          WRITE:/4  it_error-lifnr,
                 17 it_error-tabix CENTERED,
                 30 it_error-error_rec.
        ENDLOOP.
        REFRESH it_sucess.
        REFRESH it_error.
      ENDIF.
    CODE IN INCLUDE.
    Include           ZMM_INCL_PURCHASEORDERKB01
    DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   E_GROUP_OPENED.
    *-----Internal table to store sucess records
    DATA:BEGIN OF it_sucess OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           sucess_rec(125),
         END OF it_sucess.
    DATA: g_mess(125) type c.
    *-----Internal table to store error records
    DATA:BEGIN OF it_error OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           error_rec(125),
         END OF it_error.
           Selection screen
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
    SELECTION-SCREEN POSITION 45.
    PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction
    SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS group(12).                      "group name of session
    SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS e_group(12).             "group name of error-session
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:p_file LIKE rlgrap-filename.
      at selection screen                                                *
    AT SELECTION-SCREEN.
    group and user must be filled for create session
      IF SESSION = 'X' AND
         GROUP = SPACE. "OR USER = SPACE.
        MESSAGE E613(MS).
      ENDIF.
      create batchinput session                                          *
    FORM OPEN_GROUP.
      IF SESSION = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(I01), GROUP.
        SKIP.
    *----open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT = SY-MANDT
            GROUP  = GROUP
            USER   = sy-uname.
        WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
    FORM CLOSE_GROUP.
      IF SESSION = 'X'.
    *------close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ELSE.
        IF E_GROUP_OPENED = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE TYPE ANY.
      DATA: L_SUBRC LIKE SY-SUBRC.
    *------batch input session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
        WRITE: / 'BDC_INSERT'(I03),
                 TCODE,
                 'returncode:'(I05),
                 SY-SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ELSE.
        REFRESH it_MESSTAB.
        CALL TRANSACTION TCODE USING it_BDCDATA
                         MODE   CTUMODE
                         UPDATE CUPDATE
                         MESSAGES INTO it_MESSTAB.
        L_SUBRC = SY-SUBRC.
        WRITE: / 'CALL_TRANSACTION',
                 TCODE,
                 'returncode:'(I05),
                 L_SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ENDIF.
      Message handling for Call Transaction                              *
      perform subr_mess_hand using g_mess.
    *-----Erzeugen fehlermappe
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
            EXPORTING
              CLIENT = SY-MANDT
              GROUP  = E_GROUP
              USER   = sy-uname
              KEEP   = E_KEEP.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
      ENDIF.
      REFRESH it_BDCDATA.
    ENDFORM.                    "BDC_TRANSACTION
         Form  subr_bdc_table                                            *
          text
         -->P_0220   text                                                *
         -->P_0221   text                                                *
         -->P_0222   text                                                *
    FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY
                                    VALUE(P_0221) TYPE ANY
                                    VALUE(P_0222) TYPE ANY.
      CLEAR it_bdcdata.
      IF P_0220 = ' '.
        CLEAR it_bdcdata.
        it_bdcdata-fnam     = P_0221.
        it_bdcdata-fval     = P_0222.
        APPEND it_bdcdata.
      ELSE.
        it_bdcdata-dynbegin = P_0220.
        it_bdcdata-program  = P_0221.
        it_bdcdata-dynpro   = P_0222.
        APPEND it_bdcdata.
      ENDIF.
    ENDFORM.                    " subr_bdc_table
         Form  subr_mess_hand                                            *
          text                                                           *
         -->P_G_MESS  text                                               *
    FORM subr_mess_hand USING  P_G_MESS TYPE ANY.
      LOOP AT IT_MESSTAB.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID     = it_messtab-msgid
            LANG   = it_messtab-msgspra
            NO     = it_messtab-msgnr
            v1     = it_messtab-msgv1
            v2     = it_messtab-msgv2
          IMPORTING
            MSG    = P_G_MESS
          EXCEPTIONS
            OTHERS = 0.
        CASE it_messtab-msgtyp.
          when 'E'.
            it_error-error_rec   =  P_G_MESS.
            it_error-lifnr       =  it_me21-lifnr.
            it_error-tabix       =  v_count.
            APPEND IT_ERROR.
          when 'S'.
            it_sucess-sucess_rec =  P_G_MESS.
            it_sucess-lifnr      =  it_me21-lifnr.
            it_sucess-tabix      =  v_count.
            APPEND IT_SUCESS.
        endcase.
      ENDLOOP.
      Describe table it_sucess lines v_ns.
      Describe table it_error  lines v_ne.
    ENDFORM.                    " subr_mess_hand
    Also refer
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
    and
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    Regards,
    srinivas
    <b>*reward for useful answers*</b>

  • SSIS Control and Data Flow Items not available in Customize Toolbox

    I cannot add additional Data Flow and Control Flow items to the SSIS Toolbox. I am using SQL Server 2014 and VS 2013 (BIDS). The standard SSIS items appear - but they are all of them. How do I add the additional ones that are not loaded by default. I didn't
    have this issue with SQL Server 2012.
    Thank you,
    Johhn
    John

    John, which ones you do not see? AFAIK nothing has changed regarding how the items get added to SSIS toolbox in SSDT or VS 2013 with SSDT installed (no BIDS in SSIS 2012 and up).
    Arthur My Blog

Maybe you are looking for