Testing usr exit

how to test a user exit?
i ahve done some changes in one of user-exit include, how to test it?

hi,
the best way to test ur exit and to know the point where it triggered set a break point in the code where u have inserted.
insert as
BREAK-POINT.
reward points if useful,
siri

Similar Messages

  • Testing User Exit ZXEDFU02

    Hi!
    I have made some modifications in User Exit ZXEDFU02, if to be more precise I have populated some more lines in segments of Idoc of Invoice List.
    And now I want to test it.
    The thing is that I do not know SAP SD, because I'm ABAP programmer and do not know how to check if my Invoice List changed after changing User Exit ZXEDFU02... any ideas?
    Help will be rewarded,
    Mindaugas

    Hi,
    Please go to transaction WE02/WE05 and search an IDoc number with the following criteria search and execute.
    Created on     --> 01.01.2007 to 11.06.2007
    Direction      --> 1 (Outbound)
    Current Status --> 03
    Basic Type     --> INVOIC02
    The system will show list of IDoc(s). Then you select one IDoc and go to transaction WE19 and enter existing IDoc with the above selected IDoc and click on execute button. Next enter '/h' in command field, press enter and click on standard outbound processing. System will take you to ABAP debug mode. Then go to menu: Breakpoints -> Breakpoint at -> Function Module -> EXIT_SAPLVEDF_002. Then click on Run button (F8) ... and system will stop at the above user exits. From here you can debug through your codes.
    Regards,
    Ferry Lianto

  • BAPIs,BADIs AND Usre exits

    Hi all,
    I wants to learn <b>BAPIs,BADIs and User exits</b> so please help me in finding the right material to learn these thing with practicle knowledge
    Thanks,
    Girish

    Hai Girish
    Check the following Documents
    what is BAPI?
    BAPI stands for Business API(Application Program Interface).
    I have answered this question before..
    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
    Please check out this thread..
    Re: bapi
    Also refer to the following links..
    www.sappoint.com/abap/bapiintro.pdf
    www.sap-img.com/bapi.htm
    www.sap-img.com/abap/bapi-conventions.htm
    www.planetsap.com/Bapi_main_page.htm
    www.sapgenie.com/abap/bapi/index.htm
    Checkout !!
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://techrepublic.com.com/5100-6329-1051160.html#
    http://www.sap-img.com/bapi.htm
    http://www.sap-img.com/abap/bapi-conventions.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    User Exits
    Screen exits are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.
    It is determined be SAP where the sub screen will be displayed.
    The syntax is: CALL CUSTOMER-SUBSCREEN
    The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project,
    and the project has been activated.
    Note:
    Function codes are only processed in the main screens flow logic
    You are not allowed to enter a name for the subscreens command field
    You are not allowed to define GUI stauses
    You are not allowed to enter a value for Next screen
    The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules.
    These function modules belongs to the same function group as the subscreen Subscreens are edited with transaction CMOD.
    When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next
    time you display the calling screen
    The developer must create the subscreen and the corresponding PBO and PAI modules
    How to identify screen exits
    Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.
    Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits
    MENU EXITS
    Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu
    entries in the GUI interface. The developer can add his/her own text and logic for the menu.
    Function codes for menu exits all start with "+"
    Example
    We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will
    run report ZTEST.
    Goto transaction SE43 Area Menu Maintenance
    In Area Menu Paramenter type 'S000' (S triple Zero)
    Select Change and ignore all the warning screens
    Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"
    Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01
    Goto transaction SE93 and create transaction +C01 that calls report ZTEST.
    Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.
    USER EXITS
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule.
    The code for the function module is writeen by the developer. You are not writing the code directly in the function module,
    but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is: EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION <3 digit suffix>
    Example:
    The program for transaction VA01 Create salesorder is SAPMV45A
    If you search for CALL CUSTOMER-FUNCTION i program SAPMV45A you will find ( Among other user exits):
    CALL CUSTOMER-FUNCTION '003'
    exporting
    xvbak = vbak
    xvbuk = vbuk
    xkomk = tkomk
    importing
    lvf_subrc = lvf_subrc
    tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
    The exit calls function module EXIT_SAPMV45A_003
    2. How to find user exits
    Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
    If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements.
    Enter the exit name and press enter.
    You will now come to a screen that shows the function module exits for the exit.
    3. Using Project management of SAP Enhancements
    We want to create a project to enahance trasnaction VA01
    Go to transaction CMOD
    Create a project called ZVA01
    Choose the Enhancement assign radio button and press the Change button
    In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only
    be used i 1 project. If the enhancement is allready in use, and error message will be displayed
    Press Save
    Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
    Now the function module is displayed. Double click on include ZXVVAU04 in the function module
    Insert the following code into the include: E_KUNNR = '2155'.
    Activate the include program. Go back to CMOD and activate the project.
    Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"
    Have look at this links
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    http://www.sapgenie.com/abap/ole.htm
    http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    BADI'S
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    Thanks & Regards
    Sreenivasulu P
    Message was edited by: Sreenivasulu Ponnadi

  • Usre exit or badi for su01 save?

    hi experts,
    i want to trigger idoc when a new user is created in su01.i didnot get any BADI for this, so tried with user exit SUSR0001(suggested in sdn).....but there is no internal table or structure which stores the entered data during creation of user.
    what else i can do?
    Edited by: charudevrani on Jan 16, 2012 7:03 AM

    SUSR0001 is a user exit that triggers after every user logon and has nothing to do with user creation/save.
    I checked by putting a break point in CL_EXITHANDLER and found that BADI ADDRESS_UPDATE is called during saving of SU01 newly created user.This is a general multiple use BADI that is called during any address saving and should be used carefully, so that your code triggers only for SU01 save. Also you may not get all data that you want and may probably need to use call stack technique.

  • Printer Paused - "/usr/lib/cups/backend/hp failed" [SOLVED]

    Nothing that I try to print with CUPS goes to the printer, it just sits in the job list saying "Pending".
    CUPS says the status of my printer is:
    Paused - "/usr/lib/cups/backend/hp failed"
    Restarting CUPS or DBus does nothing.
    I didn't notice any updates relating to CUPS so am not sure what exactly happened. I sync and update many times a day, so at least I know a timeframe. The last time I printed something was at:
    Sat 21 Nov 2009 03:05:18 PM PST
    Now nothing works. I really need to get this working, so any help would be greatly appreciated.
    EDIT2:
    Near as I can tell it is not indeed a package update problem, sorry. I suppose this is in the wrong forum now.
    Here is my /var/log/cups/error-log
    E [22/Nov/2009:00:02:01 -0800] Unable to open listen socket for address ::1:631 - Address family not supported by protocol.
    E [23/Nov/2009:14:53:53 -0800] Unable to remove temporary file "/var/spool/cups/tmp/.fontconfig" - Is a directory
    E [23/Nov/2009:14:53:54 -0800] Unable to open listen socket for address ::1:631 - Address family not supported by protocol.
    E [23/Nov/2009:14:53:54 -0800] Unable to set ACLs on root certificate "/var/run/cups/certs/0" - Operation not supported
    D [23/Nov/2009:15:05:20 -0800] [Job 28] The following messages were recorded from 15:05:09 to 15:05:20
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Started filter pdftops (PID 3429)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Started filter pstops (PID 3430)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Page = 612x792; 18,14 to 594,778
    D [23/Nov/2009:15:05:20 -0800] [Job 28] slow_collate=0, slow_duplex=0, slow_order=0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Before copy_comments - %!PS-Adobe-3.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %!PS-Adobe-3.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%Creator: TeX
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%LanguageLevel: 3
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%DocumentSuppliedResources: (atend)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%DocumentMedia: plain 596 842 0 () ()
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%BoundingBox: 0 0 596 842
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%Pages: 2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] %%EndComments
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Before copy_prolog - %%BeginDefaults
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Before copy_setup - %%BeginSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Before page loop - %%Page: 1 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Copying page 1...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] pagew = 576.0, pagel = 763.2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageLeft = 18.0, PageRight = 594.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageTop = 777.6, PageBottom = 14.4
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageWidth = 612.0, PageLength = 792.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Copying page 2...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] pagew = 576.0, pagel = 763.2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageLeft = 18.0, PageRight = 594.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageTop = 777.6, PageBottom = 14.4
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PageWidth = 612.0, PageLength = 792.0
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Wrote 2 pages...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PID 3429 (pdftops) exited with no errors.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PID 3430 (pstops) exited with no errors.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] foomatic-rip version $Revision=3.0.2.131$ running...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Parsing PPD file ...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option ColorSpace
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option Resolution
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option PageSize
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option Model
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option PrintoutMode
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option InputSlot
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option Duplex
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option Quality
    D [23/Nov/2009:15:05:20 -0800] [Job 28] *cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip-hplip"
    D [23/Nov/2009:15:05:20 -0800] [Job 28] *cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip-hplip"
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option PageRegion
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option ImageableArea
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option PaperDimension
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Added option Font
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Parameter Summary
    D [23/Nov/2009:15:05:20 -0800] [Job 28] -----------------
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Spooler: cups
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Printer: Primary
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Shell: /bin/sh
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PPD file: /etc/cups/ppd/Primary.ppd
    D [23/Nov/2009:15:05:20 -0800] [Job 28] ATTR file:
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Printer model: HP LaserJet 1320 hpijs, 3.9.10.72
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Job title: soñar_en_cubano.pdf
    D [23/Nov/2009:15:05:20 -0800] [Job 28] File(s) to be printed:
    D [23/Nov/2009:15:05:20 -0800] [Job 28] <STDIN>
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] GhostScript extra search path ('GS_LIB'): /usr/share/cups/fonts
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'finishings=3'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Unknown option finishings=3.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'media=na_letter_8.5x11in'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Unknown "media" component: "na_letter_8.5x11in".
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'number-up=1'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Unknown option number-up=1.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'sides=two-sided-long-edge'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'job-uuid=urn:uuid:c6d32594-cd36-3c4e-65bf-a70c81a0e285'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Unknown option job-uuid=urn:uuid:c6d32594-cd36-3c4e-65bf-a70c81a0e285.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Pondering option 'job-originating-host-name=localhost'
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Unknown option job-originating-host-name=localhost.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] ================================================
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] File: <STDIN>
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] ================================================
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Reading PostScript input ...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> This document is DSC-conforming!
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %RBINumCopies: 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Job claims to be DSC-conforming, but "%%BeginProlog" was missing before first line with another "%%Begin..." comment (is this a TeX/LaTeX/dvips-generated PostScript file?). Assuming start of "Prolog" here.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] -----------
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginProlog
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%EndProlog
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] -----------
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginFeature: *PageSize Letter
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: PageSize=Letter --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %% FoomaticRIPOptionSetting: PageSize=Letter
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: PageSize=Letter --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginFeature: *PrintoutMode Normal
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: PrintoutMode=Normal --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %% FoomaticRIPOptionSetting: PrintoutMode=Normal
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: PrintoutMode=Normal --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginFeature: *InputSlot Default
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: InputSlot=Default --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %% FoomaticRIPOptionSetting: InputSlot=Default
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: InputSlot=Default --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginFeature: *Quality FromPrintoutMode
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: Quality=FromPrintoutMode --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %% FoomaticRIPOptionSetting: Quality=@PrintoutMode
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: Quality=FromPrintoutMode --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginFeature: *Duplex DuplexNoTumble
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: Duplex=DuplexNoTumble --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %% FoomaticRIPOptionSetting: Duplex=DuplexNoTumble
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Option: Duplex=DuplexNoTumble --> Setting option
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%EndSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Inserting PostScript code for CUPS' page accounting
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] -----------
    D [23/Nov/2009:15:05:20 -0800] [Job 28] New page: 1 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginPageSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Inserting option code into "PageSetup" section.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%EndPageSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] End of page header
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Stopping search for page header options
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: Q
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Output goes directly to the renderer now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Starting renderer
    D [23/Nov/2009:15:05:20 -0800] [Job 28] JCL: <job data>
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] renderer PID kid4=3435
    D [23/Nov/2009:15:05:20 -0800] [Job 28] renderer command: gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="HP LaserJet" -dDuplex=true -dTumble=false -r300 -sIjsParams=Quality:Quality=0,Quality:ColorMode=0,Quality:MediaType=0,Quality:PenSet=0,PS:MediaPosition=7 -dIjsUseOutputFD -sOutputFile=- -
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%PageTrailer
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%Page: 2 2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] -----------
    D [23/Nov/2009:15:05:20 -0800] [Job 28] New page: 2 2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%Page: 2 2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Output goes to the FIFO buffer now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BeginPageSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Inserting option code into "PageSetup" section.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%EndPageSetup
    D [23/Nov/2009:15:05:20 -0800] [Job 28] End of page header
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Stopping search for page header options
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: (hair) 17.1865 Tj
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Output goes directly to the renderer now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Starting process 3436: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%PageTrailer
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%Trailer
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%DocumentSuppliedResources:
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%Pages: 2
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%BoundingBox: 0 0 596 842
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Found: %%EOF
    D [23/Nov/2009:15:05:20 -0800] [Job 28] --> Continue DSC parsing now.
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Closing renderer
    D [23/Nov/2009:15:05:20 -0800] [Job 28] PAGE: 1 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] STATE: +connecting-to-device
    D [23/Nov/2009:15:05:20 -0800] [Job 28] prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/hp_LaserJet_1320_series?serial=00CNDC51W23C
    D [23/Nov/2009:15:05:20 -0800] [Job 28] GPL Ghostscript 8.70: Unrecoverable error, exit code 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Process 3436 ending: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [23/Nov/2009:15:05:20 -0800] [Job 28] renderer return value: 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] renderer received signal: 1
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Process dying with "Possible error on renderer command line or PostScript error. Check options.", exit stat: 3
    D [23/Nov/2009:15:05:20 -0800] [Job 28] error: No such file or directory (2)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Cleaning up ...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Killing process 3435 (KID4) with signal 15
    D [23/Nov/2009:15:05:20 -0800] [Job 28] KID3 exited with status 3
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Renderer exit stat: 3
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Killing process 3435 (KID4) with signal 9
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Closing foomatic-rip.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Renderer process finished
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Process dying with "Error closing renderer", exit stat: 3
    D [23/Nov/2009:15:05:20 -0800] [Job 28] error: Bad file descriptor (9)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Cleaning up ...
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Killing process 3434 (KID3) with signal 15
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Killing process 3434 (KID3) with signal 9
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Error closing renderer
    D [23/Nov/2009:15:05:20 -0800] [Job 28]
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Closing foomatic-rip.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Backend returned status 1 (failed)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] Printer stopped due to backend errors; please consult the error_log file for details.
    D [23/Nov/2009:15:05:20 -0800] [Job 28] End of messages
    D [23/Nov/2009:15:05:20 -0800] [Job 28] printer-state=5(stopped)
    D [23/Nov/2009:15:05:20 -0800] [Job 28] printer-state-message="/usr/lib/cups/backend/hp failed"
    D [23/Nov/2009:15:05:20 -0800] [Job 28] printer-state-reasons=paused
    E [23/Nov/2009:15:21:07 -0800] Unable to remove temporary file "/var/spool/cups/tmp/.fontconfig" - Is a directory
    E [23/Nov/2009:15:21:07 -0800] Unable to open listen socket for address ::1:631 - Address family not supported by protocol.
    E [23/Nov/2009:15:21:07 -0800] Unable to set ACLs on root certificate "/var/run/cups/certs/0" - Operation not supported
    E [23/Nov/2009:15:21:29 -0800] Returning IPP client-error-not-possible for Cancel-Job (ipp://localhost/jobs/30) from localhost
    EDIT2:
    Anyone else who gets this problem and freaks out: All you have to do is go to the CUPS printer administration page and click "Resume Printer".
    Last edited by egan (2009-11-23 23:56:37)

    I am having this same issue but simply resuming the printer won't change anything....
    I always see this message when I try printing ....
    "/usr/lib/cups/backend/hp failed"
    but if I just call it from the command line, it shows me my printer info...
    [somekool@rockinTV test]$ /usr/lib/cups/backend/hp
    direct hp:/usb/deskjet_5550?serial=MY27G1J3CK2L "HP deskjet 5550" "HP deskjet 5550 USB MY27G1J3CK2L HPLIP" "MFG:hp;MDL:deskjet 5550;CLS:PRINTER;DES:deskjet 5550;SN:MY27G1J3CK2L;"
    [somekool@rockinTV test]$
    by looking further... I found two more error message...
    "io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted"
    and
    prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    full log below
    please help !!!
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:02 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 401 128 Pause-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:02 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3765)
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:02 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 401 128 Pause-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:02 -0500] Printer "deskjet_5550" stopped by "root".
    ==> cups/access_log <==
    localhost - root [10/Jan/2010:11:04:02 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 200 128 Pause-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:04 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3766)
    I [10/Jan/2010:11:04:09 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3767)
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:09 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 401 128 Resume-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:09 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3768)
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:09 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 401 128 Resume-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:09 -0500] Printer "deskjet_5550" started by "root".
    ==> cups/access_log <==
    localhost - root [10/Jan/2010:11:04:09 -0500] "POST /printers/deskjet_5550 HTTP/1.1" 200 128 Resume-Printer successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:11 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3769)
    I [10/Jan/2010:11:04:15 -0500] Started "/usr/lib/cups/cgi-bin/jobs.cgi" (pid=3770)
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:15 -0500] "POST /jobs HTTP/1.1" 401 140 Release-Job successful-ok
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:15 -0500] Started "/usr/lib/cups/cgi-bin/jobs.cgi" (pid=3771)
    ==> cups/access_log <==
    localhost - - [10/Jan/2010:11:04:15 -0500] "POST /jobs HTTP/1.1" 200 139 Release-Job successful-ok
    Traceback (most recent call last):
    File "/usr/share/hplip/ui4/systemtray.py", line 664, in notifierActivated
    n.show()
    glib.GError: The name org.freedesktop.Notifications was not provided by any .service files
    ==> everything.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    ==> daemon.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    ==> errors.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    ==> everything.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 603: invalid product id string ret=-1
    ==> daemon.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 603: invalid product id string ret=-1
    ==> errors.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 603: invalid product id string ret=-1
    ==> everything.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> daemon.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> errors.log <==
    Jan 10 11:04:16 rockinTV hpijs[3782]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> cups/page_log <==
    deskjet_5550 21 somekool [10/Jan/2010:11:04:17 -0500] 1 1 - localhost tmpM1IFvl na_letter_8.5x11in one-sided
    ==> everything.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 603: invalid product id string ret=-1
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> daemon.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 603: invalid product id string ret=-1
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> errors.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 136: unable get_string_descriptor -1: Operation not permitted
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 603: invalid product id string ret=-1
    Jan 10 11:04:17 rockinTV hp[3774]: io/hpmud/musb.c 1108: unable to open hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> everything.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> daemon.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> errors.log <==
    Jan 10 11:04:17 rockinTV hp[3774]: prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    ==> cups/error_log <==
    I [10/Jan/2010:11:04:17 -0500] Hint: Try setting the LogLevel to "debug" to find out more.
    Traceback (most recent call last):
    File "/usr/share/hplip/ui4/systemtray.py", line 664, in notifierActivated
    n.show()
    glib.GError: The name org.freedesktop.Notifications was not provided by any .service files
    I [10/Jan/2010:11:04:18 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3783)
    I [10/Jan/2010:11:04:26 -0500] Hint: Try setting the LogLevel to "debug" to find out more.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] The following messages were recorded from 11:04:15 AM to 11:04:26 AM
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Job released by user.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Released by "root".
    D [10/Jan/2010:11:04:26 -0500] [Job 21] job-sheets=none,none
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[0]="deskjet_5550"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[1]="21"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[2]="somekool"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[3]="tmpM1IFvl"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[4]="1"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[5]="finishings=3 media=na_letter_8.5x11in number-up=1 sides=one-sided job-uuid=urn:uuid:87565748-3d01-3d21-6e06-062333533eed job-originating-host-name=localhost"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] argv[6]="/var/spool/cups/d00021-001"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[0]="CUPS_CACHEDIR=/var/cache/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[1]="CUPS_DATADIR=/usr/share/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[2]="CUPS_DOCROOT=/usr/share/cups/doc"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[3]="CUPS_FONTPATH=/usr/share/cups/fonts"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[4]="CUPS_REQUESTROOT=/var/spool/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[5]="CUPS_SERVERBIN=/usr/lib/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[6]="CUPS_SERVERROOT=/etc/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[7]="CUPS_STATEDIR=/var/run/cups"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[8]="HOME=/var/spool/cups/tmp"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[9]="PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[10]="[email protected]"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[11]="SOFTWARE=CUPS/1.4.2"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[12]="TMPDIR=/var/spool/cups/tmp"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[13]="USER=root"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[14]="CUPS_SERVER=localhost"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[15]="CUPS_ENCRYPTION=IfRequested"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[16]="IPP_PORT=631"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[17]="CHARSET=utf-8"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[18]="LANG=en_US.UTF-8"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[19]="PPD=/etc/cups/ppd/deskjet_5550.ppd"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[20]="RIP_MAX_CACHE=8m"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[21]="CONTENT_TYPE=application/postscript"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[22]="DEVICE_URI=hp:/usb/deskjet_5550?serial=MY27G1J3CK2L"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[23]="PRINTER_INFO=deskjet_5550"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[24]="PRINTER_LOCATION=Play room"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[25]="PRINTER=deskjet_5550"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[26]="CUPS_FILETYPE=document"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] envp[27]="FINAL_CONTENT_TYPE=printer/deskjet_5550"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Started filter /usr/lib/cups/filter/pstops (PID 3772)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Started filter /usr/lib/cups/filter/foomatic-rip-hplip (PID 3773)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Started backend /usr/lib/cups/backend/hp (PID 3774)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Page = 612x792; 18,36 to 594,783
    D [10/Jan/2010:11:04:26 -0500] [Job 21] slow_collate=0, slow_duplex=0, slow_order=0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Before copy_comments - %!PS-Adobe-3.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] %!PS-Adobe-3.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] %%BoundingBox: 0 0 612 792
    D [10/Jan/2010:11:04:26 -0500] [Job 21] %%Pages: 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Before copy_prolog - /hplipversion (3.9.12) def
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Before copy_setup - %%Page: 1 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Before page loop - %%Page: 1 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Copying page 1...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] pagew = 576.0, pagel = 747.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
    D [10/Jan/2010:11:04:26 -0500] [Job 21] PageLeft = 18.0, PageRight = 594.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] PageTop = 783.0, PageBottom = 36.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] PageWidth = 612.0, PageLength = 792.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] foomatic-rip version $Revision=3.0.2.131$ running...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Parsing PPD file ...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option ColorSpace
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option Model
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option PrintoutMode
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option InputSlot
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option PageSize
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option Duplex
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option DryTime
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option Quality
    D [10/Jan/2010:11:04:26 -0500] [Job 21] *cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip-hplip"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option PageRegion
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option ImageableArea
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option PaperDimension
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Added option Font
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Parameter Summary
    D [10/Jan/2010:11:04:26 -0500] [Job 21] -----------------
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Spooler: cups
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Printer: deskjet_5550
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Shell: /bin/sh
    D [10/Jan/2010:11:04:26 -0500] [Job 21] PPD file: /etc/cups/ppd/deskjet_5550.ppd
    D [10/Jan/2010:11:04:26 -0500] [Job 21] ATTR file:
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Printer model: HP Deskjet 5550 Foomatic/hpijs, hpijs 2.8.9.0
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Job title: tmpM1IFvl
    D [10/Jan/2010:11:04:26 -0500] [Job 21] File(s) to be printed:
    D [10/Jan/2010:11:04:26 -0500] [Job 21] <STDIN>
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] GhostScript extra search path ('GS_LIB'): /usr/share/cups/fonts
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'finishings=3'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Unknown option finishings=3.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'media=na_letter_8.5x11in'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Unknown "media" component: "na_letter_8.5x11in".
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'number-up=1'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Unknown option number-up=1.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'sides=one-sided'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'job-uuid=urn:uuid:87565748-3d01-3d21-6e06-062333533eed'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Unknown option job-uuid=urn:uuid:87565748-3d01-3d21-6e06-062333533eed.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Pondering option 'job-originating-host-name=localhost'
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Unknown option job-originating-host-name=localhost.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] ================================================
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] File: <STDIN>
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] ================================================
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Reading PostScript input ...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> This document is DSC-conforming!
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %RBINumCopies: 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] -----------
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginProlog
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%EndProlog
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] -----------
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginSetup
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *PageSize Letter
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: PageSize=Letter --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: PageSize=Letter
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: PageSize=Letter --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *PrintoutMode Normal
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: PrintoutMode=Normal --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: PrintoutMode=Normal
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: PrintoutMode=Normal --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *InputSlot Default
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: InputSlot=Default --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: InputSlot=Default
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: InputSlot=Default --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *Quality FromPrintoutMode
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: Quality=FromPrintoutMode --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: Quality=@PrintoutMode
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: Quality=FromPrintoutMode --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *DryTime Zero
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: DryTime=Zero --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: DryTime=Zero
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: DryTime=Zero --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginFeature: *Duplex None
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: Duplex=None --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %% FoomaticRIPOptionSetting: Duplex=None
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Option: Duplex=None --> Setting option
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%EndSetup
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Inserting PostScript code for CUPS' page accounting
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] -----------
    D [10/Jan/2010:11:04:26 -0500] [Job 21] New page: 1 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BeginPageSetup
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Inserting option code into "PageSetup" section.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%EndPageSetup
    D [10/Jan/2010:11:04:26 -0500] [Job 21] End of page header
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Stopping search for page header options
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: lineto % Move there...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> Output goes directly to the renderer now.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Starting renderer
    D [10/Jan/2010:11:04:26 -0500] [Job 21] renderer PID kid4=3779
    D [10/Jan/2010:11:04:26 -0500] [Job 21] renderer command: gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="deskjet 5550" -dDuplex=false -r300 -sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=2,PS:MediaPosition=7 -dIjsUseOutputFD -sOutputFile=- -
    D [10/Jan/2010:11:04:26 -0500] [Job 21] JCL: <job data>
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Starting process 3780: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Wrote 1 pages...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%Trailer
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> Continue DSC parsing now.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%Pages: 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> Continue DSC parsing now.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%BoundingBox: 0 0 612 792
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> Continue DSC parsing now.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Found: %%EOF
    D [10/Jan/2010:11:04:26 -0500] [Job 21] --> Continue DSC parsing now.
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Closing renderer
    D [10/Jan/2010:11:04:26 -0500] [Job 21] PAGE: 1 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] STATE: +connecting-to-device
    D [10/Jan/2010:11:04:26 -0500] [Job 21] prnt/backend/hp.c 745: ERROR: open device failed stat=12: hp:/usb/deskjet_5550?serial=MY27G1J3CK2L
    D [10/Jan/2010:11:04:26 -0500] [Job 21] GPL Ghostscript 8.70: Unrecoverable error, exit code 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Process 3780 ending: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [10/Jan/2010:11:04:26 -0500] [Job 21] renderer return value: 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] renderer received signal: 1
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Process dying with "Possible error on renderer command line or PostScript error. Check options.", exit stat: 3
    D [10/Jan/2010:11:04:26 -0500] [Job 21] error: No such file or directory (2)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Cleaning up ...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Killing process 3779 (KID4) with signal 15
    D [10/Jan/2010:11:04:26 -0500] [Job 21] KID3 exited with status 3
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Renderer exit stat: 3
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Killing process 3779 (KID4) with signal 9
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Closing foomatic-rip.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Renderer process finished
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Process dying with "Error closing renderer", exit stat: 3
    D [10/Jan/2010:11:04:26 -0500] [Job 21] error: Bad file descriptor (9)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Cleaning up ...
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Killing process 3778 (KID3) with signal 15
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Killing process 3778 (KID3) with signal 9
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Error closing renderer
    D [10/Jan/2010:11:04:26 -0500] [Job 21]
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Closing foomatic-rip.
    D [10/Jan/2010:11:04:26 -0500] [Job 21] Backend returned status 1 (failed)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] End of messages
    D [10/Jan/2010:11:04:26 -0500] [Job 21] printer-state=3(idle)
    D [10/Jan/2010:11:04:26 -0500] [Job 21] printer-state-message="/usr/lib/cups/backend/hp failed"
    D [10/Jan/2010:11:04:26 -0500] [Job 21] printer-state-reasons=none
    I [10/Jan/2010:11:04:28 -0500] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=3784)
    I [10/Jan/2010:11:04:33 -0500] Saving printers.conf...
    I [10/Jan/2010:11:04:33 -0500] Saving job cache file "/var/cache/cups/job.cache"...
    Mod edit: Added code tags [ewaller]
    Last edited by ewaller (2011-06-26 23:53:15)

  • Best practice for if/else when one outcome results in exit [Bash]

    I have a bash script with a lot of if/else constructs in the form of
    if <condition>
    then
    <do stuff>
    else
    <do other stuff>
    exit
    fi
    This could also be structured as
    if ! <condition>
    then
    <do other stuff>
    exit
    fi
    <do stuff>
    The first one seems more structured, because it explicitly associates <do stuff> with the condition.  But the second one seems more logical because it avoids explicitly making a choice (then/else) that doesn't really need to be made.
    Is one of the two more in line with "best practice" from pure bash or general programming perspectives?

    I'm not sure if there are 'formal' best practices, but I tend to use the latter form when (and only when) it is some sort of error checking.
    Essentially, this would be when <do stuff> was more of the main purpose of the script, or at least that neighborhood of the script, while <do other stuff> was mostly cleaning up before exiting.
    I suppose more generally, it could relate to the size of the code blocks.  You wouldn't want a long involved <do stuff> section after which a reader would see an "else" and think 'WTF, else what?'.  So, perhaps if there is a substantial disparity in the lengths of the two conditional blocks, put the short one first.
    But I'm just making this all up from my own preferences and intuition.
    When nested this becomes more obvious, and/or a bigger issue.  Consider two scripts:
    if [[ test1 ]]
    then
    if [[ test2 ]]
    then
    echo "All tests passed, continuing..."
    else
    echo "failed test 2"
    exit
    fi
    else
    echo "failed test 1"
    fi
    if [[ ! test1 ]]
    then
    echo "failed test 1"
    exit
    fi
    if [[ ! test2 ]]
    then
    echo "failed test 2"
    exit
    fi
    echo "passed all tests, continuing..."
    This just gets far worse with deeper levels of nesting.  The second seems much cleaner.  In reality though I'd go even further to
    [[ ! test1 ]] && echo "failed test 1" && exit
    [[ ! test2 ]] && echo "failed test 2" && exit
    echo "passed all tests, continuing..."
    edit: added test1/test2 examples.
    Last edited by Trilby (2012-06-19 02:27:48)

  • User exit IPRM0002 for preventive maintenance

    user exit IPRM0002 for preventive maintenance
    has anyone used this user exit? or BADI: BAdI: IPRM_MCP_SCHE_CHANGE  ?
    I seem to have some difficulty in knowing how to use these....
    I need to basically be able to influence a calling date for next PMorder to be opened but documentation is not explanatory and, even if I do know what these exit/badi are used for, i do not understand how to use the parameters provided.
    can anyone help?

    Hi,
      I dont think you would be able to test the exit if you dont implement them for the user exits simply passing the parameters wont help,actually there is a process of implementing a USER-EXIT i suppose u would already be familiar to it, I order to activate the exit you have to create a project in CMOD transaction and assign the enhancement to that and then also create the include that is avaliable inside the FM and there you would be able to put your code.
      For the BAPIs ,yes the control should go inside the BADI once you put a breakd point inside the right method but there to you need to implement the BADI and then you can put your code in the method for the effects to take place and you can test.
    The detail process of implementation are already avaliable on SCN, It seems that you dont have developer authorizations so i would suggest to take help from some one who has, Best of Luck:).
    Regards,
    Himanshu

  • Screen - exits - step by step simple examples

    hi ,
    i am new to user exits.
    pls help me by giving step by step example for creating a subscreen with 2 fields , and incorporate with some standard sap transactions.
    there are many who discussed the same topic in the forum ,but i find confusing.
    *so please don't give me the links, take standard transaction and provide me step by step .
    Thank you.
    regards
    Sree

    hi,
    SAP provides standard transactions to enter data into database. But a client may want to maintain some additional information in SAP other than what is provided.
    To make provisions for this, additional screens have to be provided and additional fields must be added into appropriate database table.
    To pave way for this, SAP has provided the option for screen exits. Usually, SAP provides the following:
    An append structure in the database table with the new fields.
    A subscreen area into the standard screen u2013 where the programmer can attach his subscreen of his own program with the new fields.
    A function group under which the new subscreen has to be created with the new fields.
    Function exits to synchronize the PBO and PAI of the standard SAP program with the PBO and PAI of the subscreen u2013 so that data can flow back and forth between the standard SAP program and the program written by the developer for the subscreen. These function modules also exist in the same function group under which the subscreen will have to be developed.
    Finally, a linkage has to be done between the subscreen area of standard SAP screen with the custom subscreen constructed by the developer.
    Typically, SAP provides an enhancement in which the developer can create an append structure, use the function exits to synchronize the PBO and PAI of the standard SAP program and the custom subscreen program, and make the necessary linking( as mentioned above in step 4. But, again, this is not a hard and fast rule. Linking in some case, is also done by configurations.) SAP also usually provides the name of the function group under which the subscreen has to be developed.
    Necessary guidance about implementing a screen exit development is usually available in the Documentation section of the enhancement ( can be availed by transaction SMOD).
    Pre-Requisites
    The developer to work on screen exit should have essential knowledge on the following:
    DDIC concepts, including the knowledge of append structure.
    Concept of SAP Enhancements and implementing them using Projects.
    Concept of function exits.
    Knowledge on Module Pool u2013 including subscreens, Tabstrip controls etc.
    Steps
    Guidelines
    So, a developer can follow the guidelines mentioned below to implement a screen exit to a standard SAP transaction, as and when required:
    Find out the Required Enhancements
    Go to SMOD. Press F4 in the Enhancement field. In the next popup window, click pushbutton u2018SAP Applicationsu2019. A list will appear that contains information on all the enhancements, categorized under functional areas. Developer must search for the enhancements relevant to his functional area of interest u2013 for e.g., Purchasing, Asset Accounting, etc.
    Note down the enhancements. Then, come to the initial screen of SMOD and view the documentation of each enhancement to find out which one is required for your development.
    Utilize the Enhancement in a Project
    After you have found one, do as directed in the documentation. Generally, the steps are as follows:
    Create a project using CMOD including your enhancement.
    Create the append structure with new fields.
    Go to the desired function group and create a subscreen with the new fields. Write PBO and PAI for the subscreen, if required.
    Use the function exits in the enhancement to link the PBO and PAI of the subscreen with that of the main SAP program supporting the SAP transaction.
    Maintain necessary linkage between the subscreen area of standard SAP program with the custom subscreen developed along with the custom program name. This can be done in the project (developed by CMOD including the enhancement) or outside as a part of configuration.
    Activate the project.
    Test to ensure that required functionality are met.
    Case Study 1
    Add three new custom fields for Asset master and maintain information for them
    Requirement
    Three fields in the legacy system have to be maintained in Asset master. These fields are:
    Original Asset number u2013 20 characters
    Location 2 u2013 15 Characters.
    Model no u2013 20 characters
    Location 2 should start with u2018Lu2019.
    Pre-Analysis
    Finding out the Enhancement
    As described above, the enhancement is determined. It was found, that enhancement AIST0002 will serve the purpose. It contains the following components (can be viewed by transaction SMOD):
    Exit Type Description EXIT_SAPL1022_001 Function Exit Check of User-Defined Fields when Using Create and Change BAPI EXIT_SAPLAIST_002 Function Exit Transfer Data for User Subscreens in PBO. EXIT_SAPLAIST_003 Function Exit Transfer of User-Defined Fields to SAP Master Data Transactions CI_ANLU Customizing Include Include structure to add new fields
    Studying the Function Exits
    The function module level documentation for the function exits are then viewed from transaction SE37. The documentation clearly laid out for the purpose for their use:
    EXIT_SAPLAIST_002
    Function module Level Documentation
    This function module is called by asset master data maintenance at the start of the dialog. (When changing, it is called after reading of the data from the database; when creating it is called after the transfer of the default values from the asset class and reference asset.) The purpose of the function module is to enable this function group to recognize the master data. For interpreting or controlling master data fields that are important for user fields, it is possible to transfer to global variables at this point, so that they can be recognized when the user subscreens are processed.
    Import Parameters
    Understanding
    This function module is called at the PBO to pass the information retrieved from the database to pass them to the custom subscreen and its underlying program. Import parameter : I_ANLU will be populated with the values for user-defined fields which will be passed to the subscreen program. So, there must be some sort of variable assignment from I_ANLU.
    EXIT_SAPLAIST_003
    Function module Documentation: This function module is called by SAP asset master data maintenance after the screens are processed, but before saving. The purpose of the function module is to transfer fields entered on user sub-screens of SAP asset data maintenance to the database for updating. The export parameter for this function module is:
    Understanding
    This function module will be used to transfer the user entered data in the subscreen fields to the main SAP program, which will then be saved into the database.
    Studying the Documentation of the Enhancement
    The enhancement documentation (as is viewed from the initial screen of SMOD] also supports the idea. Moreover, it informs that we need to develop a subscreen under function group XAIS. This is the function group under which the two function exit modules also exist. So, if the custom subscreen refers to the global data of the function group XAIS, then those values will also be available to these function exits as well.
    Going to SE80 and viewing the function group XAIS helps us to inform that there are three DDIC tables declared for it:
    Deciding the Final course of Action
    After making all the investigations, the final course of action was determined.
    SrlNo Step Justification
    A project has to be created using transaction CMOD where the enhancement AIST0002 will be included.
    Customizing include CI_ANLU has to be created with the custom fields demanded When CI_ANLU will be developed, the custom fields will get appended to the database table ANLU. Also, these fields will be used to create screen fields in the new subscreen.
    A custom subscreen, say, 9000 will be developed under function group XAIS. The screen group for the screen will be u2018CUSTu2019 (or any name). The three custom fields added to table ANLU (by creating CI_ANLU) will be used to create new fields in the screen.
    In the PAI of the subscreen, validation for Location to start with u2018Lu2019 will be added. The subscreen with three new fields has to be developed so that it can be attached to a subscreen area of the asset master screens.
    In the custom include of the function exit module u2018EXIT_SAPLAIST_002u2019, the following code will be written:-
    ANLU = I_ANLU. I_ANLU is the import parameter of this FM. The value is assigned to the global variable ANLU, referring which the three new subscreen fields are developed. So, data retrieved from database table ANLU will be passed to this FM as I_ANLU by the standard SAP main program. The value will be taken and passed to the global variable of the function group XAIS, so that the three custom fields (referring to ANLU of XAIS) get populated.
    In the custom include of the function exit module u2018EXIT_SAPLAIST_003u2019, the following code will be written:-
    E_ANLU = ANLU. The changed values in the subscreen fields exist in global variable ANLU for the function group XAIS. This function exit module will pass the data back to the SAP main program as E_ANLU.
    Proper linkage/configuration has to be done so that the new subscreens get linked to the appropriate subscreen area of the Asset master screen. This has to be done u2013 otherwise, the new custom subscreen will not be displayed in the Asset master screens.
    Development
    Creating a Project to include the enhancement
    Go to transaction CMOD and create a project.
    Enter a description for the project. Then, click on the pushbutton u2018Enhancement Assignmentsu2019 in the Application Toolbar.
    Enter the name of the enhancement and Save.
    Go to u2018Componentsu2019.
    Creating Custom Include for ANLU
    The screen shown below will appear, showing all the enhancement components under the assignment AIST0002. Double-click on the name of the Include Structure to create it.
    Create the include structure with three new fields, as required. Then, save and activate it.
    Develop the subscreen and the program
    Go to transaction SE80. For the function group XAIS, create a new subscreen 9000.
    Create it as subscreen.
    Then, go to the Layout of the screen and create three new fields from Database table ANLU.
    Drag the fields in the screen body and place them.
    Then, save and activate the screen and come back to screen flow editor.
    Create the PAI module to add validation for field u201CLocation 2u201D, as required .
    Activate the whole function group and come out.
    Write code in the Function Exits to synchronize the programs
    Now, code has to be written in the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows to and fro between the main SAP program and custom subscreen program. For that, go back to transaction CMOD and change the function exits.
    Write code in the function module EXIT_SAPLAIST_002 called once at the beginning of the transaction:
    Write code in EXIT_SAPLAIST_003 to pass the data from the subscreen to SAP main program.
    Then, activate everything u2013 the whole project and come out.
    Complete the configuration to link the subscreen
    The development portion is complete. Now, linking of the subscreen has to be done with the subscreen area of the main program. In most of the cases, this linking can be done in the enhancement itself. But, here, requirement is a bit different. It is done by configuration using SPRO.
    Assets are created under Asset class. And for each asset class, there is a layout assigned to it. For a layout, there are multiple tab pages assigned to it. And, for each tab page, there are multiple screen groups/field groups assigned.
    Here, the requirement is to create these three custom fields in the tab page u2018Generalu2019 of asset master screen ( AS01/AS02/AS03/AS91).
    Determine the Layout
    To achieve this, first of all, we need to find out which layout is assigned to asset class 1000.For that, go to transaction AOLK( information has to be obtained from functional consultant).Select the Asset Class u20181000u2019 and click on folder u2018General Assignment of Layoutu2019.
    Here, for Asset class 1000, for all the user groups, tab layout SAP is assigned. Since layout u2018SAPu2019 cannot be changed, it has to be copied and manipulated to include our screen group. Later, the new layout has to be assigned over here.
    Create new tab layout
    Go to transaction AOLA. Copy the tab layout u2018SAPu2019 to create another layout, say, YSUB.
    System will copy all the settings and will inform you about that.
    Select your newly created layout and double-click on the folder u2018Tab page titlesu2019.
    You want to put your custom fields in the tab page u201CGeneralu201D. So, select this tab page entry and double-click on the folder "Position of Groups".
    Here, all the field groups currently residing in the tab-page u201CGeneralu201D are shown. Add an entry for your newly created fields.
    Select the group box from the list. An entry will come with u201CUu201D padded with the custom subscreen prepared by you.
    Then, save and come out.
    Assign the new Layout to Asset Class
    Now, go to tcode AOLK and assign tab layout YSUB for asset class 1000.
    Save and come out.
    Test the Exit
    Everything is over. Now, go to transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000. You will see your new fields added to the screen. Add values to themu2026save. Then, enter into the tcodes again to see whether the values entered by you are being displayed or not.

  • User exit  vs customer exit

    Hi experts ,
    i am confusing user exit and customer exit plz give good diffrence and where we use these exits
    thanks and advance

    Hi,
    User exit - A user exit is a three character code that instructs the system to access a program during system processing.
    SXX: S is for standard exits that are delivered by SAP. XX represents the 2-digit exit number.
    UXX: U is for user exits that are defined by the user. XX represents the 2-digit exit number
    Customer exit - The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.
    The program for transaction VA01 Create salesorder is SAPMV45A
    If you search for CALL CUSTOMER-FUNCTION i program
    SAPMV45A you will find ( Among other user exits):
    CALL CUSTOMER-FUNCTION '003'
    exporting
    xvbak = vbak
    xvbuk = vbuk
    xkomk = tkomk
    importing
    lvf_subrc = lvf_subrc
    tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
    The exit calls function module EXIT_SAPMV45A_003
    Development
    Creating a Project to include the enhancement
    1. Go to transaction CMOD and create a project.
    2. Enter a description for the project. Then, click on the pushbutton ‘Enhancement Assignments’ in the Application Toolbar.
    3. Enter the name of the enhancement and Save.
    4. Go to ‘Components’.
    Creating Custom Include for ANLU
    The screen shown below will appear, showing all the enhancement components under the assignment AIST0002. Double-click on the name of the Include Structure to create it.
    Create the include structure with three new fields, as required. Then, save and activate it.
    Develop the subscreen and the program
    Go to transaction SE80. For the function group XAIS, create a new subscreen 9000.
    Create it as subscreen.
    Then, go to the Layout of the screen and create three new fields from Database table ANLU.
    Drag the fields in the screen body and place them.
    Then, save and activate the screen and come back to screen flow editor.
    Create the PAI module to add validation for field “Location 2”, as required .
    Activate the whole function group and come out.
    Write code in the Function Exits to synchronize the programs
    Now, code has to be written in the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows to and fro between the main SAP program and custom subscreen program. For that, go back to transaction CMOD and change the function exits.
    Write code in the function module EXIT_SAPLAIST_002 called once at the beginning of the transaction:
    Write code in EXIT_SAPLAIST_003 to pass the data from the subscreen to SAP main program.
    Then, activate everything – the whole project and come out.
    Complete the configuration to link the subscreen
    The development portion is complete. Now, linking of the subscreen has to be done with the subscreen area of the main program. In most of the cases, this linking can be done in the enhancement itself. But, here, requirement is a bit different. It is done by configuration using SPRO.
    Assets are created under Asset class. And for each asset class, there is a layout assigned to it. For a layout, there are multiple tab pages assigned to it. And, for each tab page, there are multiple screen groups/field groups assigned.
    Here, the requirement is to create these three custom fields in the tab page ‘General’ of asset master screen ( AS01/AS02/AS03/AS91).
    Determine the Layout
    To achieve this, first of all, we need to find out which layout is assigned to asset class 1000.For that, go to transaction AOLK( information has to be obtained from functional consultant).Select the Asset Class ‘1000’ and click on folder ‘General Assignment of Layout’.
    Here, for Asset class 1000, for all the user groups, tab layout SAP is assigned. Since layout ‘SAP’ cannot be changed, it has to be copied and manipulated to include our screen group. Later, the new layout has to be assigned over here.
    Create new tab layout
    Go to transaction AOLA. Copy the tab layout ‘SAP’ to create another layout, say, YSUB.
    System will copy all the settings and will inform you about that.
    Select your newly created layout and double-click on the folder ‘Tab page titles’.
    You want to put your custom fields in the tab page “General”. So, select this tab page entry and double-click on the folder "Position of Groups".
    Here, all the field groups currently residing in the tab-page “General” are shown. Add an entry for your newly created fields.
    Select the group box from the list. An entry will come with “U” padded with the custom subscreen prepared by you.
    Then, save and come out.
    Assign the new Layout to Asset Class
    Now, go to tcode AOLK and assign tab layout YSUB for asset class 1000.
    Save and come out.
    Test the Exit
    Everything is over. Now, go to transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000. You will see your new fields added to the screen. Add values to them…save. Then, enter into the tcodes again to see whether the values entered by you are being displayed or not.
    Please check these links for more information.
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.sapdevelopment.co.uk/enhance/enhancehome.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    Customer exit and User Exit
    User Exit Vs Customer Exit
    Regards,
    Priyanka.

  • Screen exits - Urgent.

    Hi,
    I am working on screen exits for VA01.
    Can someone tell me how to add table control in a sub screeen at item level in additional data B ?

    Hi
    How to implement screen exit for a SAP standard transaction HOT
    Introduction
    SAP provides standard transactions to enter data into database. But a client may want to maintain some additional information in SAP other than what is provided.
    To make provisions for this, additional screens have to be provided and additional fields must be added into appropriate database table.
    To pave way for this, SAP has provided the option for screen exits. Usually, SAP provides the following:
    An append structure in the database table with the new fields.
    A subscreen area into the standard screen – where the programmer can attach his subscreen of his own program with the new fields.
    A function group under which the new subscreen has to be created with the new fields.
    Function exits to synchronize the PBO and PAI of the standard SAP program with the PBO and PAI of the subscreen – so that data can flow back and forth between the standard SAP program and the program written by the developer for the subscreen. These function modules also exist in the same function group under which the subscreen will have to be developed.
    Finally, a linkage has to be done between the subscreen area of standard SAP screen with the custom subscreen constructed by the developer.
    Typically, SAP provides an enhancement in which the developer can create an append structure, use the function exits to synchronize the PBO and PAI of the standard SAP program and the custom subscreen program, and make the necessary linking( as mentioned above in step 4. But, again, this is not a hard and fast rule. Linking in some case, is also done by configurations.) SAP also usually provides the name of the function group under which the subscreen has to be developed.
    Necessary guidance about implementing a screen exit development is usually available in the Documentation section of the enhancement ( can be availed by transaction SMOD).
    Pre-Requisites
    The developer to work on screen exit should have essential knowledge on the following:
    DDIC concepts, including the knowledge of append structure.
    Concept of SAP Enhancements and implementing them using Projects.
    Concept of function exits.
    Knowledge on Module Pool – including subscreens, Tabstrip controls etc.
    Steps
    Guidelines
    So, a developer can follow the guidelines mentioned below to implement a screen exit to a standard SAP transaction, as and when required:
    Find out the Required Enhancements
    Go to SMOD. Press F4 in the Enhancement field. In the next popup window, click pushbutton ‘SAP Applications’. A list will appear that contains information on all the enhancements, categorized under functional areas. Developer must search for the enhancements relevant to his functional area of interest – for e.g., Purchasing, Asset Accounting, etc.
    Note down the enhancements. Then, come to the initial screen of SMOD and view the documentation of each enhancement to find out which one is required for your development.
    Utilize the Enhancement in a Project
    After you have found one, do as directed in the documentation. Generally, the steps are as follows:
    Create a project using CMOD including your enhancement.
    Create the append structure with new fields.
    Go to the desired function group and create a subscreen with the new fields. Write PBO and PAI for the subscreen, if required.
    Use the function exits in the enhancement to link the PBO and PAI of the subscreen with that of the main SAP program supporting the SAP transaction.
    Maintain necessary linkage between the subscreen area of standard SAP program with the custom subscreen developed along with the custom program name. This can be done in the project (developed by CMOD including the enhancement) or outside as a part of configuration.
    Activate the project.
    Test to ensure that required functionality are met.
    Case Study 1
    Add three new custom fields for Asset master and maintain information for them
    Requirement
    Three fields in the legacy system have to be maintained in Asset master. These fields are:
    Original Asset number – 20 characters
    Location 2 – 15 Characters.
    Model no – 20 characters
    Location 2 should start with ‘L’.
    Pre-Analysis
    Finding out the Enhancement
    As described above, the enhancement is determined. It was found, that enhancement AIST0002 will serve the purpose. It contains the following components (can be viewed by transaction SMOD):
    Exit Type Description EXIT_SAPL1022_001 Function Exit Check of User-Defined Fields when Using Create and Change BAPI EXIT_SAPLAIST_002 Function Exit Transfer Data for User Subscreens in PBO. EXIT_SAPLAIST_003 Function Exit Transfer of User-Defined Fields to SAP Master Data Transactions CI_ANLU Customizing Include Include structure to add new fields
    Studying the Function Exits
    The function module level documentation for the function exits are then viewed from transaction SE37. The documentation clearly laid out for the purpose for their use:
    EXIT_SAPLAIST_002
    Function module Level Documentation
    This function module is called by asset master data maintenance at the start of the dialog. (When changing, it is called after reading of the data from the database; when creating it is called after the transfer of the default values from the asset class and reference asset.) The purpose of the function module is to enable this function group to recognize the master data. For interpreting or controlling master data fields that are important for user fields, it is possible to transfer to global variables at this point, so that they can be recognized when the user subscreens are processed.
    Import Parameters
    Understanding
    This function module is called at the PBO to pass the information retrieved from the database to pass them to the custom subscreen and its underlying program. Import parameter : I_ANLU will be populated with the values for user-defined fields which will be passed to the subscreen program. So, there must be some sort of variable assignment from I_ANLU.
    EXIT_SAPLAIST_003
    Function module Documentation: This function module is called by SAP asset master data maintenance after the screens are processed, but before saving. The purpose of the function module is to transfer fields entered on user sub-screens of SAP asset data maintenance to the database for updating. The export parameter for this function module is:
    Understanding
    This function module will be used to transfer the user entered data in the subscreen fields to the main SAP program, which will then be saved into the database.
    Studying the Documentation of the Enhancement
    The enhancement documentation (as is viewed from the initial screen of SMOD] also supports the idea. Moreover, it informs that we need to develop a subscreen under function group XAIS. This is the function group under which the two function exit modules also exist. So, if the custom subscreen refers to the global data of the function group XAIS, then those values will also be available to these function exits as well.
    Going to SE80 and viewing the function group XAIS helps us to inform that there are three DDIC tables declared for it:
    Deciding the Final course of Action
    After making all the investigations, the final course of action was determined.
    SrlNo Step Justification
    A project has to be created using transaction CMOD where the enhancement AIST0002 will be included.
    Customizing include CI_ANLU has to be created with the custom fields demanded When CI_ANLU will be developed, the custom fields will get appended to the database table ANLU. Also, these fields will be used to create screen fields in the new subscreen.
    A custom subscreen, say, 9000 will be developed under function group XAIS. The screen group for the screen will be ‘CUST’ (or any name). The three custom fields added to table ANLU (by creating CI_ANLU) will be used to create new fields in the screen.
    In the PAI of the subscreen, validation for Location to start with ‘L’ will be added. The subscreen with three new fields has to be developed so that it can be attached to a subscreen area of the asset master screens.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_002’, the following code will be written:-
    ANLU = I_ANLU. I_ANLU is the import parameter of this FM. The value is assigned to the global variable ANLU, referring which the three new subscreen fields are developed. So, data retrieved from database table ANLU will be passed to this FM as I_ANLU by the standard SAP main program. The value will be taken and passed to the global variable of the function group XAIS, so that the three custom fields (referring to ANLU of XAIS) get populated.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_003’, the following code will be written:-
    E_ANLU = ANLU. The changed values in the subscreen fields exist in global variable ANLU for the function group XAIS. This function exit module will pass the data back to the SAP main program as E_ANLU.
    Proper linkage/configuration has to be done so that the new subscreens get linked to the appropriate subscreen area of the Asset master screen. This has to be done – otherwise, the new custom subscreen will not be displayed in the Asset master screens.
    Development
    Creating a Project to include the enhancement
    Go to transaction CMOD and create a project.
    Enter a description for the project. Then, click on the pushbutton ‘Enhancement Assignments’ in the Application Toolbar.
    Enter the name of the enhancement and Save.
    Go to ‘Components’.
    Creating Custom Include for ANLU
    The screen shown below will appear, showing all the enhancement components under the assignment AIST0002. Double-click on the name of the Include Structure to create it.
    Create the include structure with three new fields, as required. Then, save and activate it.
    Develop the subscreen and the program
    Go to transaction SE80. For the function group XAIS, create a new subscreen 9000.
    Create it as subscreen.
    Then, go to the Layout of the screen and create three new fields from Database table ANLU.
    Drag the fields in the screen body and place them.
    Then, save and activate the screen and come back to screen flow editor.
    Create the PAI module to add validation for field “Location 2”, as required .
    Activate the whole function group and come out.
    Write code in the Function Exits to synchronize the programs
    Now, code has to be written in the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows to and fro between the main SAP program and custom subscreen program. For that, go back to transaction CMOD and change the function exits.
    Write code in the function module EXIT_SAPLAIST_002 called once at the beginning of the transaction:
    Write code in EXIT_SAPLAIST_003 to pass the data from the subscreen to SAP main program.
    Then, activate everything – the whole project and come out.
    Complete the configuration to link the subscreen
    The development portion is complete. Now, linking of the subscreen has to be done with the subscreen area of the main program. In most of the cases, this linking can be done in the enhancement itself. But, here, requirement is a bit different. It is done by configuration using SPRO.
    Assets are created under Asset class. And for each asset class, there is a layout assigned to it. For a layout, there are multiple tab pages assigned to it. And, for each tab page, there are multiple screen groups/field groups assigned.
    Here, the requirement is to create these three custom fields in the tab page ‘General’ of asset master screen ( AS01/AS02/AS03/AS91).
    Determine the Layout
    To achieve this, first of all, we need to find out which layout is assigned to asset class 1000.For that, go to transaction AOLK( information has to be obtained from functional consultant).Select the Asset Class ‘1000’ and click on folder ‘General Assignment of Layout’.
    Here, for Asset class 1000, for all the user groups, tab layout SAP is assigned. Since layout ‘SAP’ cannot be changed, it has to be copied and manipulated to include our screen group. Later, the new layout has to be assigned over here.
    Create new tab layout
    Go to transaction AOLA. Copy the tab layout ‘SAP’ to create another layout, say, YSUB.
    System will copy all the settings and will inform you about that.
    Select your newly created layout and double-click on the folder ‘Tab page titles’.
    You want to put your custom fields in the tab page “General”. So, select this tab page entry and double-click on the folder "Position of Groups".
    Here, all the field groups currently residing in the tab-page “General” are shown. Add an entry for your newly created fields.
    Select the group box from the list. An entry will come with “U” padded with the custom subscreen prepared by you.
    Then, save and come out.
    Assign the new Layout to Asset Class
    Now, go to tcode AOLK and assign tab layout YSUB for asset class 1000.
    Save and come out.
    Test the Exit
    Everything is over. Now, go to transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000. You will see your new fields added to the screen. Add values to them…save. Then, enter into the tcodes again to see whether the values entered by you are being displayed or not.
    Original Source: ittoolbox.com
    Screen Exit is nothing but enhancing the screen like creating some more fields, subscreen and so on.
    1. Go to the screen>System>Status-->Program (Double
    click this program. It will take you to the program.
    2. Now, Goto-->Object Directory Entry.
    3. Make a note the package name.
    4. Now run the transactions SMOD, press F4 and enter the
    above noted package, press enter.
    5. It will display list of Exits.
    6. Now go back to the initial screen SMOD.
    7. Specify the exit name here and select the radio button
    Components.
    8. It will display four group boxes one for FM, second
    for Fcodes, thrid for Screen areas and last for
    includes.
    9. Goto transaction CMOD, create a new project, and
    click the button "Enhancement assignments" and
    specify your enhancements that you got in SMOD.
    10. Now bouble clikc the enhancement, it will take you to editor with some includes starting with Z, double clikc the include you want to edit and proceed.
    and you just go through these links also
    Screen exit
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    screen-exits
    Check the following link.
    https://www.sdn.sap.com/irj/sdn/advancedsearch?query=how%20to%20find%20screen%20exits&cat=sdn_all
    Reward points if useful
    Regards
    Anji

  • Menu Exits and Screen Exits

    hi everyone,
    can you send me some examples on menu exits and screen exits.
    thank you.
    preetham

    Hi Preetham,
    In older versions MENU Exits approached through Transaction CMOD by creating
    PROJECTS and activating the project and assigning Program to that
    Transaction Codes. For MENU Exits, Transaction Codes will be starting with
    "+" sign and with default text "NODE TEXT NOT FOUND" for which you can
    assign your Report or Dialog Program etc., (for Eg:- +DW4 MENU Exits
    Transaction available in TOOLS --> ABAP Workbench --> Utilities --> <Node
    Text Not found>).
    Procedure for Creating MENU Exits.
    1) To get into Area Menu Maintenance Screen Type SE43 T.Code in Command
    Line.
    2) In Area Menu Paramenter type 'S000' (S triple Zero)
    3) Then Press Change Icon in Application Tool Bar. Then It may ask for
    Access Key [or] it may display "Specify Processing mode" window. If it ask
    for the Access Key Check for the availability of OSS Note and apply to open
    Standard SAP Menu to include MENU Exits. Otherwise, if it display "Specify
    Processing mode" window with Three Push Button. In which select "Change" and
    proceed further.
    4) Then it will display "Information" window with the following information
    "Caution : The Original Language of the structure is German (editing lang. :
    English) ". Then press "Enter Key to proceed further.
    5) Then you will get into "Edit Area Menu S000".
    6) for eg:- Expand Tools Menu.
    7) Then Press ABAP Workbench <Icon>.
    8) Then you will get into ABAP Workbench Menu Tree.
    9) Then Expand Utilities Menu.
    10) In the last line you will find one MENU EXIT Provision to include your
    own menu. "Node Text Not Found" This text can be change by double Clicking
    that. There you can find the T.Code. Here for Eg:- "+DW4".
    11) for eg: - Here change the Text to "Sample Menu Exit" and then note down
    the T.Code "+DW4".
    12) Then Save with Change Request Number and come out of Transaction SE43.
    13) Then Goto Transaction SE93.
    14) Then type T.Code "+DW4" and press Create.
    15) Then proceed further to create transaction called "+DW4".
    I hope this could help you in Creating Menu Exit...
    Creating menu exits
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/19762743b111d1896f0000e8322d00/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/83/7a18cbde6e11d195460000e82de14a/frameset.htm
    For screen exits.
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screen’s flow logic.
    the tcode is cmod...
    1.From the main screen of the Project management transaction, proceed as follows:
    Select Enhancement components and choose Change.
    2.Choose Edit component.
    3.Choose the screen exit and double click on it
    4.Create your subscreen using the Screen Painter.
    5.Design your screen to be added to the standard screen and activate the particular screen and return back to the flow logic .
    6.Choose the PAI and PBO to write down the logic.
    7.Generate your screen and choose Back (the green arrow) to return to the Project management transaction.
    8.Go to the transaction ME22 to view the customer defined screen exit.
    9.Enter the purchase order number and press Enter.
    10.Go to the menu header --> Details.
    11.Purchase number is visible on the standard screen
    check the foll link,
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    Menu exits allow you to add your own functions to the pulldown menus in standard R/3 transactions. To take advantage of a menu exit, you first need to create a project as described in the section Creating an add-on project. Then, you must include the SAP enhancement package that contains the menu exit you want to use in your project. From the main screen of the Project management transaction, proceed as follows:
    Select Enhancement components and choose Change.
    The system lists all customer exits contained in the enhancements included in your project.
    Place the cursor on the menu exit you want to add your own function to.
    Choose Edit component.
    The system displays technical information about the menu entry. It also displays two input fields where you can specify a language and the text you want your menu item to have.
    Enter the name of your menu function (such as Special order method) in the field New text.
    Choose Save text.
    Your special menu function will not appear in the pulldown menu of the corresponding standard transaction until you activate your enhancement project.
    Specifying a menu text and activating your project are not the only steps you need to take to make your own menu item work. After you carry out these steps, your menu item will appear, but it will not call a corresponding function. To attach your menu entry to its corresponding function, you need to create a function module for the function module exit associated with your menu text. This function module exit is part of the same SAP enhancement that contains the menu exit you used. Creating Customer-Specific Function Modules tells you more about how to use function module exits.
    also refer
    MEnu Exit
    http://www.sap-img.com/abap/what-is-user-exits.htm
    Creating menu exits
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/19762743b111d1896f0000e8322d00/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/83/7a18cbde6e11d195460000e82de14a/frameset.htm
    For screen exits.
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    chech these links for user exists its usefull
    http://www.allsaplinks.com/user_exit.html
    Re: Screen exit
    user exit and customer exit
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/561602545a11d1a7020000e829fd11/frameset.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    How to implement screen exit for a SAP standard transaction
    Introduction
    SAP provides standard transactions to enter data into database. But a client may want to maintain some additional information in SAP other than what is provided.
    To make provisions for this, additional screens have to be provided and additional fields must be added into appropriate database table.
    To pave way for this, SAP has provided the option for screen exits. Usually, SAP provides the following:
    An append structure in the database table with the new fields.
    A subscreen area into the standard screen – where the programmer can attach his subscreen of his own program with the new fields.
    A function group under which the new subscreen has to be created with the new fields.
    Function exits to synchronize the PBO and PAI of the standard SAP program with the PBO and PAI of the subscreen – so that data can flow back and forth between the standard SAP program and the program written by the developer for the subscreen. These function modules also exist in the same function group under which the subscreen will have to be developed.
    Finally, a linkage has to be done between the subscreen area of standard SAP screen with the custom subscreen constructed by the developer.
    Typically, SAP provides an enhancement in which the developer can create an append structure, use the function exits to synchronize the PBO and PAI of the standard SAP program and the custom subscreen program, and make the necessary linking( as mentioned above in step 4. But, again, this is not a hard and fast rule. Linking in some case, is also done by configurations.) SAP also usually provides the name of the function group under which the subscreen has to be developed.
    Necessary guidance about implementing a screen exit development is usually available in the Documentation section of the enhancement ( can be availed by transaction SMOD).
    Pre-Requisites
    The developer to work on screen exit should have essential knowledge on the following:
    DDIC concepts, including the knowledge of append structure.
    Concept of SAP Enhancements and implementing them using Projects.
    Concept of function exits.
    Knowledge on Module Pool – including subscreens, Tabstrip controls etc.
    Steps
    Guidelines
    So, a developer can follow the guidelines mentioned below to implement a screen exit to a standard SAP transaction, as and when required:
    Find out the Required Enhancements
    Go to SMOD. Press F4 in the Enhancement field. In the next popup window, click pushbutton ‘SAP Applications’. A list will appear that contains information on all the enhancements, categorized under functional areas. Developer must search for the enhancements relevant to his functional area of interest – for e.g., Purchasing, Asset Accounting, etc.
    Note down the enhancements. Then, come to the initial screen of SMOD and view the documentation of each enhancement to find out which one is required for your development.
    Utilize the Enhancement in a Project
    After you have found one, do as directed in the documentation. Generally, the steps are as follows:
    Create a project using CMOD including your enhancement.
    Create the append structure with new fields.
    Go to the desired function group and create a subscreen with the new fields. Write PBO and PAI for the subscreen, if required.
    Use the function exits in the enhancement to link the PBO and PAI of the subscreen with that of the main SAP program supporting the SAP transaction.
    Maintain necessary linkage between the subscreen area of standard SAP program with the custom subscreen developed along with the custom program name. This can be done in the project (developed by CMOD including the enhancement) or outside as a part of configuration.
    Activate the project.
    Test to ensure that required functionality are met.
    Case Study 1
    Add three new custom fields for Asset master and maintain information for them
    Requirement
    Three fields in the legacy system have to be maintained in Asset master. These fields are:
    Original Asset number – 20 characters
    Location 2 – 15 Characters.
    Model no – 20 characters
    Location 2 should start with ‘L’.
    Pre-Analysis
    Finding out the Enhancement
    As described above, the enhancement is determined. It was found, that enhancement AIST0002 will serve the purpose. It contains the following components (can be viewed by transaction SMOD):
    Exit Type Description EXIT_SAPL1022_001 Function Exit Check of User-Defined Fields when Using Create and Change BAPI EXIT_SAPLAIST_002 Function Exit Transfer Data for User Subscreens in PBO. EXIT_SAPLAIST_003 Function Exit Transfer of User-Defined Fields to SAP Master Data Transactions CI_ANLU Customizing Include Include structure to add new fields
    Studying the Function Exits
    The function module level documentation for the function exits are then viewed from transaction SE37. The documentation clearly laid out for the purpose for their use:
    EXIT_SAPLAIST_002
    Function module Level Documentation
    This function module is called by asset master data maintenance at the start of the dialog. (When changing, it is called after reading of the data from the database; when creating it is called after the transfer of the default values from the asset class and reference asset.) The purpose of the function module is to enable this function group to recognize the master data. For interpreting or controlling master data fields that are important for user fields, it is possible to transfer to global variables at this point, so that they can be recognized when the user subscreens are processed.
    Import Parameters
    Understanding
    This function module is called at the PBO to pass the information retrieved from the database to pass them to the custom subscreen and its underlying program. Import parameter : I_ANLU will be populated with the values for user-defined fields which will be passed to the subscreen program. So, there must be some sort of variable assignment from I_ANLU.
    EXIT_SAPLAIST_003
    Function module Documentation: This function module is called by SAP asset master data maintenance after the screens are processed, but before saving. The purpose of the function module is to transfer fields entered on user sub-screens of SAP asset data maintenance to the database for updating. The export parameter for this function module is:
    Understanding
    This function module will be used to transfer the user entered data in the subscreen fields to the main SAP program, which will then be saved into the database.
    Studying the Documentation of the Enhancement
    The enhancement documentation (as is viewed from the initial screen of SMOD] also supports the idea. Moreover, it informs that we need to develop a subscreen under function group XAIS. This is the function group under which the two function exit modules also exist. So, if the custom subscreen refers to the global data of the function group XAIS, then those values will also be available to these function exits as well.
    Going to SE80 and viewing the function group XAIS helps us to inform that there are three DDIC tables declared for it:
    Deciding the Final course of Action
    After making all the investigations, the final course of action was determined.
    SrlNo Step Justification
    A project has to be created using transaction CMOD where the enhancement AIST0002 will be included.
    Customizing include CI_ANLU has to be created with the custom fields demanded When CI_ANLU will be developed, the custom fields will get appended to the database table ANLU. Also, these fields will be used to create screen fields in the new subscreen.
    A custom subscreen, say, 9000 will be developed under function group XAIS. The screen group for the screen will be ‘CUST’ (or any name). The three custom fields added to table ANLU (by creating CI_ANLU) will be used to create new fields in the screen.
    In the PAI of the subscreen, validation for Location to start with ‘L’ will be added. The subscreen with three new fields has to be developed so that it can be attached to a subscreen area of the asset master screens.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_002’, the following code will be written:-
    ANLU = I_ANLU. I_ANLU is the import parameter of this FM. The value is assigned to the global variable ANLU, referring which the three new subscreen fields are developed. So, data retrieved from database table ANLU will be passed to this FM as I_ANLU by the standard SAP main program. The value will be taken and passed to the global variable of the function group XAIS, so that the three custom fields (referring to ANLU of XAIS) get populated.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_003’, the following code will be written:-
    E_ANLU = ANLU. The changed values in the subscreen fields exist in global variable ANLU for the function group XAIS. This function exit module will pass the data back to the SAP main program as E_ANLU.
    Proper linkage/configuration has to be done so that the new subscreens get linked to the appropriate subscreen area of the Asset master screen. This has to be done – otherwise, the new custom subscreen will not be displayed in the Asset master screens.
    Development
    Creating a Project to include the enhancement
    Go to transaction CMOD and create a project.
    Enter a description for the project. Then, click on the pushbutton ‘Enhancement Assignments’ in the Application Toolbar.
    Enter the name of the enhancement and Save.
    Go to ‘Components’.
    Creating Custom Include for ANLU
    The screen shown below will appear, showing all the enhancement components under the assignment AIST0002. Double-click on the name of the Include Structure to create it.
    Create the include structure with three new fields, as required. Then, save and activate it.
    Develop the subscreen and the program
    Go to transaction SE80. For the function group XAIS, create a new subscreen 9000.
    Create it as subscreen.
    Then, go to the Layout of the screen and create three new fields from Database table ANLU.
    Drag the fields in the screen body and place them.
    Then, save and activate the screen and come back to screen flow editor.
    Create the PAI module to add validation for field “Location 2”, as required .
    Activate the whole function group and come out.
    Write code in the Function Exits to synchronize the programs
    Now, code has to be written in the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows to and fro between the main SAP program and custom subscreen program. For that, go back to transaction CMOD and change the function exits.
    Write code in the function module EXIT_SAPLAIST_002 called once at the beginning of the transaction:
    Write code in EXIT_SAPLAIST_003 to pass the data from the subscreen to SAP main program.
    Then, activate everything – the whole project and come out.
    Complete the configuration to link the subscreen
    The development portion is complete. Now, linking of the subscreen has to be done with the subscreen area of the main program. In most of the cases, this linking can be done in the enhancement itself. But, here, requirement is a bit different. It is done by configuration using SPRO.
    Assets are created under Asset class. And for each asset class, there is a layout assigned to it. For a layout, there are multiple tab pages assigned to it. And, for each tab page, there are multiple screen groups/field groups assigned.
    Here, the requirement is to create these three custom fields in the tab page ‘General’ of asset master screen ( AS01/AS02/AS03/AS91).
    Determine the Layout
    To achieve this, first of all, we need to find out which layout is assigned to asset class 1000.For that, go to transaction AOLK( information has to be obtained from functional consultant).Select the Asset Class ‘1000’ and click on folder ‘General Assignment of Layout’.
    Here, for Asset class 1000, for all the user groups, tab layout SAP is assigned. Since layout ‘SAP’ cannot be changed, it has to be copied and manipulated to include our screen group. Later, the new layout has to be assigned over here.
    Create new tab layout
    Go to transaction AOLA. Copy the tab layout ‘SAP’ to create another layout, say, YSUB.
    System will copy all the settings and will inform you about that.
    Select your newly created layout and double-click on the folder ‘Tab page titles’.
    You want to put your custom fields in the tab page “General”. So, select this tab page entry and double-click on the folder "Position of Groups".
    Here, all the field groups currently residing in the tab-page “General” are shown. Add an entry for your newly created fields.
    Select the group box from the list. An entry will come with “U” padded with the custom subscreen prepared by you.
    Then, save and come out.
    Assign the new Layout to Asset Class
    Now, go to tcode AOLK and assign tab layout YSUB for asset class 1000.
    Save and come out.
    Test the Exit
    Everything is over. Now, go to transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000. You will see your new fields added to the screen. Add values to them…save. Then, enter into the tcodes again to see whether the values entered by you are being displayed or not.
    Original Source: ittoolbox.com
    MENU
    refer
    MEnu Exit
    just refer to the link below for step by step procedure with screen shots
    http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
    Check this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975e643b111d1896f0000e8322d00/frameset.htm
    Menu exits allow you to add your own functions to the pulldown menus in standard R/3 transactions. To take advantage of a menu exit, you first need to create a project as described in the section Creating an add-on project. Then, you must include the SAP enhancement package that contains the menu exit you want to use in your project. From the main screen of the Project management transaction, proceed as follows:
    Select Enhancement components and choose Change.
    The system lists all customer exits contained in the enhancements included in your project.
    Place the cursor on the menu exit you want to add your own function to.
    Choose Edit component.
    The system displays technical information about the menu entry. It also displays two input fields where you can specify a language and the text you want your menu item to have.
    Enter the name of your menu function (such as Special order method) in the field New text.
    Choose Save text.
    Your special menu function will not appear in the pulldown menu of the corresponding standard transaction until you activate your enhancement project.
    Specifying a menu text and activating your project are not the only steps you need to take to make your own menu item work. After you carry out these steps, your menu item will appear, but it will not call a corresponding function. To attach your menu entry to its corresponding function, you need to create a function module for the function module exit associated with your menu text. This function module exit is part of the same SAP enhancement that contains the menu exit you used. Creating Customer-Specific Function Modules tells you more about how to use function module exits.
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is:
    EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    To find a Exit.
    Goto Transaction -- Find The Package
    SMOD >f4>Use the Package here to Find the Exits In the Package.
    Else if you Want to search by Application Area wise ,
    There is one more tab to find the Exits in the Respective Application Area.
    Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
    Now Run ur Transaction to Check if it Triggers.
    Thats it..
    Suppose you need to find out all the user exits related to a tcode.
    1. Execute the Tcode.
    2. Open the SAP program.
    3. Get the Development Class.
    4. Execute Tcode SE84.
    5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
    6. Enter the Development class and execute.
    Check out this thread..
    The specified item was not found.
    1. Type the transaction : system->status-> <PROG. NAME>
    2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
    3. Open CMOD utilities->SAP enhancements
    EDIT->All selections
    4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
    5. The displayed list contains the enhancements names for the transaction You were looking for.
    6. Create a project in CMOD and the code in default include->activate.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    which gives the list of exits for a tcode
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
    For information on Exits, check these links
    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.planetsap.com/userexit_main_page.htm
    User-Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/ab038.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
    These links will help you to learn more on user exits.
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.allsaplinks.com/user_exit.html
    www.sap-img.com/abap/what-is-user-exits.htm
    Also please check these threads for more details about user exits.
    Re: Screen exit
    user exit and customer exit
    user exit
    1. Document on UserExits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    2. Finding User Exits...
    http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
    3. List of all User Exits...
    http://www.planetsap.com/userexit_main_page.htm
    Reward points if helpful.
    Thanks
    Naveen khan
    Message was edited by:
            Pattan Naveen

  • Screen exit for me32k for header and for items

    hi experts,
    i need a screen exit  from me32k to add subscreen in :
    1. items
    2. header
    thanks in advanced,
    dana.

    Hi,
    Just some information on screen exits:
    Screen Exit:
    How to implement screen exit for a SAP standard transaction
    Introduction
    SAP provides standard transactions to enter data into database. But a client may want to maintain some additional information in SAP other than what is provided.
    To make provisions for this, additional screens have to be provided and additional fields must be added into appropriate database table.
    To pave way for this, SAP has provided the option for screen exits. Usually, SAP provides the following:
    An append structure in the database table with the new fields.
    A subscreen area into the standard screen – where the programmer can attach his subscreen of his own program with the new fields.
    A function group under which the new subscreen has to be created with the new fields.
    Function exits to synchronize the PBO and PAI of the standard SAP program with the PBO and PAI of the subscreen – so that data can flow back and forth between the standard SAP program and the program written by the developer for the subscreen. These function modules also exist in the same function group under which the subscreen will have to be developed.
    Finally, a linkage has to be done between the subscreen area of standard SAP screen with the custom subscreen constructed by the developer.
    Typically, SAP provides an enhancement in which the developer can create an append structure, use the function exits to synchronize the PBO and PAI of the standard SAP program and the custom subscreen program, and make the necessary linking( as mentioned above in step 4. But, again, this is not a hard and fast rule. Linking in some case, is also done by configurations.) SAP also usually provides the name of the function group under which the subscreen has to be developed.
    Necessary guidance about implementing a screen exit development is usually available in the Documentation section of the enhancement ( can be availed by transaction SMOD).
    Pre-Requisites
    The developer to work on screen exit should have essential knowledge on the following:
    DDIC concepts, including the knowledge of append structure.
    Concept of SAP Enhancements and implementing them using Projects.
    Concept of function exits.
    Knowledge on Module Pool – including subscreens, Tabstrip controls etc.
    Steps
    Guidelines
    So, a developer can follow the guidelines mentioned below to implement a screen exit to a standard SAP transaction, as and when required:
    Find out the Required Enhancements
    Go to SMOD. Press F4 in the Enhancement field. In the next popup window, click pushbutton ‘SAP Applications’. A list will appear that contains information on all the enhancements, categorized under functional areas. Developer must search for the enhancements relevant to his functional area of interest – for e.g., Purchasing, Asset Accounting, etc.
    Note down the enhancements. Then, come to the initial screen of SMOD and view the documentation of each enhancement to find out which one is required for your development.
    Utilize the Enhancement in a Project
    After you have found one, do as directed in the documentation. Generally, the steps are as follows:
    Create a project using CMOD including your enhancement.
    Create the append structure with new fields.
    Go to the desired function group and create a subscreen with the new fields. Write PBO and PAI for the subscreen, if required.
    Use the function exits in the enhancement to link the PBO and PAI of the subscreen with that of the main SAP program supporting the SAP transaction.
    Maintain necessary linkage between the subscreen area of standard SAP program with the custom subscreen developed along with the custom program name. This can be done in the project (developed by CMOD including the enhancement) or outside as a part of configuration.
    Activate the project.
    Test to ensure that required functionality are met.
    Case Study 1
    Add three new custom fields for Asset master and maintain information for them
    Requirement
    Three fields in the legacy system have to be maintained in Asset master. These fields are:
    Original Asset number – 20 characters
    Location 2 – 15 Characters.
    Model no – 20 characters
    Location 2 should start with ‘L’.
    Pre-Analysis
    Finding out the Enhancement
    As described above, the enhancement is determined. It was found, that enhancement AIST0002 will serve the purpose. It contains the following components (can be viewed by transaction SMOD):
    Exit Type Description EXIT_SAPL1022_001 Function Exit Check of User-Defined Fields when Using Create and Change BAPI EXIT_SAPLAIST_002 Function Exit Transfer Data for User Subscreens in PBO. EXIT_SAPLAIST_003 Function Exit Transfer of User-Defined Fields to SAP Master Data Transactions CI_ANLU Customizing Include Include structure to add new fields
    Studying the Function Exits
    The function module level documentation for the function exits are then viewed from transaction SE37. The documentation clearly laid out for the purpose for their use:
    EXIT_SAPLAIST_002
    Function module Level Documentation
    This function module is called by asset master data maintenance at the start of the dialog. (When changing, it is called after reading of the data from the database; when creating it is called after the transfer of the default values from the asset class and reference asset.) The purpose of the function module is to enable this function group to recognize the master data. For interpreting or controlling master data fields that are important for user fields, it is possible to transfer to global variables at this point, so that they can be recognized when the user subscreens are processed.
    Import Parameters
    Understanding
    This function module is called at the PBO to pass the information retrieved from the database to pass them to the custom subscreen and its underlying program. Import parameter : I_ANLU will be populated with the values for user-defined fields which will be passed to the subscreen program. So, there must be some sort of variable assignment from I_ANLU.
    EXIT_SAPLAIST_003
    Function module Documentation: This function module is called by SAP asset master data maintenance after the screens are processed, but before saving. The purpose of the function module is to transfer fields entered on user sub-screens of SAP asset data maintenance to the database for updating. The export parameter for this function module is:
    Understanding
    This function module will be used to transfer the user entered data in the subscreen fields to the main SAP program, which will then be saved into the database.
    Studying the Documentation of the Enhancement
    The enhancement documentation (as is viewed from the initial screen of SMOD] also supports the idea. Moreover, it informs that we need to develop a subscreen under function group XAIS. This is the function group under which the two function exit modules also exist. So, if the custom subscreen refers to the global data of the function group XAIS, then those values will also be available to these function exits as well.
    Going to SE80 and viewing the function group XAIS helps us to inform that there are three DDIC tables declared for it:
    Deciding the Final course of Action
    After making all the investigations, the final course of action was determined.
    SrlNo Step Justification
    A project has to be created using transaction CMOD where the enhancement AIST0002 will be included.
    Customizing include CI_ANLU has to be created with the custom fields demanded When CI_ANLU will be developed, the custom fields will get appended to the database table ANLU. Also, these fields will be used to create screen fields in the new subscreen.
    A custom subscreen, say, 9000 will be developed under function group XAIS. The screen group for the screen will be ‘CUST’ (or any name). The three custom fields added to table ANLU (by creating CI_ANLU) will be used to create new fields in the screen.
    In the PAI of the subscreen, validation for Location to start with ‘L’ will be added. The subscreen with three new fields has to be developed so that it can be attached to a subscreen area of the asset master screens.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_002’, the following code will be written:-
    ANLU = I_ANLU. I_ANLU is the import parameter of this FM. The value is assigned to the global variable ANLU, referring which the three new subscreen fields are developed. So, data retrieved from database table ANLU will be passed to this FM as I_ANLU by the standard SAP main program. The value will be taken and passed to the global variable of the function group XAIS, so that the three custom fields (referring to ANLU of XAIS) get populated.
    In the custom include of the function exit module ‘EXIT_SAPLAIST_003’, the following code will be written:-
    E_ANLU = ANLU. The changed values in the subscreen fields exist in global variable ANLU for the function group XAIS. This function exit module will pass the data back to the SAP main program as E_ANLU.
    Proper linkage/configuration has to be done so that the new subscreens get linked to the appropriate subscreen area of the Asset master screen. This has to be done – otherwise, the new custom subscreen will not be displayed in the Asset master screens.
    Development
    Creating a Project to include the enhancement
    Go to transaction CMOD and create a project.
    Enter a description for the project. Then, click on the pushbutton ‘Enhancement Assignments’ in the Application Toolbar.
    Enter the name of the enhancement and Save.
    Go to ‘Components’.
    Creating Custom Include for ANLU
    The screen shown below will appear, showing all the enhancement components under the assignment AIST0002. Double-click on the name of the Include Structure to create it.
    Create the include structure with three new fields, as required. Then, save and activate it.
    Develop the subscreen and the program
    Go to transaction SE80. For the function group XAIS, create a new subscreen 9000.
    Create it as subscreen.
    Then, go to the Layout of the screen and create three new fields from Database table ANLU.
    Drag the fields in the screen body and place them.
    Then, save and activate the screen and come back to screen flow editor.
    Create the PAI module to add validation for field “Location 2”, as required .
    Activate the whole function group and come out.
    Write code in the Function Exits to synchronize the programs
    Now, code has to be written in the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows to and fro between the main SAP program and custom subscreen program. For that, go back to transaction CMOD and change the function exits.
    Write code in the function module EXIT_SAPLAIST_002 called once at the beginning of the transaction:
    Write code in EXIT_SAPLAIST_003 to pass the data from the subscreen to SAP main program.
    Then, activate everything – the whole project and come out.
    Complete the configuration to link the subscreen
    The development portion is complete. Now, linking of the subscreen has to be done with the subscreen area of the main program. In most of the cases, this linking can be done in the enhancement itself. But, here, requirement is a bit different. It is done by configuration using SPRO.
    Assets are created under Asset class. And for each asset class, there is a layout assigned to it. For a layout, there are multiple tab pages assigned to it. And, for each tab page, there are multiple screen groups/field groups assigned.
    Here, the requirement is to create these three custom fields in the tab page ‘General’ of asset master screen ( AS01/AS02/AS03/AS91).
    Determine the Layout
    To achieve this, first of all, we need to find out which layout is assigned to asset class 1000.For that, go to transaction AOLK( information has to be obtained from functional consultant).Select the Asset Class ‘1000’ and click on folder ‘General Assignment of Layout’.
    Here, for Asset class 1000, for all the user groups, tab layout SAP is assigned. Since layout ‘SAP’ cannot be changed, it has to be copied and manipulated to include our screen group. Later, the new layout has to be assigned over here.
    Create new tab layout
    Go to transaction AOLA. Copy the tab layout ‘SAP’ to create another layout, say, YSUB.
    System will copy all the settings and will inform you about that.
    Select your newly created layout and double-click on the folder ‘Tab page titles’.
    You want to put your custom fields in the tab page “General”. So, select this tab page entry and double-click on the folder "Position of Groups".
    Here, all the field groups currently residing in the tab-page “General” are shown. Add an entry for your newly created fields.
    Select the group box from the list. An entry will come with “U” padded with the custom subscreen prepared by you.
    Then, save and come out.
    Assign the new Layout to Asset Class
    Now, go to tcode AOLK and assign tab layout YSUB for asset class 1000.
    Save and come out.
    Test the Exit
    Everything is over. Now, go to transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000. You will see your new fields added to the screen. Add values to them…save. Then, enter into the tcodes again to see whether the values entered by you are being displayed or not.
    Original Source: ittoolbox.com
    User Exits:
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is:
    EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    To find a Exit.
    Goto Transaction -- Find The Package
    SMOD >f4>Use the Package here to Find the Exits In the Package.
    Else if you Want to search by Application Area wise ,
    There is one more tab to find the Exits in the Respective Application Area.
    Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
    Now Run ur Transaction to Check if it Triggers.
    Thats it..
    Suppose you need to find out all the user exits related to a tcode.
    1. Execute the Tcode.
    2. Open the SAP program.
    3. Get the Development Class.
    4. Execute Tcode SE84.
    5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
    6. Enter the Development class and execute.
    Check out this thread..
    The specified item was not found.
    1. Type the transaction : system->status-> <PROG. NAME>
    2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
    3. Open CMOD utilities->SAP enhancements
    EDIT->All selections
    4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
    5. The displayed list contains the enhancements names for the transaction You were looking for.
    6. Create a project in CMOD and the code in default include->activate.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    which gives the list of exits for a tcode
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
    For information on Exits, check these links
    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.planetsap.com/userexit_main_page.htm
    User-Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/ab038.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
    These links will help you to learn more on user exits.
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.allsaplinks.com/user_exit.html
    www.sap-img.com/abap/what-is-user-exits.htm
    Also please check these threads for more details about user exits.
    Re: Screen exit
    user exit and customer exit
    user exit
    1. Document on UserExits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    2. Finding User Exits...
    http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
    3. List of all User Exits...
    http://www.planetsap.com/userexit_main_page.htm
    Reward if found helpfull,
    Cheers,
    Chaitanya.

  • User exits for crosschecking from EBAN,ESLL, ESUH @ runtime

    Hi all @ SDN forums,
    question: i have to find an user exit to introduce a new check that has to be executed during the creation of a purchase request (me51n).
    The task must evaluate the data inserted so far in the request doing a check that involves both data from EBAN (position items), from ESLL (service items) and ESUH (limit items). I tried to find out the usr-exit used in the transaction, did also a bit of debugging to find out how it works, but... Seems that the checks already developed in the EXIT_SAPLMEREQ_00* FM family work only on a single kind of row (e.g.: there's a FM to check position items, another FM to check service items) but don't allow to do crosschecking (e.g. "if the field 'foo' in a position item has value 'bar', then check that its service items have the field "X" with value 'Y').
    Can anybody help?
    Thanks in advance
    EDIT: additional info from debug:
    I noticed that the first user exit chunk to be executed when i click on the "check purchase req" is the FM EXIT_SAPLMLSP_030... unfortunately, it holds only values concerning service items but nothing about the position (hier) item. Obviously, a prelimary check on the hier item is necessary to proceed...
    Edited by: Matteo Montalto on Jan 13, 2009 3:04 PM

    JavaWorld has an article on some of the pitfalls that can happen when using Runtime.exec() that might interest you:
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

  • QTP 11 - ALM 11 : QCUtil to set Run Status of all tests in a Test Passed/Failed

    Hi ,
    The following code is not updating the status of the test cases in the Test Set. Can someone throw some light on why it is not updating the status?
    Is QCUTIL not for ALM?
    On error resume next
      Set TestSet = QCUtil.CurrentTestSet
          TestSetName = TestSet.name
          Msgbox "TestSetName : "&TestSetName
          Set TSTestSetList = QCUtil.CurrentTestSet.TSTestFactory.NewList("")
          For each tests in TSTestSetList
            Msgbox "tests.Name :"&tests.Name
              If Instr(tests.Name, "02.03.10.02.02 .100 Google_Search_Program") <> 0 Then                                                
                 'tests.field("TC_STATUS") = "Passed"
                 tests.status = "Passed"
                 tests.Post
                 Exit For
               End If
          Next
        Set TSTestSetList = Nothing
        Set TestSet = Nothing
    Thanks,
    Subaru

    Hi ,
    The following code is not updating the status of the test cases in the Test Set. Can someone throw some light on why it is not updating the status?
    Is QCUTIL not for ALM?
    On error resume next
      Set TestSet = QCUtil.CurrentTestSet
          TestSetName = TestSet.name
          Msgbox "TestSetName : "&TestSetName
          Set TSTestSetList = QCUtil.CurrentTestSet.TSTestFactory.NewList("")
          For each tests in TSTestSetList
            Msgbox "tests.Name :"&tests.Name
              If Instr(tests.Name, "02.03.10.02.02 .100 Google_Search_Program") <> 0 Then                                                
                 'tests.field("TC_STATUS") = "Passed"
                 tests.status = "Passed"
                 tests.Post
                 Exit For
               End If
          Next
        Set TSTestSetList = Nothing
        Set TestSet = Nothing
    Thanks,
    Subaru

  • User exit when saving the financial document (VX11N)

    Hi,
    We are creating financial document as a letter of credit using transaction code VX11N. User would like to have some checking on the fields based on some user defined logic. Is there any user exit that can be used to serve this purpose. I am looking to usre exit similar to when saving sales order (i.e: USEREXIT_SAVE_DOCUMENT in MV45AFZZ).
    Regards

    Hi,
    Check below link for all SD user Exits.
    https://wiki.sdn.sap.com/wiki/display/ERPLO/SDUserexits
    Best regards,
    Anupa

Maybe you are looking for

  • ITunes opens suddenly when opening Safire.

    iTunes opens (with the latest page I have been on) each time I open a page in Safire. What can be wrong ? Has 'Versions' (when logging out from my computer) linked these 2 programs ?

  • Enter Dublin Core XMP in Bridge metadata window

    Someone in the general discussion area suggested I cross-post this question here: I'm trying to find the best way to add some Dublin Core into TIFF files. Basically I'd like to add data to the dc:identifier and dc:relation fields while I'm adding oth

  • One zoom level insufficient

    Is there only the one level of zoom with double tap? I use it and it works a bit, then I double tap again and it zooms out. I want to go closer. The N900's built in browser, lets you zoom in pretty close by circling your finger on it and I assumed FF

  • New ipod won't let me sync indicates 3 error boxes

    I feel like an Ipod reject even thought this is my 4th ipod. While attempting to connect my 4th generation ipod it brings up 3 error messages. 1. Attempting to copy to the disk "ipod" failed. You do not have enough access privileges for the operation

  • Lightroom 2.5 not printing

    Hello I have lightroom 2.5 64 bit and windows 7 64 bit operating system. My epson r800 prints in all other software but not in lightroom since i have reinstalled it following complete computer melt down. I have downloaded latest drivers. I just get t