Userexit or BADI in ME21n

I have requirement that when I create PO in ME21N,
The Purchasing group should come automatically from Z table based on User ID in the ORG.Data Tab of header.
Next is when I enter Material in Item,It should Check whether that material exists in that Purchasing group or not.
This 2 enhancement I need.
Can anybody suggest me which userexit or BADI i should use with details.
Thanks
Kumar N

HiKumar ,
Pls check the following steps to find the USER EXIT And BADI For ME21n:
If u want to search the relevant exit for this, then the procedure is like this.
Run the transaction ME21N.
Go to Sytem->status.
Get the package name from the dialog.
Go to transaction SMOD and enter  F4 help in Enhancement field,then click on Information System write down the package name there its show u all the User exit.
or
If u want to search the relevant BADI, then the procedure is
Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
In 'Display' mode, go to 'Methods' tab.
Double click the method 'Get Instance' to display it source code.
Set a breakpoint on 'CALL METHOD
cl_exithandler=>get_class_name_by_interface'.
Then run your transaction ME21N.
The screen will stop at this method.
Check the value of parameter 'EXIT_NAME'. It will show you
the BADI for that transaction.
The BADI Used For the transaction ME21N is ME_PROCESS_PO
Then Run the transaction SE18,selectcheck box BADI write the BADI name cliuck on Display ,go for the documentation for that BADI ,then u fing which methods is suitable for ur requirment .
I hope this will ok for u.
Thank u ,
Sanjit

Similar Messages

  • PO Header Test userexit or BADI in ME21n

    Hi,
    When I create PO in ME21N,
    I want to make header text field mandaory.Which userexit or BADI I should use.
    Can anybody suggest me with simple code.
    Thanks
    kumar

    Hi KUMAR,
    Header text creation or modifications or making them mandatory, etc is part of customizing...
    You would need a customizing request for that...
    and then go to Transaction SPRO. Its the SAP Customizing Implementation Guide.
    and then drill down the following links...
    Material Management >> Purchasing >> Purchase Order >> Text for Purchase Orders >> Define Text Types for Header Texts
    you can create header texts from here...possibly u'll find a way to make the existing header text field mandatory...
    Will tell you in detail as soon as possible...till then do try this out...
    Regards,
    Radhika

  • Is any Userexit or BAdi or enhanc. point while create PO with reference .

    Hello Experts,
    Is there any Userexit or BAdI or Enhancement point while create P.O with reference .
    My requirement is while creating the P.O.(ME21N) with reference, The payment terms is getting copied from the reference P.O. and become grayed out (Non editable) instead of that user want the payment terms which we have maintained in (LFB1) Vendor Master.
    Please help me to resolve my problem.
    Edited by: Ketanp on Mar 7, 2012 11:48 AM

    Hi
    Try with badi ME_PROCESS_PO_CUST
    Regards
    Eduardo

  • Userexit or BADI for program *RMMRP000* for background job

    Hi,
    We are scheduling background job for MRP through SM36 using program  RMMRP000 or Through Transaction MDBT (MDBT is calling program RMMRP000) which creates PR (through background job).
    I want to default one field in PR (PO Price field in valuation tab in PR default to gross) using any userexit or BADI.
    Can any body suggest me userexit or BADI for program RMMRP000 for background job
    Regards.

    Hi,
    1. The below are the List of  Userexit for this MDBT t.CODE.
    2. But i dont see any one helping to resolve your issue.
    3. May be you should lookg at the Userexit for me21n or relevant Purhcase requisition creation transaction.
    reg
    dsk

  • Userexit or BADI to change service price when create PO reference from PR

    Hi,
    I need userexit or Badi to change the gross price ( ESLL-TBTWR ) when create PO reference from PR.  Currently , when I do this it will recalculate the gross price based on the service master and ignoring whatever the price put in PR.  Could anyone tell me userexit or Badi that would allow me to change the price when i create PO from PR via ME21N.
    Thanks,
    Gilbert

    Hi Gilbert,
    You can try using Function Exit EXIT_SAPLMLSP_030 of Enhancment SRVESLL.
    This Function Exit has ESLL data as changing parameter.
    But this Function Exit is called from a number of transaction. So do put in correct checks (like sy-tcode or sy-ucomm) before substituting any values. If proper checks are not put in then values may be substituted when this function exit is called from other transactions (like tcode "ML81N").
    Hope this will help.
    Regards,
    Abhisek.

  • UserExit or BADI in VL01n or VL10x after or before the log (VBFS)

    Hello
    We are trying to update the sale order when proceeding to delivery creation with VL01n or VL10a. If the delivered quantity LFIMG will be egal to 0 we want to changed the confirmed quantity in the sale order.
    We are using the function sd backorder update in the userexit SAVE in MV50AFZ1 with help of the log (VBFS CVBFS) but when there is no complete item the delivery is not saved and in the userexit move_field_to_lips we don't have the last message into VBFS before have the final log.
    Did you have an idea to resolve my problem ?
    Is there an userexit or BADI for doing this ?
    Thanks

    hi eric,
    Welcome to SDN forum.
    Transaction Code - <b>VL01N </b>                   Create Outbound Dlv. with Order Ref.
    <b>Exit Name           Description</b>
    V02V0001            Sales area determination for stock transport order
    V02V0002            User exit for storage location determination
    V02V0003            User exit for gate + matl staging area determination (headr)
    V02V0004            User Exit for Staging Area Determination (Item)
    V50PSTAT            Delivery: Item Status Calculation
    V50Q0001            Delivery Monitor: User Exits for Filling Display Fields
    V50R0001            Collective processing for delivery creation
    V50R0002            Collective processing for delivery creation
    V50R0004            Calculation of Stock for POs for Shipping Due Date List
    V50S0001            User Exits for Delivery Processing
    V53C0001            Rough workload calculation in time per item
    V53C0002            W&S: RWE enhancement - shipping material type/time slot
    V53W0001            User exits for creating picking waves
    VMDE0001            Shipping Interface: Error Handling - Inbound IDoc
    VMDE0002            Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0003            Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0004            Shipping Interface: Message SDPACK (Packing, Inbound)
    These are the user exit available for VL01N there is no user exit for VL10a transaction.
    Reward with points if it is helpful
    Cheers
    Alfred

  • Userexit or BADI in O4C1/O4C2

    Dear SAP Experts,
    I would like to implement some userexit or Badi in order to control what the user inserts in a field of the O&G transaction O4C1/O4C2. Specifically, I need to obligate the user to fill the field OIGC-TU_ID. I could not figure out so far, that there is any way to do it, not by codification nor by configuration. If you have any suggestions, I would appreciate it a lot.
    Thank you very much in advance,
    Regards
    Dominik Ley

    Dominc,
    Please check the user exits mentioned below
    customer-function '140'
    customer-function '120'
    customer-function '110'
    If none works then check
    OIG_DG_DATA_MAINTAIN
    Note : please take help of Technical person or break point whether it suits ur requirement
    Hope this would help .
    Regards
    Ramvelu

  • Production Order Userexit or BADi

    Hi Everybody,
    Can someone tell me if there is a userexit or BADi which gets triggered when the we are doing availability check from VA01 to create the Production Order?
    This is an urgent requirement.Any help will be greatly appreciated and rewarded :).
    Thanks,
    Supriya Manik.

    Hi Siri,
    As far as I know you can't get hold of the availability check at the Sales Order leve or MRP level.
    According to my knowledge when you enter the material and quantity control goes to MM03 by entering the plant in MRP3 view. From there it will pick the availability check and determines rest of the thing.
    So check point would be at ATP Quantity level. At that point you need to check exact include to add the code.
    Check the program SAPMV45A and in that u will find lot of includes in that. Specifically check the includes MV45AIZZ and MV45AFZZ. If you check those includes u will come to know the exact triggering point from  there you can write the code in the user exist what i mentioned above.

  • Badi for me21n,me22n,me23n

    HI experts,
          CAn any one help me out infinding a badi for me21n,me22n,me23n, which triggered on every press of enter key or some other check, so that i could kept a validation for the header and item fields of the t.codes

    Hi,
    Go for BADI,
    Follow the below steps to find out what all BADI's are called when you press any button in any transaction.
    1) Goto se24 (Display class cl_exithandler)
    2) Double click on the method GET_INSTANCE.
    3) Put a break point at Line no.25 (CASE sy-subrc).
    Now
    4) Execute SAP standard transaction
    5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
    6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    7) This way you will find all the BADIs called on click of any button in any transaction.
    Reward points if useful....
    Regards
    AK

  • User Exit or BADI for ME21N

    Hi All,
    We are in a situation where in we need to Change the Distribution Channel in the Shipping tab of ME21N transaction.
    Previously, the distribution channel is being picked up form the config (SPRO - Shipping data for plant) but before it picks up from the config we need to change it and update the other distribution channel in the PO.
    We have tried with most of the User exits and BADIs but all of those are of no use for our requirement, as these user exits and badis are triggered after we click on save button. But we need to change the Distribution channel at the point of determination of Shipping data by the system i.e. before save.
    Can any one please help me out with this situation with some User exits or BADIs that are triggered before save button.
    Note: The Shipping data is in EKPV table. We need to change the VTWEG field in EKPV.
    Thanks in Advance,
    Asif Ali Khan

    Asif,
    see these are Exits and BADI for ME21n,
    Enhancement/ Business Add-in            Description                                                                               
    Enhancement                                                                               
    MEFLD004                                Determine earliest delivery date f. check w. GR (only PO)      
    MELAB001                                Gen. forecast delivery schedules: Transfer schedule implem.    
    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                       
    LMEKO001                                Extend communications structure KOMK for pricing               
    LMEKO002                                Extend communications structure KOMP for pricing               
    MM06E011                                Activate PReq Block                                            
    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             
    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                             
    M06B0002                                Changes to comm. structure for purchase requisition release  
    M06B0001                                Role determination for purchase requisition release                                                                               
    Business Add-in                                                                               
    ME_PROCESS_PO                           Enhancements for Processing Enjoy Purchase Order: Intern.    
    ME_PROCESS_COMP                         Processing of Component Default Data at Time of GR: Customer 
    ME_PO_SC_SRV                            BAdI: Service Tab Page for Subcontracting                    
    ME_PO_PRICING_CUST                      Enhancements to Price Determination: Customer                
    ME_PO_PRICING                           Enhancements to Price Determination: Internal                
    ME_INFOREC_SEND                         Capture/Send Purchase Info Record Changes - Internal Use     
    ME_HOLD_PO                              Hold Enjoy Purchase Orders: Activation/Deactivation          
    ME_GUI_PO_CUST                          Customer's Own Screens in Enjoy Purchase Order               
    ME_FIELDSTATUS_STOCK                    FM Account Assignment Behavior for Stock PR/PO               
    ME_DP_CLEARING                          Clearing (Offsetting) of Down Payments and Payment Requests  
    ME_DEFINE_CALCTYPE                      Control of Pricing Type: Additional Fields                   
    ME_COMMTMNT_REQ_RE_C                    Check of Commitment Relevance of Purchase Requisitions       
    ME_COMMTMNT_REQ_RELE                    Check of Commitment Relevance of Purchase Requisitions       
    ME_PROCESS_PO_CUST                      Enhancements for Processing Enjoy Purchase Order: Customer   
    SMOD_MRFLB001                           Control Items for Contract Release Order                     
    MM_EDI_DESADV_IN                        Supplementation of Delivery Interface from Purchase Order    
    MM_DELIVERY_ADDR_SAP                    Determination of Delivery Address                            
    ME_WRF_STD_DNG                          PO Controlling Reminder: Extension to Standard Reminder      
    ME_TRIGGER_ATP                          Triggers New ATP for Changes in EKKO, EKPO, EKPV             
    ME_TRF_RULE_CUST_OFF                    BADI for Deactivation of Field T161V-REVFE                   
    ME_TAX_FROM_ADDRESS                     Tax jurisdiction code taken from address                     
    ME_REQ_POSTED                           Purchase Requisition Posted                                                                               
    ME_REQ_OI_EXT                           Commitment Update in the Case of External Requisitions     
    ME_RELEASE_CREATE                       BAdI: Release Creation for Sched.Agrmts with Release Docu. 
    ME_PURCHDOC_POSTED                      Purchasing Document Posted                                 
    ME_PROCESS_REQ_CUST                     Enhancements for Processing Enjoy PReqs: Customer          
    ME_PROCESS_REQ                          Enhancements for Processing Enjoy PReqs: Internal          
    ME_COMMTMNT_PO_REL_C                    Check for Commitment-Relevance of Purchase Orders          
    ME_CCP_BESWK_AUTH_CH                    BAdI for authorization checks for procuring plant          
    ME_CCP_ACTIVE_CHECK                     BAdI to check whether CCP process is active                
    ME_BSART_DET                            Change document type for automatically generated POs       
    ME_BAPI_PR_CREATE_02                                                                               
    ME_BAPI_PR_CREATE_01                                                                               
    ME_BAPI_PO_CREATE_02                                                                               
    ME_BAPI_PO_CREATE_01                                                                               
    ME_BADI_DISPLAY_DOC                     BAdI for Internal Control of Transaction to be Invoked     
    ME_ACTV_CANCEL_PO                       BAdI for Activating the Cancel Function at Header Level    
    MEGUI_LAYOUT                            BAdI for Enjoy Purchasing GUI                              
    EXTENSION_US_TAXES                      Extended Tax Calculation with Additional Data              
    ARC_MM_EKKO_WRITE                       BAdI: Enhancement of Scope of Archiving (MM_EKKO)          
    ARC_MM_EKKO_CHECK                       BAdI: Enhancement of Archivability Check (MM_EKKO)         
    ME_CCP_DEL_DURATION                     Calc. of Delivery Duration in CCP Process (Not in Standard)
    ME_COMMTMNT_PO_RELEV                    Check for Commitment-Relevance of Purchase Orders          
    ME_COMMITMENT_STO_CH                    BadI for checking if commitments for STOs are active       
    ME_COMMITMENT_RETURN                    Commitment for return item                                 
    ME_CIP_REF_CHAR                         Enables Reference Characteristics in Purchasing            
    ME_CIP_ALLOW_CHANGE                     Configuration in Purchasing: Changeability Control         
    ME_CIN_MM06EFKO                         Copy PO data for use by Country version India              
    ME_CIN_LEINRF2V                         BADI for LEINRF03 excise_invoice_details                   
    ME_CIN_LEINRF2R                         BADI for CIN India - Delivery charges                      
    ME_CHECK_SOURCES                        Additional Checks in Source Determination/Checking         
    ME_CHECK_OA                             Check BAdI for Contracts                                   
    ME_CHECK_ALL_ITEMS                      Run Through Items Again in the Event of Changes in EKKO    
    ME_CHANGE_OUTTAB                        Enrich ALV Output Table in Purchasing                      
    ME_CHANGE_CHARACTER                     Customer-Specific Characteristics for Product Allocation
    Amit.

  • USEREXIT or BADI or BTE

    Dear All,
    Is there any Userexit or Badi or BTE available for f-92. Please advise me.
    Thanks in advance,
    RK.

    Check the below exits and BADI
    Transaction Code - F-92                     Asset Retire. frm Sale w/ Customer
    The application area is: FBAS
    Exit Name           Description
    F050S001            FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
    F050S002            FIDCC1: Change IDoc/do not send
    F050S003            FIDCC2: Change IDoc/do not send
    F050S004            FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send
    F050S005            FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document
    F050S006            FI Outgoing IDoc: Reset Clearing in FI Document
    F050S007            FIDCCH Outbound: Influence on IDoc for Document Change
    F180A001            Balance Sheet Adjustment
    FARC0002            Additional Checks for Archiving MM Vendor Master Data
    RFAVIS01            Customer Exit for Changing Payment Advice Segment Text
    RFEPOS00            Line item display: Checking of selection conditions
    RFKORIEX            Automatic correspondence
    SAPLF051            Workflow for FI (pre-capture, release for payment)
    Badi Name            Description
    ADJUST_NET_DAYS      Net due days adjustment in FI document
    BADI_F040_SCREEN_600 Example for Screen Enhancement in F040 Screen 600
    BADI_F040_SCREEN_600 Test Badi F040 Screen 600
    BADI_FDCB_SUBBAS01   Example for Screen Enhancement 1 on FDCB Basic Data Screen
    BADI_FDCB_SUBBAS01   FM Implementation for BADI_FDCB_SUBBAS01
    BADI_FDCB_SUBBAS02   Example for Screen Enhancement 2 on FDCB Basic Data Screen
    BADI_FDCB_SUBBAS02   Improper Invoice Screen for  Prompt Payment Act
    BADI_PRKNG_NO_UPDATE Parked Invoices should not update Accounting receivers
    FBAS_CIN_LTAX1F02    CIN implementation for LTAX1
    FBAS_CIN_MF05AFA0    Invoice - Downpayment clear - Tax transfer
    FI_AUTHORITY_ITEM    Authorization Check FM Account Assignments
    FI_FB08_SUBST_BUDAT  Fin. services posting date for FI Doc reversal . with FB08
    FI_HEADER_SUB_1300   Fin. services - Adjust posting date for FI document header
    FI_HEADER_SUB_1300   Example for Screen Enhancement in SAPMF05A Screen 1300
    FI_RES_ITEM_CURRENCY Implement Document of Residual Item with Invoice Currency
    FVFZ                 FI Interface for Loans

  • Screen Badi in ME21N

    Hi Experts.....
    I have implemented a screen exit in ME21N Transaction to add custom fields. With this I could get an extra custom tab in which I have included my fields. Now my req is to get multiple tabs as the fields are more in number. So I wanted to implement this using a BADI. I have searched the BADI named ME_GUI_PO_CUST.
    in this I have passed the screen no and program name and label name along with element as PO and name of view as HEADER. But I cannot see an extra TAb in header details. I also created the subscreen and the corresponding program...
    Can anyone help me to implement a screen badi in ME21N.
    Thank you in advance

    Hi Shakti,
    The BADI ME_GUI_PO_CUST has an example implementation class CL_EXM_IM_ME_GUI_PO_CUST. Check the method SUBSCRIBE to see how the BADI can be subscribed.
    The reason why your custom screen is not appearing is probably because your BADI implementation is not active or the custom screen has not be subscribed properly.
    The code inside method SUBSCRIBE of your BADI implementation should be as follows:
      DATA: ls_subscriber LIKE LINE OF re_subscribers.
    * we want to add a customer subscreen on the item detail tab
      CHECK im_application = 'PO'.
      CHECK im_element     = 'ITEM'.
    * each line in re_subscribers generates a subscreen. We add one subscreen in this example
      CLEAR re_subscribers[].
    * the name is a unique identifier for the subscreen and defined in this class definition
      ls_subscriber-name = 'ITEMSCREEN1'.
    * the dynpro number to use
      ls_subscriber-dynpro = '0001'.
    * the program where the dynpro can be found
      ls_subscriber-program = 'SAPLMEPOBADIEX'.
    * each subscreen needs his own DDIC-Structure
      ls_subscriber-struct_name = 'MEPO_BADI_STRUCT'.
    * a label can be defined
      ls_subscriber-label = 'BAdI customer'.
    * the position within the tabstrib can be defined
      ls_subscriber-position = 5.
    * the height of the screen can be defined here. Currently we suport two screen sizes:
    * value <= 7 a sevel line subscreen
    * value > 7  a 16 line subscreen
      ls_subscriber-height = 7.
      APPEND ls_subscriber TO re_subscribers.
    To impelement multiple tabs you have to subscribe each tab differently using the parameter
    ls_subscriber-name
    of the BADI
    and also name each tab differently using
    ls_subscriber-label
    Let us assume that you have to implement three tabs, then you have to subscribe each tab with a different name and also label each tab differently.
    You can name subscribe the first tab with name ITEMSCREEN1 label BAdI customer, subscribe 2nd tab with name ITEMSCREEN2 label BAdI customer'2 and subscribe 3rd tab with name ITEMSCREEN3 label BAdI customer3.
    Mention a different positions for each tab.
    Like say for BADI customer1 ls_subscriber-position = 5., for BADI customer2 ls_subscriber-position = 6. and for BADI customer3 ls_subscriber-position = 7..
    Also append the subscribe data three times for the three tabs.
    This will display three tabs with names BADI customer1, BADI customer2 and BADI customer3.
    Hope the above information helps.
    Regards,
    Abhisek.

  • Badi for me21n tcode

    Hi All,
    I have a requiremnet in ME21N Transaction.
    While creating a PO i want to validate  some values based on services tab in the items.I found one badi related to services but when i am putting a break-point its not getting triggered.
    BADI IS  -
    ME_PO_PRICING_CUST
    Please help me which BADI shall i use for this purpose, its very urgent.
    Regards
    Mona

    Hi Monalisa,
      Check out the threads given below:
    BADI for ME21N
    BADI in ME21N
    With luck,
    Pritam.

  • APO DP to R/3 transfer - Userexit or Badi

    Hi Experts,
    Currently the data is transfered from APO DP to R/3 using release profile through background job. During the transfer few characteristic values needs to be changed.
    Is there any userexit or BADI Available for this APO. If so, please provide the Enhacement or BADI details.
    Thanks in advance.
    Regards,
    Saravanan V

    Hi Saravanan V
    You have badi /SAPAPO/SDP_RELDATA
    You cana ctually see it from SPRO:
    Advanced Planning and Optimization
    Supply Chain Planning
    Demand Planning (DP)
    Business Add-Ins (BAdIs)
    Release SNP/DP
    Change Data During Release to SNP or R/3
    I hope it helps
    Regards
    Julien

  • Finding Userexit or BADI for vl10batch transaction

    Hi All,
    We are using the VL10BATCH transation for creation of delivery note which can create one Delivery document for multiple line items.
    VL10BATCH transaction which inturn creates variants for VL10 transactions based on material, partner, Salesorder details and batch job will be scheduled once the variant is saved.
    I have a requirement to change the VL10BATCH transaction, that it should create 1 Delivery document per 1 line item. Is there any BADI or any userexit available which is called before Delivery document creation, so that I can enhance the userexit or BADI and can restict it to only 1 Delivery for 1 line item.
    Any inputs on this will be a valuable help for me.
    Thanks and Regards,
    Reddem.

    Hi Reddem!
    Try one of them userexits
    LV50R_VIEWG01 - LV50R_VIEWG17
    Otherwise you can make a lot of settings in VL10 on the User Role tab. E.g. Dlv creation profile, you can find some user-exits with F1-Help and F4-Help on input fields.
    br
    Kalman

Maybe you are looking for