Adding a pushbutton within a BADI

Hi,
In the previous releases, I was able to create a special BAdI with a function code attach to this BAdI.
In the PFSTATUS of my screen I was using the same function code (starting with with "+").
The button was only displayed in the toolbar when the BAdI was implemented.
Now with the new version, I create the enhancement spot and the BadI but I cannot find the tab "FCODE" anymore... is there a new way to perform such thing ?
Thanks !
Message was edited by:
        Dany Charbonneau

the strange thing is that in the documentation, it is stated that this feature is still available and is now called "Function code Enhancement"
Function Code and Screen Enhancements
Use
The main use of BAdIs is to enhance ABAP programs using object plug-ins. For reasons of compatibility, and to be able to use the classic means for designing a user interface for an ABAP-based SAP system (GUI status and screens,) menu enhancements and screen enhancements were adopted almost unchanged from the classic BAdIs into the BAdIs of the new enhancement concept. These enhancements represent a concept that is independent of enhancements through object plug-ins and they are not supported using special ABAP statements.
Features
Function Code Enhancements
Menu enhancements have been adopted under the new name “Function Code Enhancements“, whereby the classic concept has been kept in its entirety. The use of the ABAP statements GET BADI und CALL BADI is not necessary. The runtime environment inserts the implementation of a function code enhancement automatically during program regeneration.
Screen Enhancements
In the case of screen enhancements, the class concept has been adopted – with the following exceptions:
·        The previous call to the method CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR, has been replaced by the call CL_ENH_BADI_RUNTIME_FUNCTIONS=>GET_PROG_AND_DYNP_FOR_SUBSCR with the same interface.
·        The methods PUT_DATA_TO_SCREEN and GET_DATA_FROM_SCREEN will no longer be generated. You can create your own BAdI methods for data transport and call them using CALL BADI.
·        You no longer need to call the CL_EXITHANDLER=>SET_INSTANCE_FOR_SUBSCREENS and CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS methods. These methods are now unnecessary as they only place the BAdI reference in a temporary storage.
SET_INSTANCE_FOR_SUBSCREENS is no longer necessary.
GET_INSTANCE_FOR_SUBSCREENS can, if necessary, be replaced by GET BADI.

Similar Messages

  • Remote Function Call (RFC) within a BAdI in ECC to CRM

    I've a remote enabled FM in a CRM system which I want to call within a BAdI implementation of a ECC system. As a result, the CRM system is the RFC server and the ECC system is the RFC client.
    The FM in CRM simply gets the relevant rows of a Z table which, of course, only exists in CRM and passes these rows to the calling program as per parameter supplied by the calling program.
    Now the BAdI in ECC is for changing 'Contracts' data in SAP (transactional data) before posting the contracts in the ECC database. The business uses a transaction where a large number of contracts are processed and documents posted in the system - and when this happens the system runs through (calls) the BAdI one contract at a time.
    If I call the RFC enabled FM anywhere within this BAdI, it gets the data for one contract only so it reduces a great deal of performance in regards to memory consumption, network load etc. So I want to avoid this and call the RFC FM once instead, if possible.
    Is it possible to call this RFC FM once only (to load the CRM Z table data for all contracts) and store it in a global table/area within the instantiated BAdI class (visibility public) so that when the BAdI is called the second time onwards it can read the global table/area by READ TABLE WITH KEY statement and avoid the RFC call for each BAdI call?
    I was also thinking about may be using ABAP Shared Memory if this is a possibility in order to avoid the repeated RFC call? But this table on the RFC server changes frequently....so it might not be a good idea? or....??
    I would greatly appreciate your inputs and thoughts regarding this; it would be great to hear if someone had had a similar experience.
    Cheers,
    Sougata.

    As the Z table is only updated via a particular program in CRM - we developed and called a RFC enabled FM in that report when its updating the Z table to update the Z table in ECC to keep it in sync.
    Short term benefit but might be long term pain if the Z table in CRM is updated by another program/process/application in the future! Not to mention any table field changes in CRM has to be also made in ECC everytime which is again a pain.
    This is a workaround and definitely not a full-proof solution - but I guess these days one has to shut up and deliver whatever the customer wants!

  • Adding output field to a badi

    Dear all,
    We have an implementation of a classic badi in our system. According to an OSS note we added an output parameter to a method of the badi. Even though we fill the new output parameter correctly in the implementation of the method, the values are not carried back to the calling program. We tried re-activating the badi  implementation, without succes.
    Do we need to delete the badi implementation and create a new one in order to have the new output parameters active?
    Thanks,
    Bertus

    Hi,
    Yes you can delete the Implementation Badis.
    Go to SE19 then place your badi Implementation name  then press delete.
    After delete it will ask for to keep the interface with pop up yes or No.
    Then choose No.Then the whole implemented badi will be deleted.
    Thank you,
    Thanks,
    AMS

  • Invoking a BDC from within a BADI method executing in an update task

    To finish up the MIGO/QM interface we started sometime ago, we need to
    invoke a BDC of transaction QA02 within the method
    method IF_EX_INSPECTIONLOT_UPDATE~CREATE_IN_UPDATE.
    of the BADI:
    INSPECTION_LOT_UPDATE.
    Should the BDC be tucked inside:
    a) an function module that is called from the method ?
    b) a program that is submitted from the method;
    c) other?
    Thanks for authoritative advice.
    djh

    Hi,
    I would do in function module.
    Check also FM ABAP4_CALL_TRANSACTION.
    Regards,
    Ferry Lianto

  • Problem with BAPI_PO_CHANGE when called within ME_PURCHDOC_POSTED BADI Implementation

    Hi All,
    We have a situation where PR to PO conversion needs to happen through a custom program which submits ME59N in batches. During this conversion, it's a business requirement to update the PO's GS Partner function based on the manufacturer in the first item's inforecord.
    In order to do this, we have implemented the badi "ME_PURCHDOC_POSTED". The only method within this is "POSTED"
    In order to update the PO, I use "BAPI_PO_CHANGE" inside this badi with IN BACKGROUND TASK addition. The reason behind this is that this BADI is called before the commit that creates the PO happens. And by calling the BAPI_PO_CHANGE in a background task, I ensure that it's run after the commit has happened.
    This approach works extremely well, but fails in certain scenarios when executed for large PR to PO conversion where certain PRs exceed 300 line items.
    Since the background task call cannot be debugged, I used the enjoy bapi_po_change exit EXIT_SAPL2012_004 to dump the return table to a custom table or the application log, to check what has happened.
    In the instances that this has failed, the return table's content was -> function "change purchase order" performed in test
    I assure you I have NOT used the test flag. I even applied a couple of SAP notes that mention this issue, but still had no success. I am waiting for a proper response from OSS at the moment but this is a real headscratcher.
    Also importantly at this point, the PO was successfully created.So the partner function change should happen without issues  :'(
    Have any of you come across this issue before ? What steps have you taken to overcome this issue ?
    Regards,
    Tharindu

    Hi All,
    We have a situation where PR to PO conversion needs to happen through a custom program which submits ME59N in batches. During this conversion, it's a business requirement to update the PO's GS Partner function based on the manufacturer in the first item's inforecord.
    In order to do this, we have implemented the badi "ME_PURCHDOC_POSTED". The only method within this is "POSTED"
    In order to update the PO, I use "BAPI_PO_CHANGE" inside this badi with IN BACKGROUND TASK addition. The reason behind this is that this BADI is called before the commit that creates the PO happens. And by calling the BAPI_PO_CHANGE in a background task, I ensure that it's run after the commit has happened.
    This approach works extremely well, but fails in certain scenarios when executed for large PR to PO conversion where certain PRs exceed 300 line items.
    Since the background task call cannot be debugged, I used the enjoy bapi_po_change exit EXIT_SAPL2012_004 to dump the return table to a custom table or the application log, to check what has happened.
    In the instances that this has failed, the return table's content was -> function "change purchase order" performed in test
    I assure you I have NOT used the test flag. I even applied a couple of SAP notes that mention this issue, but still had no success. I am waiting for a proper response from OSS at the moment but this is a real headscratcher.
    Also importantly at this point, the PO was successfully created.So the partner function change should happen without issues  :'(
    Have any of you come across this issue before ? What steps have you taken to overcome this issue ?
    Regards,
    Tharindu

  • Adding extra pushbutton on IL02 transaction

    I need to add an extra pushbutton on the IL02 transaction.PLease help me in details.If someone has did that, please give me the complete details of exits/BADIs alongwith code.

    Transaction Code - IL02                     Change Functional Location
    Exit Name           Description
    ILOM0001            Additional checks before saving a functional location
    ILOM0002            User exit when checking structure of location numbers
    No of Exits:          2
    USER EXIT
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    http://www.sap-img.com/ab038.htm
    http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci982756,00.html
    BAPI-step by step procedure
    http://www.sapgenie.com/abap/bapi/example.htm
    list of all BAPI's
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    Rewards if useful.........
    Minal

  • Drop down list of  values for a field in ALV rpt within a BADI

    Hi,
    I need help on this issue.
    TCODE LI21 is used to clear the differences in IM.  The business now wants to prompt for a reason code before they can post a new material document for this clearing.  I have create an implementation in BADI LE_WM_INV_WM_IM, which display the field for user to enter the reason code.   However, I am trying to get a dropdown list which contain the possible values for reason code so the user can choose from this list.  There are sample codes to do this but I can't apply to the codes in the implementation because call screen is not allowed.  Has anyone done this before or can advise me of the solution?
    Thanks.

    Hi,
    Use the Field Catalogue Properties
    Ref_fieldname
    Ref_Tablename
    and assign the corresponding field & Table/Strucutre Name to the above fields....

  • Adding A Pushbutton To GUI Status of Standard Program

    Hi,
    I need to add a pushbutton to the GUI status of one of the SAP standard programs, the system being <b>ECC 6.0</b>. One method which I tried was by copying the standard program as a Z program and then modifying the GUI status per my requirement. Although this works, one drawback in doing it this way was with the introduction of the new Enhancement Framework in ECC 6.0, the defined enhancements from the standard program were not copied to the Z program.
    I am looking for suggestions on how to add a pushbutton in the GUI status of the standard program using the enhancement concept. Please let me know the implications if any, while carrying out this change.
    Regards,
    Ravi Krishna

    GOTO Se41 Transaction ..
    one example :
    Standard Program : SAPLSLVC_FULLSCREEN
    Status : STANDARD_FULLSCREEN
    use ur program first and status and now click on copy status ...
    copy from standard to custom..

  • Adding a link within an interaction

    Hello there. I'm using version 7 and am working with interactions. Is it possible to add a hyperlink from within the interaction? For example, if a button, when clicked, shows content. Can that content contain a hyperlink?

    If you are talking about the included interactions, I don't think that will be possible.

  • What is the Location of content added to conferences within the Lync servers C Drive?

    Hi
    When a user adds , say a powerpoint presentation to a meeting and then leaves the meeting with the content still in the meeting, can a lync admin retrieve the attachment from within explorer on the lyncserver?  IF so, where can I find it?
    Thanks
    NEOband

    Hi,Neoband,
    Yes,meeting content is stored in the Lync file share folder,you can retrieve them under "1-webservices-1" on Lync file share server.
    If you would like to delete the meeting content periodically to release the disk space,you can run cmdlet
    Set-CsConferencingConfiguration with parameter ContentGracePeriod to set how long conference content will remain on the server following the end of the conference. Details you can check
    http://technet.microsoft.com/en-us/library/gg412969.aspx 
    B/R
    Sharon
    Sharon Shen
    TechNet Community Support
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question.

  • HR IT45 adding a pushbutton problem!

    I have just tried to add a pushbutton (fcode PRIM) to IT45 Toolbar. I activated the button and everything works.
    But... when I look on Quality system (after transport, of course) the button is disabled.
    I tried several times to activate, include in tranposrt... but result is the same....
    Do you have idea what can be a problem?

    Hi,
    Do the version comparision betwen quality and develpment and then if there is a difference found, you can track whether the request from devleopment is transported or not.

  • Adding a Pushbutton on ALV toolbar

    Hi ,
    I wanna add a pushbutton to my ALV report toolbar, I have tried by screen painter(se51) but its not working. That is when you open the screen painter its showing the  push button, but when you run the screen as transaction its not showing that button. 
    Any help is greatly appreciated.
    Regards
    Moderator Message: Please search before posting your question. Thread locked.
    Edited by: Suhas Saha on Oct 18, 2011 3:40 PM

    Hi Harsh,
    To add button in the ALV toolbar, follow the below steps :
    1. Open Functional group SALV in se80 and copy the GUI status 'STANDARD' in customer namespace ( for e.g. ZSTANDARD'  to your ALV report program.
    2. Once you copy the GUI status, open your ALV report program in se80 and modify it's GUI status 'ZSTANDARD' according to your requirement.
    3. Code accordingly in your ALV report program.
    Here is the below code for your reference.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = g_repid
          i_callback_pf_status_set = alv_status_set
          i_callback_user_command  = *alv_user_comm*
          i_grid_title             = grid_title
          i_save                   = g_save
          is_variant               = gs_variant
          is_layout                = alv_layout
          it_fieldcat              = alv_fieldcat[]
          it_events                = gt_events[]
          it_sort                  = alv_sort[]
        IMPORTING
          e_exit_caused_by_caller  = g_exit_caused_by_caller
          es_exit_caused_by_user   = gs_exit_caused_by_user
        TABLES
          t_outtab                 = it_final[].
      PERFORM *alv_user_comm* USING r_ucomm
                                  rs_selfield.
    FORM *alv_user_comm*  USING    r_ucomm     LIKE sy-ucomm
                                 rs_selfield TYPE slis_selfield.
    r_ucomm = sy-ucomm.
      CASE r_ucomm.
      ENDCASE.
    ENDFORM.
    Let us know if you still having some issues.
    Cheers
    VJ

  • Adding to playlists within MediaSou

    Is there some easy way to add a cut or two to a previously created playlist within Mediasource? I am not sure what I am doing wrong, but for some reason I literally seem to double the number of tracks within the playlist. Thanks.

    A track or two, perhaps?
    It should be a simple case of having the tracks in one window, and the playlist in the other, then transfer. It sounds like you might be selecting all the tracks in the playlist somehow, and transferring again.

  • Adding subform instances within subform instances

    In this form (attached), the user chooses a type of page to add by clicking the buttons pagebtn, discussion, assessment, or dropbox. When they click this button, an instance of SBtemplate.Pages is created, but only the subform they requested (page, discussion, dropbox, assessment) appears. So, while the user only sees the page type they requested, they are actually seeing a subform within another subform.
    The problem I am having now is that I can't create instances of subforms within these. For example, in the page subform, I need users to be able to create instances of the image, audio, and video subforms. And in the discussion subform, I need the user to be able to create an instance of the customrubric subform. I think this is not working because I need to specify the instance of SBtemplate.Pages in the code calling the instance manager.
    Is this a correct assessment? If so, how do I do that? If not, what can I do to accomplish this action?
    Thank you!

    I figured this out, so I wanted to post my form in case anyone is having the same problem.
    This is an example of a click event within one of my subforms to create an instance of another subform:
    xfa.resolveNode("xfa.form.SBtemplate.Pages[" + (this.parent.parent.parent.index) + "]").page._image.addInstance(this.parent.index);

  • Javascript gives an error while added externally or within the script tag

    I have included a Javascript that will return the id of the current element that I am accessing , i am using this script along with the jsf tags.
    The code looks like this :
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
    <html>
    <head>
    <script language="Javascript">
    function focus_id()
    alert(this.id);
    </script>
    </head>
    <f:subview id="task-tree">
    <t:div style="width:170px; height:500px; overflow:auto;">
    <t:tree2
       ... >
       <f:facet name="root-facet">
          <h:panelGroup>
             <t:graphicImage alt="#{msgs.openFolderAlt}" value="/images/dtree/folderopen.gif" rendered="#{t.nodeExpanded}" border="0"/>
             <t:graphicImage alt="#{msgs.folderAlt}"value="/images/dtree/folder.gif" rendered="#{!t.nodeExpanded}" border="0"/>
             <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
          </h:panelGroup>
       </f:facet>
       <f:facet name="node-facet">
          <h:panelGroup>
             <t:graphicImage alt="#{msgs.openFolderAlt}" value="/images/dtree/folderopen.gif" rendered="#{t.nodeExpanded}" border="0"/>
             <t:graphicImage alt="#{msgs.folderAlt}" value="/images/dtree/folder.gif" rendered="#{!t.nodeExpanded}" border="0"/>
             <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
          </h:panelGroup>
       </f:facet>
       <f:facet name="node-with-action-facet">
          <h:panelGroup>
             <t:graphicImage alt="#{msgs.openFolderAlt}" value="/images/dtree/folderopen.gif" rendered="#{t.nodeExpanded}" border="0"/>
             <t:graphicImage alt="#{msgs.folderAlt}" value="/images/dtree/folder.gif" rendered="#{!t.nodeExpanded}" border="0"/>
             <h:commandLink
                immediate="true"
                actionListener="#{t.setNodeSelected}"
                action="#{node.doAction}"
                styleClass="#{t.nodeSelected ? 'rowHighlighted' : 'document'}"
                onclick="focus_id();" >
                <h:outputText value="#{node.label}"/>
             </h:commandLink>
          </h:panelGroup>
       </f:facet>
       <f:facet name="leaf-facet">
          <h:panelGroup>
             <h:commandLink
                immediate="true"
                actionListener="#{t.setNodeSelected}"
                action="#{node.doAction}"
                styleClass="#{t.nodeSelected ? 'rowHighlighted' : 'document'}"
                onclick="focus_id();" >
                <h:outputText value="#{node.label}"/>
             </h:commandLink>
          </h:panelGroup>
       </f:facet>
    </t:tree2>
    </t:div>
    </f:subview>
    </html>This code works fine and returns the element id if included inline but not
    otherwise .... Any clues that you can give me as to why this happens will be great ...

    Problem was solved.
    It was some of illegial symbols at the beginning of xml.

Maybe you are looking for

  • Mac OS 10.4.6 Update and Palm Hand Held Issues

    Recently I installed the Mac OS 10.4.6 update after confirming that it should improve some minor issues with "Hot Synching". Previously I could "Hot Synch" with my Palm Mac Desk Top software 4.2.1 and also with my PC with no issues. I noticed now I c

  • Error applying Patch 11724916 - 11.2.0.2.2 Patch Set Update.

    Hello, I have an 11.2.0.2.1 GI installation and 12311357 path applied correctly. But patch 11724916 is missing (I know they both are installed together). Trying to apply it I have the following error (as grid) : grid@selva-2./usr/local/software/oracl

  • Ideal powerline adapters with Infinity 2?

    As the title says, what would be a pretty good (and cheapish) set of powerline ethernet adapters to give best results with Infinity 2? The engineer set everything up this morning and I get near enough full 80/20. I use a set of 85Mbps TP-LINK adapter

  • Archive Material BOM issue

    Hi everyone I wanna archive all material BOM in a client server. The client server only contain the material and BOM data. I am using transaction code :CS28 and using object " CS_BOM " . The archive steps are: 1. actions->write 2. create a variant ca

  • Invoking notifyAll() on threads in a vector??

    Each time I create a thread it gets added to a vector v. In the run method of this thread I have a flag. If this flag for some reason is set to true then that current thread will be set to wait: run(){           if (flag_wait){               synchron