BADI - Multiple Implemetations?

Hi Experts,
One of the advantage of the BADIs over the user exit is Multiple implementation. So, let me know that,
Wht does it means?
Any real world example, wuld b appreciated.
Tahnk you.

Hi,
    One of main disadvantage of the user-exit is one time use, if the same enhancement is required for more than one application in that case user-exit was not solving the problem. To overcome of this disadvantage we have BADI.
For more detail  follow the below link.
Multiple implementation of a BADI
Thanks,
Asit Purbey.

Similar Messages

  • BADI - Multiple Implemetations-Wht is the use?

    Hi Experts,
    Even though a BADI does hv multiple implementations, at given point only one implentetation will be ACTIVE.......so, then, wht is the use of multiple implementations?
    thanq

    hi,
    pls have a look at the links below
    [http://help.sap.com/abapdocu/en/ABAPGET_BADI.htm]
    [http://help.sap.com/saphelp_nw70/helpdata/EN/e4/5c3642eca5033be10000000a1550b0/content.htm]
    hope they will be of some assitance...
    best of luck....
    thaks
    Ravi

  • BADI - Multiple implementation

    Hi,
    I know the how the badi multiple implementation is done and how filter usage is done. But Badi is for enhancement for standard SAP so in which kind of situation it is possible. Can any one give an example where this can be implemented multiple times.
    Regards,
    Rajesh

    Here is the software delivery process
    SAP->IBU->Partener->Customer
    So the given enhancment(Badi) can be implemented in the above process chain by the parties involved.
    ALso check http://help.sap.com/saphelp_47x200/helpdata/en/c8/1978b543b111d1896f0000e8322d00/frameset.htm
    Cheers,
    Hakim

  • Badi Multiple Use and Filter Dependent.

    Dear Experts,
    i Have enough Documents on Badi.
    and My question is If we implement the Multiple Use the program calls all active implementations in Dynamic sequence.
    to Call Particular Implmentation do we go for Filter dependent?
    or is both concepts are independent .
    Let me Know the difference
    Regards
    Raj.

    Yes,Both Concepts are independent.
    If the BADI Has checked with Muliple use check box then u can implement multiple implementation for that BADI for example check the BADI ME_PURCHDOC_POSTED Attributes tab.
    If the check box is marked with Filter-dependent then u can implement based on the data element.Example check the BADI NOTIF_EVENT_SAVE Attibutes tab.

  • San Rafael, CA--large residential area with NO cell, and NO data service--area rated by Verizon tech as "ALL COVERAGE BAD", multiple complaints--but no response by Verizon

    Dear Verizon Wireless Executives,
    I am writing to let you know that I (and many of my neighbors) are on the verge of switching to ATT, due to terrible reception in my home neighborhood. 
    I moved to Dominican neighborhood in San Rafael in March 2014, where I bought a house. I discovered that Verizon cell service varies from non-existent to terrible, both for data and cell service. At best I might get 1x data, and 0 or 1 bar for cell. All calls are dropped within 15 seconds. Data typically does not work.
    My response was to first purchase and install a network extender. However, due to the size and configuration of my home,  I discovered that I needed a second extender to cover the whole house. This has led to new problems—the two extenders “compete” and if I start a call in one part of the house and move 1 or 2 feet too far in the other direction, I lose the call.
    ATT has a powerful cell tower on the ridge above my neighborhood, which consistently produces 5 bars. It sits on a ridge in the Marin Open Space, likely on an old Nike base radio tower. (there are numerous towers on this ridge as a result of the abandoned Nike missle site).
    I have begun to organize in my neighborhood—Dominican/Black Canyon Home Owners Asssociation, with about 1200 homes. When I posted a message asking about other people’s experience with Verizon Wireless, I was inundated with at least 30 or 40 angry and frustrated messages from Verizon customers, on NextDoor, a neighborhood listserve.
    Today I completed a long Verizon Wireless “trouble ticket”, number NRB000007366782. I was told that there have been many, many complaints from this neighborhood for both data and cell coverage, or more to the point, lack of coverage. Your records indicate that this neighborhood is considered within Verizon as a “1X marginalization area”. And yet ,  currently there is no plan at Verizon to remedy this situation.
    I strongly encourage you to begin an immediate search for access to one of the many existing towers on the ridge above my house to place a Verizon cell station.
    In the event that you choose to continue to ignore this neighborhood and it’s abysmal coverage, I will organize a mass defection of Verizon Wireless residents to switch to ATT. I encourage you to begin this process now, let me and the neighborhood know of your plans, and have it completed in six months. If we have  not heard from you within 1 month (November 21, 2014), we will switch to ATT en masse beginning in December.

    That is not going to happen due to a myriad of reasons.
    1- Verizon listed the area correctly. So its not deceiving the customers. So based on that I would have left for a better provider.
    2- Verizon cannot just pop out and place service on any tower or property. They must gain permission to place signal towers in locations. They must secure the approval of villages, towns, cities or counties to even think of putting service towers up. This can take years.
    Then if the approval is opposed and no other sites can be obtained your service stays as it is. This is not a carrier fault. Go after the town boards and elected officials that will not allow their placement.
    And blame the majority of people who also oppose these towers etc. Based on scares of cancer, birth defects, and even people having seizures. Yep read up on it.
    Your speaking for your neighbors is admirable but futile. You cannot get what you want in 6x6 months.
    http://www.at.com
    Good luck to you all

  • Multiple Use BADI help

    Hi
    do you think it is appropriate to give as example calculation of shape (square, rectangle, triangle)
    as an example to BADI Multiple use?
    can you give me a tips on how i can start

    Hi,
    Pls go through the following links
    BADI's
    BADI's
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    http://www.esnips.com/web/BAdI
    http://www.allsaplinks.com/badi.html
    New to Badi
    Thanks,
    Reward If Helpful.

  • Multiple BADI implementaations

    Hello,
    If there are multiple implementations of the BADI (multiple use allowed) how do you know the order in which implementations will be executed? Is there a table I can check to see the order?
    Thanks,
    -Leon

    Hi Leon,
    The order is arbitrary but all of the implementations will be called.. there is no way to figure out the sequence.. here is what SAP has to say..
    "Multiple use for BADI definitions means that there can be several active BADI implementations. When there is a call, they are all called up - however, in an unpredictable sequence. If you have multiple-use BADI definitions, the sequence must not play any role therefore. "
    Regards,
    Suresh Datti

  • BADI BIC_FOLLOW_UP_ACTION

    Hi all,
    I'm kind of new to Badi Implementations, but am instructed by not 549416 to use one.
    The note specifies a follow-up action can be written for the 'Batch information Cockpit' (Tcode BMBC).
    I proceeded as follows:
    SE18: Copied Definition BIC_FOLLOW_UP_ACTION to ZIC_FOLLOW_UP_ACTION.
    SE18: Copied Interface IF_EX_BIC_FOLLOW_UP_ACTION to ZIC_FOLLOW_UP_ACTION_IF
    SE19: Created Implementation name ZIC_FOLLOW_UP_ACTION referring to Definition ZIC_FOLLOW_UP_ACTION.
    SE19: Named Implementation Class ZIC_FOLLOW_UP_ACTION_CLASS
    SE19: Edited Method PASS_BATCHES_FOR_ACTION (put a Break-point in this method)
    I checked BMBC: nothing has changed.  Anybody now how to proceed?
    Thanks in advance

    Hi Shiva,
    In SE19--> give BIC_BATCH_STATUS implementation and there itself make it deactivate by clicking on tollbar.
    then give the Z* (Custom imple) and say activate.
    Mean time it will ask transport request. So u have to assign it to the same request.
    U cant activate both as this BADI will not suitable for multiple impl active at single time.
    (see in Attributes of BADI -- Multiple use not checked )
    Thanks
    Eswar

  • New BADI concept in ECC 6.0

    I am trying to gain an understanding of how I would implement one of the new BADIs in ECC 6.0 (badis implmented through and enhancement spot , get badi, call badi concept).
    I am  not looking for information on how to implement a classic badi through se18/se19.
    I have also ready through the SAP help on the new badis and it is still not clear to me. So, please do not provide links to the standard SAP help. I have that.
    I am wondering if anybody has a whitepaper, example, etc.  that explains the details of how to implement, use, trigger the  new badis linked to an enhancement spot.

    Hi  J.J,
    enhancement spot
    A repository object for the administration of explicitly created enhancement options. Enhancement spots are components of a tree structure hierarchy, of which the branches represent composite enhancement spots and the leaves are simple enhancement spots. Implicitly available enhancement options do not have any enhancement spots.
    composite enhancement spot
    Semantic combination of simple and other composite enhancement spots with the aim of providing structure.
    simple enhancement spot
    Reference to a set of enhancement spot element definitions. A simple enhancement spot can occur independently or as a component of a composite enhancement spot.
    ENHANCEMENT-POINT
    Defines a position in an ABAP program as an enhancement option,
    at which one or more source code plug-ins can be inserted.
    the syntax will be like
    ENHANCEMENT-POINT enh_id SPOTS spot1 spot2 ...
    STATIC
    INCLUDE BOUND.
    Enhancement Options
    Definition
    Enhancement options are positions in Repository objects where enhancements can be made. These options are either explicitly defined (by the developer) or exist implicitly. Explicit enhancement options are generally defined in a central initial system. Enhancements are made in follow-on systems.
    Use
    Explicit enhancement options can currently be defined by:
    1. Explicitly flagging source code points or sections in ABAP programs. For an enhancement, these can be enhanced or replaced by source code plug-ins.
    2. Including Business Add-Ins (BAdIs) in ABAP programs. These programs are then enhanced by object plug-ins with predefined interfaces.
    Explicit enhancement options are managed by enhancement spots and enhanced by enhancement implementations.
    Currently, implicit enhancement options are:
    1. Specific options in ABAP programs – such as the end of the program – which can be enhanced by source code plug-ins.
    2. Parameter interfaces of function modules, which can be enhanced with parameters.
    3. Attributes and parameter interfaces of global classes, which can be enhanced with attributes or parameters.
    Implicit enhancement options always exist and do not require enhancement spots. They are also enhanced by enhancement implementations.
    BAdIs Embedded in the Enhancement Concept
    Use
    The definition of BAdIs is managed by enhancement spots. A simple enhancement spot for BAdIs can contain several BAdI definitions as enhancement spot element definitions. BAdIs that would otherwise be spread out in the system can be grouped together semantically.
    This structuring is mirrored on the implementation side through the enhancement implementations. A BAdI can be implemented by several BAdI implementations that are managed by enhancement implementations. A simple enhancement implementation for object plug-ins can contain several BAdI implementations of an enhancement spot as enhancement implementation elements and can implement a BAdI multiple times. Therefore, several enhancement implementations can be assigned to one enhancement spot.
    A BAdI is always assigned to the same package, like the enhancement spot, to which it belongs.
    Example
    The structuring features of BAdIs in enhancement spots can be of a technical or a subject nature.
    If, in the definition of several BAdIs, you have the provision that they are to be used in the same context (this is a feature known only by the person who defines the BAdIs), they must be used by the same simple enhancement spot.
    From a subject point of view, all BAdIs must then be grouped together by affiliation to functional units – for example, payroll – in combined enhancement spots.
    Thanks and regards
    suma sailaja pvn

  • Filter BADI

    Hi all,
    I am some doubts regarding Filter BADIs, if anyone please clear off the doubts then it will good for me.
    - Suppose any standard BADI definition is not having 'Filter Dependent' option, then can we make it Filter dependent ?
    - Does a custom BADI definition has to be created for it to change the standard BADI definition or is there any other way to make a standard BADI filter dependent ?
    - If suppose for a standard tcode there is standard BADI with filters then how does the filter value is passed from the standard program ?
    - Can filter value can be any field (like material number or tax code) as per the requirement or it has to be some specific set of values like country, language etc ?

    Hi Amit,
    > - Suppose any standard BADI definition is not having 'Filter Dependent' option, then can we make it Filter dependent ?
    No. That will be a modification.
    > - Does a custom BADI definition has to be created for it to change the standard BADI definition or is there any other way to make a standard BADI filter dependent ?
    If you create custom BADI defination by copying standard, it will not be triggered as standard BADI. No other way to add filter dependant option to standard BADI. You can use IF- condition in side the BADI Method implemetation, so that the code will be executed only for some values.
    > - If suppose for a standard tcode there is standard BADI with filters then how does the filter value is passed from the standard program ?
    When the system calls the filter dependant BADI implementation it passes the filter value.Check on example by debugging the tcode.
    > - Can filter value can be any field (like material number or tax code) as per the requirement or it has to be some specific set of values like country, language etc ?
    If your creating custom BADI defination, it can be any field. But It must be a data element, of the character type, with a maximum length of 30, which has a search help, a domain with fixed values, or a domain with a value table.
    Reddy

  • Need multiple Acct Assign PR with GR- valuated....

    Hi Friends...
    The customer`s requirment is:
    We want to have multiple WBS element
    allocation for single Line Item in Purchase requisition and PO also. In our case we
    create the PR through an interface automatically.
    Pls help us how to meet this requirement . Note that we want the material to be GR-valuated .
    How do we create a PR/PO in such a case, pls suggest a solution.
    Rgds,
    Ganesh S.

    Hi
    If you are on ECC 6.0 then
    Valuated goods receipt for document items with multiple account assignment
    The update of values in financial accounting (FI) at the time of goods receipt, also in case of multiple account assignment, corresponds to the legal requirements in many countries, and the accounting principles of IAS/U.S. GAAP. This business function allows you to enter a valuated goods receipt for items with multiple account assignment, with item categorystandard item and Service. The system distributes the value of the goods receipt item to the individual account assignments, and posts the value for each account assignment item to the GR/IR clearing account.
    You can define whether the Quantity and Amount fields can be changed at account assignment level when you enter an incoming invoice in Customizing for Inventory Management and Physical Inventory under Incoming Invoice  Set Changeability of Quantity and Amount for Multiple Account Assignment .
    When processing the goods receipt, you can use BAdI Multiple Account Assignment u2013 Redistribution in Goods Receipt(MB_ACCOUNTING_DISTRIBUTE) to redefine the distribution among the individual account assignments.
    Also read OSS note 204252 why it was not done earlier
    Regards
    Antony
    Edited by: Antony James Vijay on Mar 29, 2010 5:26 PM

  • Error in calling BADI

    Hi All,
    I have created a BADI and implemeted it and when i tried to call it in the program it going to short dump.
    I debugged the program and found out that in  'cl_exithandler=>get_class_name_by_interface' an exception 4  'data_incons_in_exit_managem' raised, please provide methe  input on what i have to do.
    Thanks,
    Krish.

    Hi,
    If you are trying to call a New BADI (implemented with Enhancement Spot) , then you got to use GET BADI and CALL BADI.
    If you are trying to call a Classic BADI, use cl_exithandler=>get_instance
    If you have done the calling right, then check if you are passing all correct parameters and using the correct object. For a classic BADI, the object will be a reference to the Interface name. In the New BADI, the object will refer to the BADI definition.

  • Classic BAdi and New BAdi ...

    Hi all,
    I have a question regarding the new BAdi concept using enhancement spots.
    With the classic BAdi's once we create an implementation it will call up our implementation when the BADI class is been called.
    But with the new concept we have to explicitly call the BAdi we created right ? doesn't this mean modifiying the standard code ( If there's no ehancement section or point )?
    Can someone tell me whether there is another way to call our implementation by using GET BADI and CALL BADI statement without modifying standard code ( by creating an explicit enhancement).
    Cheers,
    D.

    hi,
    Classic and new BAdIs differ in a number of features that are important for migration:
    1. BAdI object
    a. With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a reference variable of the type of the BAdI interface.
    b. With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle for the calls of BAdI methods, and referenced via a reference variable of the type of the BAdI. A BAdI object is an instance of an internal BAdI class, which otherwise is invisible to the outside.
    2. Passing comparison values for the filter
    a. With the classical BAdIs, the filter values are stored in a structure and passed with the call of the BAdI methods.
    b. With the new BAdIs, the comparison values for the filters used to search for implementations are passed when the BAdI object is created with the GET BADIstatement.
    There is no way of migrating the call of the factory method one-to-one into the ABAP statement, because GET BADI can also return an existing BAdI object, which is not possible with the factory method.
    3. Calling BAdI methods
    Passing comparison values for the filter
    a. A classic BAdI can be called only once and the call positions are registered centrally.
    b. With new BAdIs, multiple calls are possible and the call positions are not registered centrally.
    For the above reasons, an automatic call migration is not possible.
    Have a look at below link.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ee/6f3b42ea85b26be10000000a155106/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/4d3e42fc94aa04e10000000a1550b0/content.htm
    I hope it helps.
    Best Regards,
    Reshma

  • Whats is the diff. btw classic badi and new badi

    Hi guy,
    I just found out that there is classic and new badi implementation in SE19, I would like to check out with u guys on what is the diff btw the two?
    thanks.

    <b>Differences Between Classic and New BAdIs</b>
    Classic and new BAdIs differ in a number of features that are important for migration:
    1. BAdI object
    a.      With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a reference variable of the type of the BAdI interface.
    b.      With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle for the calls of BAdI methods, and referenced via a reference variable of the type of the BAdI. A BAdI object is an instance of an internal BAdI class, which otherwise is invisible to the outside.
    2. Passing comparison values for the filter
    a.      With the classical BAdIs, the filter values are stored in a structure and passed with the call of the BAdI methods.
    b.      With the new BAdIs, the comparison values for the filters used to search for implementations are passed when the BAdI object is created with the GET BADIstatement.
    There is no way of migrating the call of the factory method one-to-one into the ABAP statement, because GET BADI can also return an existing BAdI object, which is not possible with the factory method.
    3. Calling BAdI methods
    Passing comparison values for the filter
    a.      A classic BAdI can be called only once and the call positions are registered centrally.
    b.      With new BAdIs, multiple calls are possible and the call positions are not registered centrally.
    For the above reasons, an automatic call migration is not possible.
    Have a look at below link.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ee/6f3b42ea85b26be10000000a155106/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/4d3e42fc94aa04e10000000a1550b0/content.htm
    I hope it helps.
    Best Regards,
    Vibha
    *Please mark all the helpful answers

  • Re:Question related to the Packet timeout error

    2010-03-08 09:11:05.273 Tangosol Coherence CE 3.2.2/371 <Warning> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 15369 ms, 93 packets have timed-out, PauseRate=0.0040, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=12, Threshold=512
    2010-03-08 09:19:22.772 Tangosol Coherence CE 3.2.2/371 <Warning> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 16448 ms, 111 packets have timed-out, PauseRate=0.0042, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=10, Threshold=512
    2010-03-08 09:30:52.651 Tangosol Coherence CE 3.2.2/371 <D5> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 28 ms, 20 packets have timed-out, PauseRate=0.0042, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=1, Threshold=512
    2010-03-08 09:37:50.583 Tangosol Coherence CE 3.2.2/371 <Warning> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 10590 ms, 60 packets have timed-out, PauseRate=0.0043, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=5, Threshold=512
    2010-03-08 09:50:00.635 Tangosol Coherence CE 3.2.2/371 <D5> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 132 ms, 20 packets have timed-out, PauseRate=0.0043, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=1, Threshold=512
    2010-03-08 09:50:19.086 Tangosol Coherence CE 3.2.2/371 <Warning> (thread=PacketPublisher, member=2): Member(Id=3, Timestamp=2010-03-07 12:23:13.958, Address=xxxx, MachineId=5238) was unresponsive for 8954 ms, 73 packets have timed-out, PauseRate=0.0044, Paused=false, Deferring=true, OutstandingPackets=0, DeferredPackets=10, Threshold=512
    1. Will the packet retry if they get this timeout error?
    2. why is the logs timestamp and the packet timestamp is having very large gap nearly 1 day in some cases
    3.How long does the packet wait before it timesout ,i see the unresponsive time varies from 80ms to 10000 ms
    4.When do we get this warnings? is there any remedy?

    Wow Coherence 3.2, I haven't seen that in years, it is a pre-Oracle version. I'd suggest considering an upgrade to 3.5, which should be doable without even recompiling your code, just restart the cluster with new jars.
    But that isn't what you asked. This message was reworded in Coherence 3.3 and later to refer to these events not as packet timeouts, but as rescheduled packets do indicate that they are automatically retried.
    Regarding the timestamp that is the timestamp of the cluster member to which the packet was sent. A members timestamp is the time at which it joined the cluster.
    The default packet retry interval is 200ms, I.e. If we don't get an ACK to a packet in that time we will retransmit it. After 1m of this we will give up and remove either the sender or receiver from the cluster. The time intervals in the log messages are with respect to when the first ACK was expected, so a reported delay of 80ms means it took 280ms to delived a packet.
    These messages highlight periods of failed communication, and usually are the result of garbage collections. Some of yours are quite bad (multiple second), indicating that you've likely overcommited your java heap. The effect of the outages should be poor overall cluster performance and if bad enogh should also cause heavily GCing nodes to be kicked out of the cluster.
    Mark
    Oracle (Tangosol) Coherence

Maybe you are looking for

  • Can't view photos in Develop mode.  Just a blank template (as is the preview template)

    Hello community,     I don't know what happened and I certainly can't figure out what to do about this problem.  When I open LR 4, I can see all my folders in the Library.  When I switch to 'Develop', I still have the strip below and when the mouse h

  • Unable to open login page through internet explorer

    Hi, Configured Reverse proxy external tier. We are able to access login page through Mozilla but unable to access through IE8. Raised SR, but they have reverted saying it's browser problem & not in their scope. Please help for the following error mes

  • Laserjet M1536 printer problem

    We have installed the HP LaserjetM1536 as network printer in our organisation. Now the problem is While giving bunch of print, the print is not clear in some pages. Even we tried changing the cartridge but still the problem persists. Please suggest A

  • MS Office product key

    Where do I find the product key for MS Office?  I bought the HP Envy laptop with Office installed, however, I lost the product key.  Is there anyway to search the PC itself to obtain product key?

  • Reversing selected text or paragraph

    hi all, i have a document that contains the lines reversed (for example, Hello All is written llA olleH), so how can i reverse a selected line and reverse the text inside the line (assuming i select each line before i run the script), and also how ca