BAPI  for Creating Service Purchase Order

Hi All,
  I am not able to create service po using bapi, after passing the parameters
  ls_polimits-LIMIT     = '30'.
  ls_polimits-EXP_VALUE = '20'.
  APPEND : ls_polimits TO gt_polimits.
    ls_poserv-quantity = '10'.
    ls_poserv-base_uom = 'AU'.
    ls_poserv-short_text = 'AAAAAAAA'..
    ls_poserv-price_unit = '1'.
    ls_poserv-GR_PRICE = '25'.
    ls_poserv-TAX_CODE = 'V0'.
    ls_poserv-MATL_GROUP = '6AD'.
    APPEND : ls_poserv TO gt_poserv,
           ls_poservx TO gt_poservtxt.
message getting is
500000280 00010 Purchase order still contains faulty items
500000280 00010 No instance of object type PurchaseOrder has been created. External reference:
500000280 00010 Please maintain services or limits
please help me
Appropriate points will be rewarded.
Arun

Dear Seshu,
This is not the problem with data, coz, i am able to create the PO (Service) Manually.
please let me know what all tabeles, i need to pass for this BAPI_PO_CREATE1
presently I am passing
CALL FUNCTION 'BAPI_PO_CREATE1'
       EXPORTING
            poheader          = g_pohdr
            poheaderx         = g_pohdrx
           testrun           = 'X'
       IMPORTING
            exppurchaseorder  = l_ponum
       TABLES
            return            = lt_return
            poitem            = gt_poitem
            poitemx           = gt_poitemx
            poaccount         = gt_poacct
            poaccountx        = gt_poacctx
            POSERVICES        = gt_poserv
            POSRVACCESSVALUES = gt_poservacc
Regards
Arun

Similar Messages

  • BAPI for Creating a PM order(iw34) with reference to a Notification

    Hi All,
    Could anyone help to find the BAPI for creating a PM order with reference to a notification Number.
    I will explain my requirement :
    I want to create a notification from an external Application where i got the BAPI BAPI_ALM_NOTIF_CREATE and keeping this created notification number as Referece or for this notification number  i need a create a PM order.Usually this process in done transaction IW34 in R/3.
    But with the BAPI BAPI_ALM_ORDER_MAINTAIN i can create a PM order but this BAPI doesn't have a input parameter "Notification number ".So i can't use this BAPI.
    Could any suggest for a BAPI where i can create a PM order with reference to a Notification Number.
    Regards,
    Sid

    Hi,
    I have tried with the FM CO_IH_ORDER_GENER_2 but when i executes it gives a error message
    "<i>Service/maintenance order type PM02 not completely maintained in plant
    Message no. IW216
    Diagnosis
    For the selected order type and plant, no check control is maintained in Plant Maintenance/Service in 'Availability Check for Materials, PRTs and Capacities'.
    Procedure
    A check control must be maintained for this combination of order type and plant</i>"".
    And even have a doubt what to enter in this input parameter "GEWRK_OBJTYP"  .
    Kindly help me to solve this issue.
    Regards,
    Sid

  • Need a Bapi to Create a purchase order

    Hi experts,
    Is there a Bapi, to create a 'Purchase Order' from an existing Purchasing document no. marked for deletion.
    Thanks in advance ,
    Hrashit Rungta

    Hi Experts,
    I have used BAPI_PO_CREATE1 to create a purchase order .
    I have successfully created a purchase order when i use this BAPI directly through SE37 ,
    supplying the required inputs.
    But now i am calling  this BAPI inside a program,
    Supplying the same inputs as earlier.
    Buit i am not able to generate a PO.
    I am getting the messages in the Return Table as :|Please enter items first
                                                                                    No instance of object type PurchaseOrder has been created. External referen
                                                                                    Document contains no items
    Can someone suggest What input am i missing ?
    Thanks in advance,
    Harshit Rungta

  • To create service purchase order by giving material code

    hii
    experts
    can i create service purchase order by giving material code in service po.generally when i give material code in service purchase order the system doesnt accept it.is there any other way where i can create po for service material but my condition is that i should give material code.experts do u have any valuable inputs.
    warm regards
    thanks
    subhash kulkarni

    Hi
    Will you please let me know scenarion under which you want to create service PO with material code?
    Service PO is raised with item category D  and account assignment ( K, P etc) which does not permit to assign any material code, only description of service is mentioned at header and details of service is entered at item level. If service code is created in AC03, enter it at item level, all details mentioned in service master will be fetched else you will have to mention details of services manually.
    creation of service code is not mandatory and also not much useful. it helps in reporting and automatic GL determination which can be mapped with the help of material group.
    Hope, it must have enlighten some knowledge.
    Regards
    Susheel

  • Can anyone give me user exit name for create/update purchase order partners

    Hello guys
      Can anyone gives me user exit name for create/update purchase order partners?
      Requirement is to insert/update partner when SC flag is checked while creating/updating purchase order (ME22N / ME21N)  by using user exit.

    hi,
    check these exits.
    Transaction Code - ME21N                    Create Purchase Order
    Enhancement/ Business Add-in            Description
    Enhancement
    MEQUERY1                                Enhancement to Document Overview ME21N/ME51N
    MEVME001                                WE default quantity calc. and over/ underdelivery tolerance
    MM06E001                                User exits for EDI inbound and outbound purchasing documents
    MM06E003                                Number range and document number
    MM06E004                                Control import data screens in purchase order
    MM06E005                                Customer fields in purchasing document
    MM06E007                                Change document for requisitions upon conversion into PO
    MM06E008                                Monitoring of contr. target value in case of release orders
    MM06E009                                Relevant texts for "Texts exist" indicator
    MM06E010                                Field selection for vendor address
    MMAL0001                                ALE source list distribution: Outbound processing
    MMAL0002                                ALE source list distribution: Inbound processing
    MMAL0003                                ALE purcasing info record distribution: Outbound processing
    MMAL0004                                ALE purchasing info record distribution: Inbound processing
    MMDA0001                                Default delivery addresses
    MMFAB001                                User exit for generation of release order
    MRFLB001                                Control Items for Contract Release Order
    MELAB001                                Gen. forecast delivery schedules: Transfer schedule implem.
    AMPL0001                                User subscreen for additional data on AMPL
    LMEDR001                                Enhancements to print program
    LMELA002                                Adopt batch no. from shipping notification when posting a GR
    LMELA010                                Inbound shipping notification: Transfer item data from IDOC
    LMEQR001                                User exit for source determination
    LMEXF001                                Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001                                Customer-Specific Source Determination in Retail
    M06B0001                                Role determination for purchase requisition release
    M06B0002                                Changes to comm. structure for purchase requisition release
    MEFLD004                                Determine earliest delivery date f. check w. GR (only PO)
    MEETA001                                Define schedule line type (backlog, immed. req., preview)
    ME590001                                Grouping of requsitions for PO split in ME59
    M06E0005                                Role determination for release of purchasing documents
    M06E0004                                Changes to communication structure for release purch. doc.
    M06B0005                                Changes to comm. structure for overall release of requisn.
    M06B0004                                Number range and document number
    M06B0003                                Number range and document number

  • Create service purchase order with negative value

    Hello,
    we created a service purchase order using the specific item category (value D) and with the service number details. We posted the entry service sheet with the transatcion code ML81N and we did the invoice verification.
    Now we need to reverse this document flow: in particular our requirement is to create a new purchase order (like a return order for goods) and then to post an entry service sheet with the opposite sign (both cost center and G/L account).
    Do you know whick document type I can use or how i can meet this requirement? Please consider that I cannot reverse the original document but I need to create new ones.
    Thanks in advance,
    Alessandro

    check below thread;
    service order
    yogesh

  • BAPI for creating service entry

    Hi all,
    Please let me know if there is a BAPI for creatuing service entry. Please provicde sample code.
    Thanks,
    Rajan

    Hi,
    Try this BAPI " BAPI_SERVICE_CREATE ".
    Regards
    Milan

  • Create service Purchase Order automatically at goods issue in VL02N.

    Hi Friends,
    Please give me steps on how to write the ABAP code To Create  service PO automatically at goods issue.
    Technical Info
    •     BAPI BAPI_PO_CREATE1 is to be used for creating the service PO.
    •     The service PO will be only created for YLF deliveries.
    •     The PO will be created only if the shipping conditions field ( LIKP-VSBED ) has any value except 3rd party or Customer pick-up.
    •     The PO needs to be created when goods issue is performed on the delivery.
    •     The PO needs to be created with the following values :
    1.     Purchase order type : YB
    2.     Vendor : Header partner function SP, Carrier
    3.     Plant : LIPS-WERKS
    4.     Material : 10
    5.     Account Assignment Category : K
    6.     PO Quantity : 1      
    7.     Net price : LIKP-NETWR
    8.     Cost Center : 54434
    •     On failing to save the PO, the error message should be generated so that the user knows the error and can fix the error and create the PO manually.
    Please help for this urgent req.
    thanks.
    Message was edited by:
            anjan
    Message was edited by:
            anjan

    Sure. Here it is:
    Go to SPRO.
    Logistics Execution
      Transportation
        Shipment cost
          Shipment cost document
             Shipment cost type and Item category.
    For the shipment cost item category you are processing, lets say standard 0001 (Transportation costs). double click on it.
    You will find all you need in the tab SETTLEMENT.
    There, there is a field GENERATE PO.
    Select one of the options:
         Do not generate purchase order
    A     Generate purchase order for validity period of 1 day
    B     Generate purchase order for validity period of 1 week
    C     Generate purchase order for validity period of 1 month
    Once the shipment cost is created and transfered to MM(settled), if there no open PO for the carrier, the system creates one.
    Good luck,
    Leonardo De Araujo

  • Reg bapi for creation of purchase order

    hai to all,
    i have to upload purchase orders from  legacy file to R/3 system
    certain order having more than 50 line items
    so please any one send me <b>stardard bapi program or bdc program for me21n</b> transaction which will suitable for my senario.
    please send asap
    regards
    vijay

    hai
    i am trying to create po using bapi
    the following code explains
    constants : c_x value 'X'.
      data: del_date type sy-datum.
      data: pohead  type bapimepoheader.
      data: poheadx type bapimepoheaderx.
      data: exp_head type bapimepoheader.
      data: t_return_out  type table of bapiret2 with header line,
            wa_return_out  TYPE bapiret2.
      data: poitem  type table of bapimepoitem with header line.
      data: poitemx type table of bapimepoitemx with header line.
      data: posched  type table of bapimeposchedule with header line.
      data: poschedx type table of bapimeposchedulx with header line.
      data: ex_po_number type bapimepoheader-po_number.
    Header Level Data
      pohead-comp_code = '1011'.
      pohead-doc_type   = 'NB'     .
      pohead-creat_date = sy-datum   .
      pohead-vendor = 'A1138'.
      pohead-purch_org = 'DOMS'.
      pohead-pur_group = 'MFR'.
      pohead-langu      = sy-langu   .
      pohead-doc_date   = sy-datum.
      poheadx-comp_code  = c_x.
      poheadx-doc_type   = c_x.
      poheadx-creat_date = c_x.
      poheadx-vendor     = c_x.
      poheadx-langu      = c_x.
      poheadx-purch_org  = c_x.
      poheadx-pur_group  = c_x.
      poheadx-doc_date   = c_x.
    Item Level Data
      poitem-po_item  = 1.
      poitem-material = '000000000100001079'.
      poitem-plant    = 'HO01'.
    poitem-stge_loc = ''.
      poitem-quantity = 1.
      append poitem.
      poitemx-po_item    = 1.
      poitemx-po_itemx   = c_x.
      poitemx-material   = c_x.
      poitemx-plant      = c_x .
      poitemx-stge_loc   = c_x .
      poitemx-quantity   = c_x .
      poitemx-tax_code   = c_x .
      poitemx-item_cat   = c_x .
      poitemx-acctasscat = c_x .
      append poitemx.
    Schedule Line Level Data
    posched-po_item        = 1.
    posched-sched_line     = 1.
    posched-del_datcat_ext = 'D'.
    del_date = sy-datum + 1.
    write del_date to posched-delivery_date.
    posched-deliv_time     = '000001'.
    posched-quantity       = 1.
    append posched.
    poschedx-po_item        = 1.
    poschedx-sched_line     = 1.
    poschedx-po_itemx       = c_x.
    poschedx-sched_linex    = c_x.
    poschedx-del_datcat_ext = c_x.
    poschedx-delivery_date  = c_x.
    poschedx-quantity       = c_x.
    append poschedx.
      call function 'BAPI_PO_CREATE1'
           EXPORTING
                poheader         = pohead
                poheaderx        = poheadx
                testrun          = ' '
           IMPORTING
                exppurchaseorder = ex_po_number
                expheader        = exp_head
           TABLES
                return           = t_return_out
                poitem           = poitem
                poitemx          = poitemx.
               poschedule       = posched
               poschedulex      = poschedx.
    call function 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
               wait = 'X'.
    if not ex_po_number is initial.
       call function 'DEQUEUE_ALL'.
    else.
       call function 'DEQUEUE_ALL'.
       message i036.
    endif.
    **endform. " create_po
    IF ex_po_number IS NOT INITIAL.
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
          PERFORM show_result.
    ELSE.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          PERFORM show_result.
        ENDIF.
    *&      Form  show_result
          text
    -->  p1        text
    <--  p2        text
    FORM show_result .
      LOOP AT t_return_out INTO wa_return_out.
        write : ex_po_number.
        WRITE : / wa_return_out-type,
                / wa_return_out-id,
                / wa_return_out-number,
                / wa_return_out-message,
                / wa_return_out-log_no,
                / wa_return_out-log_msg_no,
                / wa_return_out-message_v1,
                / wa_return_out-message_v2,
                / wa_return_out-message_v3,
                / wa_return_out-message_v4,
                / wa_return_out-parameter,
                / wa_return_out-row,
                / wa_return_out-field,
                / wa_return_out-system.
      ENDLOOP.
    <b>iam geting the error such that</b>
    E                                                                            
    BAPI                                                                         
    001                                                                          
    No instance of object type PurchaseOrder has been created. External reference:
    000000                                                                       
    PurchaseOrder                                                                
    POHEADER                                                                     
            1                                                                 
    E                                                                         
    ME                                                                        
    062                                                                       
    Account assignment mandatory for material 100001079 (enter acc. ***. cat.)
    000000                                                                    
    100001079                                                                 
    POITEM                                                                    
    <b>how to correct this error</b>
    regards
    vijay

  • Create fixed assets from within the transaction for creating the purchase order

    Hello All,
    I have gone through the notes on help.sap.com related to automatic creation of asset master record at the time of creating purchase order.  I am not sure how do we achieve this?
    Link to the notes on help.sap.com
    SAP Library - Asset Accounting (FI-AA)
    Any suggesstions from the expert group is appreciated.
    Thank you,
    Vinay

    Hi Vinay
    I know there is a feature whereby you assign asset classes per material group and then you create assets from within the PO. I never used it though
    Let me tell you one thing or rather ask you. Will you as a finance consultant be willing to let a MM guy create the assets??
    Or will a MM guy be willing to create it?? If you allow them, you should be ready for surprises.
    Honestly, this is a feature not worth exploring unless a FI guy is willing to create the PO. I would suggest the creation of asset masters should be with FI only
    Br. Ajay M

  • BAPI  for create/change purchase info record

    Hi All,
    Could any one suggest me the BAPI for the create/change purchase info record(ME11/ME12).
    Earliest can be appriciable.
    Regards
    Anil

    Hi,
         I did not get any bapi related to create/change purchase info. But i can give u list of purchase info . if u got revert back to me
    Reward if it is usefull..
    Bye.
    BAPI_INFORECORD_GETLIST

  • Creating a purchase order in web dynpro for java.........

    hello all,
    i am new to web dynpro for java.i have already done an application
    "Creating a Web Dynpro Application Accessing ABAP Functions" this application
    have good document on sdn.
    this application is working fine .
    Now i got an requiremnt for creating a purchase order in web dynpro for java.
    in normal report when i call  the bapi the parameter are the header, headerx,item, itemx is an internal table.
    CALL FUNCTION 'BAPI_PO_CREATE1'
      EXPORTING
        POHEADER                     = HEADER
        POHEADERX                    = HEADERX
      POADDRVENDOR                 =
      TESTRUN                      =
    IMPORTING
      EXPPURCHASEORDER             =
      EXPHEADER                    =
      EXPPOEXPIMPHEADER            =
    TABLES
       RETURN                       = RETURN
       POITEM                       = ITEM
       POITEMX                      = ITEMX.
    i just want to know how can i fill these internal table in web dynpro
    for java to create an application accessing "Bapi_po_create" .
    Thanks

    Hi Gopal,
    I'm not sure what is your issue, it seems you're not really understanding how the Model structure works in WDP.
    I'll assume few things here, like you know how to Import the Model into the WDP, and you know a little bit about what Java Classes will represent this Model in the Project.
    Try these steps:
    1. Import your Model into the Project;
    2. Open your Component Modeler, create a Data Link between your Model / Component (Or Custom Controller, as you prefer)
      - You can also use the "Apply Template -> Service Controler"
    3. Map the Input of your Model as the Main Node, check the Input Tables (you prob. will have two, POITEM = ITEM - POITEMX = ITEMX)
    4. Also, check the Return box, since this is BAPI return (You can use to display Backend messages)
    Now you have the Model mapped into your Controller, you need to develop the Java function to execute it.
    1. Create a new Input class, like
    BAPI_PO_CREATE1_Input purchaseOrderCreateInput = new BAPI_PO_CREATE1_Input();
    2. Bind your Input Node, in the Controller, with your Input Class;
    wdContext.nodeBAPI_PO_CREATE1().bind(purchaseOrderCreateInput);
    3. Set any Import parameters you need:
    purchaseOrderCreateInput.setEXPPURCHASEORDER(XXXX);
    4. To Add references to the Table, you will perform something like:
    First, you need to know what "Structure" you need to add (POItem Structure) - You have a Java class that represents that Structure..
    POITEM_Element poItemElement = new POITEM_Element();
    poItemElement.setPROPERTY();   /// Set your Properties
    purchaseOrderCreateInput.getPOITEM().add(poItemElement);
    5. Execute your Input,
    purchaseOrderCreateInput .execute();
    Hope it helps,
    Regards,
    Daniel

  • BAPI needed  for  Goods Receipt Purchase Order(Transaction : MIGO)

    Hi all,
    We have a requirement where in we need to post the documents throuh BAPI for Goods receipt Purchase order(Transaction: MIGO).
    Any inputs on this..is highly appreciable...
    thanks in advance...
    regards..
    prathima.

    Hi,
    use 'BAPI_GOODSMVT_CREATE'
    Check this sample.
    code
    REPORT ZRICH_0001 .
    Structures for BAPI
    DATA: GM_HEADER TYPE BAPI2017_GM_HEAD_01.
    DATA: GM_CODE TYPE BAPI2017_GM_CODE.
    DATA: GM_HEADRET TYPE BAPI2017_GM_HEAD_RET.
    DATA: GM_ITEM TYPE TABLE OF
    BAPI2017_GM_ITEM_CREATE WITH HEADER LINE.
    DATA: GM_RETURN TYPE BAPIRET2 OCCURS 0 WITH HEADER LINE.
    DATA: GM_RETMTD TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
    CLEAR: GM_RETURN, GM_RETMTD. REFRESH GM_RETURN.
    Setup BAPI header data.
    GM_HEADER-PSTNG_DATE = SY-DATUM.
    GM_HEADER-DOC_DATE = SY-DATUM.
    GM_CODE-GM_CODE = '04'. " MB1A
    Write 971 movement to table
    CLEAR GM_ITEM.
    MOVE '412' TO GM_ITEM-MOVE_TYPE .
    MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
    MOVE '3800533484' TO GM_ITEM-MATERIAL.
    MOVE '1' TO GM_ITEM-ENTRY_QNT.
    *MOVE 'PC' TO GM_ITEM-ENTRY_UOM.
    MOVE '1060' TO GM_ITEM-PLANT.
    MOVE '0007' TO GM_ITEM-STGE_LOC.
    *MOVE '0901' TO GM_ITEM-MOVE_REAS.
    MOVE 'P203601001' TO GM_ITEM-WBS_ELEM.
    MOVE 'P203601001' TO GM_ITEM-VAL_WBS_ELEM.
    APPEND GM_ITEM.
    Call goods movement BAPI
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
    GOODSMVT_HEADER = GM_HEADER
    GOODSMVT_CODE = GM_CODE
    IMPORTING
    GOODSMVT_HEADRET = GM_HEADRET
    MATERIALDOCUMENT = GM_RETMTD
    TABLES
    GOODSMVT_ITEM = GM_ITEM
    RETURN = GM_RETURN.
    IF NOT GM_RETMTD IS INITIAL.
    COMMIT WORK AND WAIT.
    CALL FUNCTION 'DEQUEUE_ALL'.
    ELSE.
    COMMIT WORK AND WAIT.
    CALL FUNCTION 'DEQUEUE_ALL'.
    ENDIF.
    WRITE:/ GM_RETMTD.
    LOOP AT GM_RETURN.
    WRITE:/ GM_RETURN.
    ENDLOOP.
    [/code]
    Also check the Bapis
    BAPI_PO_CREATE --> To create Purchase Order
    BAPI_PO_CHANGE --> To change Purchase Order
    BAPI_PO_GETDETAIL --> Todisplay Purchase Order
    Regards,
    Raj.

  • Will Service Purchase Order will create  GR/IR ?

    Hi,
    This is with referece to creating Service purchase order.
    I Created Service Purchase order but when i am doing GR/IR MIGO and Invoice Verification MIRO.it is not allowing me.my question is for Service Purchase order whether we can do GR/IR and also MIRO Transactions.
    It will be help ful if you can send some configuration steps.
    Thanks
    Micheal

    Hi,
    If you are using item category B then you are not using Service Purchase orders.
    Service POs use item category D and are quite different to "normal" POs that is why everyone has been getting confused by your problem.
    What you are doing is using normal purchase orders but usinf them for ordering services (with a limit on the value, i.e. item category B).
    So let us get this straight first. You are using normal purchase orders with item category B.
    If you want to control  the GR flags then this is done by configuring the Account assignment categories, using the config transaction (Not by document type, this controls which fields are visble or changeable).
    The path to the config is MM > Purchasing > Account assignment > Maintain account assignment categories.
    So it all depends on which account assignment category you use and all are available for your "service" POs (except blank) and non-service POs.
    I hope this clarifies the issue.
    Steve B

  • Service Purchase Order will create GR/IR

    Hi,
    This is with referece to creating Service purchase order.
    I Created Service Purchase order but when i am doing GR/IR MIGO and Invoice Verification MIRO.it is not allowing me.my question is for Service Purchase order whether we can do GR/IR and also MIRO Transactions.
    It will be help ful if you can send some configuration steps.
    Thanks
    Micheal

    Hi,
    I Know the meaning of consignment.
    Please can you help on the following.
    1.Whether the Purchase orders with consignment is treated different with normal purchase orders.
    2.What is the process of creating Puchase orders with the consignment..
    3.Whether It will have GR/IR.
    4.Please can you provide the Configuration steps in creating Consignment PO.
    Thanks
    Micheal

Maybe you are looking for

  • Photoshop cc 2014 freezes after start

    Mac Book pro retina 2014, osx 10.9.5, creative cloud for team; 1) Launch Photoshop cc 2014 2) Photoshop FREEZES (can't open or work or save images) 3) "Applicazione non risponde" 4) Creating a new account on mac; Photoshop works in the new account; 5

  • Customizing Entity Object SQL Query prior to Insert?

    I am using an ADF BC Entity Object to store values from a multi-page form input process. At the end of the process, I plan to call a method that will programmatically take the values from the Entity Object and insert a new row to the database. I need

  • Bought Photoshop CC and Lightroom 5 but not able to download

    bought Photoshop CC and Lightroom 5 but not able to download. while the creative cloud kept update of Photoshop CC but I'm unable to open it.

  • New Mac Pro - Best bang for the buck

    I'm looking to replace my G5 2.7 with a new MP. I'll be running Logic, Reason, Photoshop, Dreamweaver, video conversion, ... I'm thinking about either the Two 2.4GHz Quad-Core Intel Xeon "Westmere" (8 cores) with 8GB ram or One 3.2GHz Quad-Core Intel

  • Custom Connector Tool - How can I tie into LV IDE?

    In my spare time I have written a little tool to help me wire the connector pane, similar in spirit to the icon editor.  The eyestrain and wrist pain from going back and forth across the FP was one thing, but all of my mice seem to be junky making it