CREATION OF OPPORTUNITY

Hi All,
    I would like to create an opportunity with all the relavent fields using Function Modules. Can anyone provide me with a Report Program for the creation of an Opportunity.
Thanks in Advance,
Shwetha .

Good job Joost Stallaert.........
A simple program using BAPI_OPPORTUNITY_CREATEMULTI .
DATA: ls_header        LIKE   bapibus20001_header_ins,
      lt_header        TYPE   STANDARD TABLE OF
                              bapibus20001_header_ins,
      ls_opp           LIKE   bapibus20001_opportunity,
      lt_opp           TYPE   STANDARD TABLE OF
                              bapibus20001_opportunity,
      lt_pricing       TYPE   STANDARD TABLE OF
                              bapibus20001_pricing,
      ls_pricing       TYPE   bapibus20001_pricing,
      ls_input_fields  TYPE   bapibus20001_input_fields,
      lt_input_fields  TYPE   STANDARD TABLE OF
                              bapibus20001_input_fields,
      lt_return        TYPE   STANDARD TABLE OF bapiret2 ,
      ls_return        TYPE   bapiret2 .
DATA ls_saved_process       TYPE bapibus20001_object_id.
DATA: lt_guid_16            TYPE  crmt_object_guid_tab,
      ls_guid_16            TYPE  crmt_object_guid.
DATA: lv_langu              TYPE  sylangu,
      lv_uname              TYPE  syuname,
      lt_SAVED_PROCESS type  BAPIBUS20001_OBJECT_ID occurs 0 .
CONSTANTS:
    pricing       TYPE  crmt_object_name  VALUE 'PRICING',
    gc_handle_1       TYPE  crmt_handle       VALUE  '0000000001',
BEGIN OF gc_fieldname,
   startdate       TYPE crmt_fieldname   VALUE 'STARTDATE',
   expect_end      TYPE crmt_fieldname   VALUE 'EXPECT_END',
END OF gc_fieldname,
BEGIN OF gc_object_kind,
          orderadm_h     TYPE  crmt_object_kind  VALUE 'A',
          orderadm_i     TYPE  crmt_object_kind  VALUE 'B',
      END OF gc_object_kind,
BEGIN OF gc_object_name,
         opport_h      TYPE  crmt_object_name  VALUE 'OPPORT_H',
         order         TYPE  crmt_object_name  VALUE 'ORDER',
         orderadm_h    TYPE  crmt_object_name  VALUE 'ORDERADM_H',
         orderadm_i    TYPE  crmt_object_name  VALUE 'ORDERADM_I',
       END OF gc_object_name.
ref kinds
CONSTANTS: BEGIN OF gc_object_ref_kind,
             orderadm_h     TYPE  crmt_object_kind
                                      VALUE gc_object_kind-orderadm_h,
             orderadm_i     TYPE  crmt_object_kind
                                      VALUE gc_object_kind-orderadm_i,
             any            TYPE  crmt_object_kind
                                      VALUE space,
           END OF gc_object_ref_kind.
Admin Header
ls_header-description     = 'GV REDDY PRASAD'.
ls_header-handle          = '1'.
ls_header-process_type    = 'OPPT'.
ls_header-descr_language  = sy-langu.
ls_header-langu_iso       = sy-langu.
APPEND ls_header TO lt_header.
CLEAR ls_input_fields.
ls_input_fields-ref_handle  = '1'.
ls_input_fields-ref_kind    = 'A'.
ls_input_fields-objectname  = 'ORDERADM_H'.
ls_input_fields-fieldname   = 'PROCESS_TYPE'.
APPEND ls_input_fields TO lt_input_fields.
ls_input_fields-fieldname   = 'OBJECT_ID'.
APPEND ls_input_fields TO lt_input_fields.
ls_input_fields-fieldname   = 'DESCRIPTION'.
APPEND ls_input_fields TO lt_input_fields.
Opportunity Header
ls_input_fields-objectname  = 'OPPORT_H'.
ls_opp-ref_handle           = '1'.
ls_input_fields-fieldname  = 'EXP_REVENUE'.
ls_opp-exp_revenue         = '0012'.
APPEND ls_input_fields TO lt_input_fields.
ls_input_fields-fieldname  = 'CURRENCY'.
ls_opp-currency            = 'INR'.
ls_opp-currency_iso        = 'INR'.
APPEND ls_input_fields TO lt_input_fields.
ls_pricing-ref_handle      = gc_handle_1.
ls_pricing-ref_kind        = gc_object_ref_kind-orderadm_h.
ls_pricing-currency        = 'INR'.
APPEND  ls_pricing TO lt_pricing.
ls_input_fields-objectname  = pricing.
APPEND ls_input_fields TO lt_input_fields.
ls_input_fields-objectname  = gc_object_name-opport_h.
ls_input_fields-fieldname  = gc_fieldname-startdate.
ls_opp-startdate           = sy-datum.
APPEND ls_input_fields TO lt_input_fields.
ls_input_fields-fieldname  =  gc_fieldname-expect_end.
ls_opp-expect_end          = sy-datum.
APPEND ls_input_fields TO lt_input_fields.
CALL FUNCTION 'BAPI_OPPORTUNITY_CREATEMULTI'
  TABLES
    HEADER                 = lt_header
    OPPORTUNITY            = lt_opp
    INPUT_FIELDS           = lt_input_fields
    RETURN                  = lt_return
    SAVED_PROCESS          =  lt_saved_process .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
******To display the record or error
loop at lt_return into ls_return.
  write ls_return-MESSAGE.
endloop.
loop at lt_saved_process into ls_saved_process.
  write ls_saved_process-OBJECT_ID.
endloop.

Similar Messages

  • Creation of Opportunity using standard BAPI

    Hello,
            I am using BAPI_OPPORTUNITY_CREATEMULTI for creating opportunity. It is generating GUID and Oject ID. But the data is not storing in data base table except GUID in CRMD_OPPORT_H table. And even it is not displaying all the data which is i am passing through flat file in t-code : 'CRMD_ORDER' .

    Hello Nizam,
    I am also working on the  same requirement.
    I am able to create the Opportunity successful through the BAPI "BAPI_OPPORTUNITY_CREATEMULTI".
    and it is also updating all the required fields.
    But issue which i am facing is, I am able to see the opportunity in the GUI but not in the WEB UI.
    Could you please help me on this?
    Which parameter I need to set in order to Pass the opportunity on the WEB UI.
    I would really appriciate if you share the code.
    Thanks & Regards
    Sachin

  • ATP Check at the time of creation of Opportunity.

    Dear Friends,
    We have a business requirement in which we are supposed to perform the ATP check @opportunity level. When we are trying to assign the ATP Profile to the Item Category OPPT, the ATP profile is not available for opportunity. there is a FM "CRM_ITEM_TYPE_FIELDCHECK_CB" which is responsible for hiding the   ATP Profile field for opportunity "OPPT" Line Item.
    I have update the ATP Profile for opportunity in the Maintenance View "CRMV_ITEM_TYPE"
    I have implemented the 2 Badi's also CRM_ATP_EXTERN_BADI & CRM_ATP_EX_POST_BADI but none of the implementation is being getting called in case of opportunity.
    But when i am creating Quotation the above BADI's are being getting called.
    And moreover, the Availability Check for ATP in customization there is no RFC system maintained neither the Control Information.
    But I am confused, why in case of Quotation the BADI's are getting Triggered and why not in Case of Opportunity.
    Please Advise me on the above and if I am missing something or if there is any alternative for ATP at OPPT level.
    Your answer will be rewarded
    Thanks in Advance,
    Kind Regards,
    Ashraf.

    Hi Ashraf,
    The reason is that ATP is run only for transaction type of category SALES ( BUS2000115 ) but opportunity is a different category. The only possibility you have left over here is to enhance the Event framework in CRM through tcode CRMV_EVENT.
    Add these entries and see if it works, since there are a lot of checks so for beginning you can add these events in tcode CRMV_EVENT.
    ORDERADM_I
    AFTER_CHANGE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    K
    ORDERADM_I
    AFTER_CREATE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    K
    ORDERADM_I
    AFTER_DELETE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    A
    ORDERADM_I
    BEFORE_DELETE
    <*>
    CRM_ATP
    CRM_SOURCE_DELETE_ITM_CHECK_EC
    PRODUCT_I
    AFTER_CHANGE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    PRODUCT_I
    AFTER_CREATE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN
    AFTER_CHANGE
    DLV_GROUP
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN
    AFTER_CHANGE
    ORDER
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN
    AFTER_CHANGE
    ORDER
    CRM_ATP
    CRM_KIT_SCHEDLIN_CHN_EC
    SCHEDLIN
    AFTER_CREATE
    DLV_GROUP
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN
    AFTER_CREATE
    ORDER
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN
    AFTER_DELETE
    ORDER
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    SCHEDLIN_I
    AFTER_CHANGE
    <*>
    CRM_ATP
    CRM_CONFIRM_ADD_ITEM_EC
    K
    /Hasan

  • Prices not showing up during creation of Lead to opportunity

    hello all,
    iam working on CRM2007,i have a created a Hot lead and i have a follow up creation of opportunity
    for the hot lead,during this process my product data has been copied from the lead but  neither Net Value nor the Expected total value is showing up in the Assignment block for the Item in that opportunity,
    can you please tell me what could be the problem,
    do i have to make any customizing setting for this.
    helpful answers will be rewarded.
    regards
    chandrashekar

    Hello
       Have you maintained the Pricing procedure for the Business Transaction for the required Organization, Document pricing procedure and Customer Pricing procedure?
    Regards,
    Sowmiya

  • Check for Opportunity type in BADI   CRM_OPPORT_H_BADI

    Hi,
    I am implementing BADI CRM_OPPORT_H_BADI and at the point of creation of an opportunity I want to check the opportunity type. In the structure CS_OPPORT_H_BADI at point of creation , the opportunity type field is blank.
    Is there a way to determine the opportunity type in this BADI when creating a opportunity ?
    Regards
    Chan

    You can use below FM to get the transaction type and object type in BADI CRM_OPPORT_H_BADI.
    CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
          EXPORTING
            iv_orderadm_h_guid     = lv_header_guid
          IMPORTING
            ev_process_type        = lv_proc_type
            ev_object_type         = lv_object_type
          EXCEPTIONS
            admin_header_not_found = 1
            OTHERS                 = 2.
    Opportunity type is not filled until you are in opportunity screen. So you can check transaction type or object type and change start date value.
    Regards,
    Srini

  • Lead to Opportunity Approach using BADI

    Hi Gurus,
    I am working on Lead to Opportunity conversion requirement based on few conditions.
    Condition 1: Lead status is HOT
    Condition 2: If Channel Partner exists in Partner tab.
    If above two conditions are met, we are triggering Opportunity from lead as followup and changing the lead status to close, lead reason to close to oppotunity.
    Is this requirement able to implement through BADI? I am thinking of using ORDER_SAVE BADI and call another BADI or BAPI to create opportunity if above two consitions are met.Is it possible to implement above functionality?
    Please guide me...Thanks in advance.
    Cheers,
    Ajay

    Yes I agree with you...But using Copy Control user has to perform the opportunity creation manually...I need automatic creation of Opportunity from Lead based on few conditions.
    With Conditions...I don't think we can change the status and reason in Lead..If possible Can you explain the process?
    I am thinking of three approaches:
    1) Workflow
    2) Actions - Ruled out as per my knowledge
    3) Calling BADI or BAPI from ORDER_SAVE BADI.
    If you have any experience, plese guide me.
    Thanks,
    Ajay K

  • Lead - Opportunity

    Hello Friends,
      Has anyone worked on automatic creation of Opportunity out of Lead on the basis of Lead Priority and Group? I was looking into the document at help.sap.com at
    http://help.sap.com/saphelp_crm50/helpdata/en/b4/5576d40037db419df42bdf18ee8503/frameset.htm
    but didn't got much help.I tried everything as mentioned but nothing happened?
    Do we need to setup copy control too to make this work???
    Does someone has a guide or some notes to make it work???

    Since a lead is 'only' another transaction category the standard copy functionality in actions should work, and if you make it dependent on a condition like "status=hot" then it should work as you want it to. But I am not sure whether there are a predefined FM's to do this.
    You are right concerning the action profile, that would be the correct approach. However, you cannot 'convert' a lead into an opportunity, but only create a new transaction. If you want to use the same transaction then just create an opportunity with a phase 'Lead' - many implementations use this feature. Then you could also configurate the sales assistant to support the lead maintenance.
    Regards, Kai

  • BAPI_OPPORTUNITY_CREATEMULTI - Partners problem

    Hello
    I am struggling with creation of opportunity with BAPI_OPPORTUNITY_CREATEMULTI.
    Can anyone give working example of implementation using input fields, header, opportunity and partner structures?
    I cannot create opp where partners would be filled.
    Regards
    Radek

    ok thank you, I used crmd_order_maintain to get right values.
    eg. structures for partner:
      ls_partner-ref_guid       = ls_header-guid.
      ls_partner-ref_handle       = '0000000001'.
      ls_partner-ref_kind       = 'A'.
      ls_partner-ref_partner_handle = '0001'.
      ls_partner-partner_no    = '0003000018'. "-> leading zeros
      ls_partner-partner_fct   = '00000021'.
      ls_partner-no_type       = 'BP'.
      ls_partner-display_type  = 'BP'.
      ls_partner-KIND_OF_ENTRY = 'C'.
      APPEND ls_partner to lt_partner.
    and for input fields:
    ls_input-REF_HANDLE = '0000000001'.
    ls_input-REF_GUID = ls_header-guid.
    ls_input-REF_KIND = 'A'.
    ls_input-OBJECTNAME = 'PARTNER'.
    ls_input-LOGICAL_KEY = '0001'.
    ls_input-FIELDNAME = 'PARTNER_NO'.
    APPEND ls_input to lt_input.
    ls_input-FIELDNAME = 'PARTNER_FCT'.
    APPEND ls_input to lt_input.
    ls_input-FIELDNAME = 'NO_TYPE'.
    APPEND ls_input to lt_input.
    ls_input-FIELDNAME = 'DISPLAY_TYPE'.
    APPEND ls_input to lt_input.
    ls_input-FIELDNAME = 'KIND_OF_ENTRY'.
    APPEND ls_input to lt_input.
    clear ls_input.
    Regards

  • Creating popup list.

    Dear CRM Experts,
    i want to generate an popup window with the list of business partners when the sold-to party in the quotation  (follow-up document) is selected.  please provide some guidance on this.
    if there is any BADI or Function Module.. please guide me..
    Thanks & Regards..
    Guhapriyan Subrahmanyam

    Hi Dinesh,
    Check the following OSS, these might help
    Note 989651 - Partner Pop up during Sales Order creation from Opportunity
    Note 646867 - Partner Selection pop-up for sales documents
    Hope this will help
    Regards,
    Rekha Dadwal
    <b>You gain a point for every point that you reward. So reward helpful answers generously</b>

  • Creation of an ERP Sales Order or ERP Quotation from CRM Opportunity

    Hello Experts,
    The scenario is as follows:
    I have done the cross-system copy control of transaction types and item categories to enable ERP Quotation and ERP Sales Order creation from CRM Opportunity.  However, after saving the CRM Opportunity, when I click on the follow-up transaction and select ERP Quotation or ERP Sales Order from the list, the screen doesnt change and instead I got the following error:
    "Diagnosis
    An exception occurred during request processing. This was handled centrally. It changed the program flow and the result of the request probably contains errors.
    Procedure
    Contact your system administrator.
    Procedure for System Administration
    Activate checkpoint group BSP_WD_EXCEPTION_DISPLAY. To do this, use transaction SAAB. If the error recurs, further details are displayed.
    Exception Details
    CX_BSP_WD_INCORRECT_IMPLEMENT - Define component usage 'CUERPFollowUp'
    Method: CL_BSP_WD_REPOSITORY=>GET_CMP_USAGE_DEF
    Source Text Row: 20"
    Experts, kindly help me understand what the error is about and pointers to resolve it.
    Points would be awarded.
    Thanks,
    VSK.
    Edited by: venkatskumar on Feb 21, 2011 8:37 PM

    Hello Robert,
    Thanks for the quick reply.
    I have followed your instructions and I wanted to confirm one more thing with you.
    When I enter the component usage it gave a pop-up which said:
    "Enter either a reference or an interface view"
    Any information on what should be entered in the reference or the interface view? What should be the used component name and interface view name in this scenario?
    Kindly confirm.
    Points awarded
    VSK.
    Edited by: venkatskumar on Feb 22, 2011 12:37 PM

  • Creation of R/3 order in CRM from the opportunity created in CRM ?

    Hello Experts,
    I would like to create a ERP sales order from CRM system, by follow up from opportunity.
    1) I defined cross system copying control
    How to define a profile for allowed ERP sales transactions ?
    How to assign this profile to the user role ?
    Kindly help me out...
    Regards,
    A.Lakshith Rao

    Hi,
    1606107 - Creation of follow up ERP quotations from opportunities not working
    Entry of ERP Sales Transactions in SAP CRM
    http://help.sap.com/saphelp_crm70/helpdata/EN/47/463fc2b61c1a41e10000000a1553f7/frameset.htm
    Denis

  • Triggering the creation of a quotation from within an Opportunity...

    We have implemented CRM Best Practice (CRM 7) and want to trigger the creation of an ERP quotation from within an Opportunity. Within the customising to assign the ERP order type to the CRM transaction type,
    when input help is pressed, no values are returned. CRM is not seeing the ERP order types.
    I have been informed that this is correct and that we need to create the order in CRM and then forward to ERP. However, this will never do, especially as CRM does not have all the information to successfully raise an order.
    I was wondering if anyone had encountered a similar problem and found a way around it. I'm aware that we can probably use the transaction launcher to create an order in ERP and return to CRM, but how this is triggered is another matter.
    Any advice and suggestions would be very much appreciated.
    Jason

    Thanks to all. We have had a reply back from SAP to say that what we trying to do is not possible. We have CRM 7 and ERP ECC5, however SAP are saying that we need at least 2005 on our ERP system for this functionality to work.
    Basically, when in config we attempting to set up the document types, but none are being displayed.
    SAP connected to our system and after analysis said that the cutsomers ERP system (ECC 5) needs to be upgraded to a minimum of ERP 2005, which I find to be an absolute crazy statement to make. Apparently, according to note 1236015 a minimum of ERP 2005 is required to maintain ERP sales transactions in CRM 7.0's CRM webclient UI.
    They debugged CL_CRM_INTLAY_LORD1_ERPIL
    IF_CRM_ERP_LORD_HELP_VALUES~GET_AUART
    Which seems to call FM SLS_LORD_GET_VALUES_AUART but does not exist in ECC 5.
    When tested in our CRM 7 system (not the clients) we do get a list of doc types appear, but then we are on the latest version of ERP.
    I was wondering whether there was a service patch to ECC 5 which might add the function group SLS_LORD_SHLP and assocaited function modules and includes, together with the class CL_FIELD_CONVERT.  That looks to be everything needed to run in ECC 5 from looking at our ECC 6 system. I'm never sure where ERP 2005 sits, is that a higher than version than ECC 6?.
    Jason

  • Account of the opportunity is not populated after the creation of a task

    Hi,
    In our project, we are using the Opportunity Object after the creation of a task. Our tasks are always related to an existing account.
    I was wondering why when I create an opportunity from a task, the field "Account Name" is not populated by default with the account name related to the task.
    Any ideas?
    Regards,
    Dara
    Edited by: user6469826 on 2 août 2011 11:40

    Contact an electronics repair shop.

  • Problem in item data updation in Opportunity Creation

    Hi All,
    I am able to create the opportunity with BAPI_OPPORTUNITY_CREATEMULTI but the item data ( product tab in the opportunity ) is blank.
    Please see the code below which i am using for this item data population. Update is getting terminated if i am using header handle. Please send me the correct solution for this problem.
    *set item data
      clear ls_input_field.
      ls_input_field-ref_handle  = lc_handle_2.
    ls_input_field-ref_kind    = 'B'.
      ls_input_field-objectname  = 'ORDERADM_I'.
      ls_input_field-fieldname   = 'HANDLE'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname   = 'HEADER_HANDLE'.
      INSERT ls_input_field INTO TABLE lt_input_field.
    ls_input_field-fieldname     = 'LOGICAL_KEY'.
    INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname   = 'ORDERED_PROD'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname   = 'NUMBER_INT'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname   = 'MODE'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      lv_item = 0.
      lv_number_int = 0.
      ls_item-handle               = lc_handle_2.
      ls_item-header_handle        = lc_handle_1.
    ls_item-parent_handle        = lc_handle_1.
      if i_form_id = 'CAP'.
        ls_item-ordered_prod       = 'CAP_FEE'.
        ls_item-number_int = lv_number_int + 10.
        ls_item-mode               = 'A'.
        append ls_item to lt_item.
        lv_number_int = ls_item-number_int.
        clear ls_item.
    *set schedule line
      clear ls_input_field.
      ls_input_field-ref_handle  = lc_handle_2.
      ls_input_field-objectname  = 'SCHEDLIN'.
      ls_input_field-ref_kind    = 'B'.
      ls_input_field-fieldname     = 'ITEM_HANDLE'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname     = 'HANDLE'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_input_field-fieldname     = 'QUANTITY'.
      INSERT ls_input_field INTO TABLE lt_input_field.
      ls_scheduleline-item_handle = lc_handle_2.
      ls_scheduleline-handle      = lc_handle_1.
      ls_scheduleline-quantity    = 1.
      append ls_scheduleline to lt_scheduleline.
      endif.
    - Prakash

    Hi,
    Use the below code to maintain line items, in FM 'CRM_ORDER_MAINTAIN'.
              CREATION OF THE ITEM GUID
                CLEAR v_item_ref_guid.
                CALL FUNCTION 'GUID_CREATE'
                  IMPORTING
                    ev_guid_16 = v_item_ref_guid.
              CREATION OF SCHEDULING LOGICAL GUID.
                CLEAR v_sched_logical.
                CALL FUNCTION 'GUID_CREATE'
                  IMPORTING
                    ev_guid_16 = v_sched_logical.
              values for it_pricing
                CLEAR wa_pricing.
                CLEAR it_pricing.
                wa_pricing-ref_handle = c_ref_handle2.
                wa_pricing-ref_guid   = v_item_ref_guid.
                wa_pricing-ref_kind   = c_b_kind.
                INSERT wa_pricing INTO TABLE it_pricing.
              values for product_i-UOM
                  CLEAR wa_product.
                  CLEAR wa_fieldname.
                  CLEAR it_fields.
                  wa_fieldname-fieldname = c_process_qty_unit_field.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_input_field.
                  wa_input_field-ref_handle   = c_ref_handle2.
                  wa_input_field-ref_guid     = v_item_ref_guid.
                  wa_input_field-ref_kind     = c_b_kind.
                  wa_input_field-objectname   = c_product_i_input.
                  wa_input_field-field_names  = it_fields.
                  INSERT wa_input_field INTO TABLE it_input_field.
                  CLEAR wa_product_i.
                  wa_product_i-ref_guid         = v_item_ref_guid.
                  wa_product_i-ref_handle       = c_ref_handle2.
                  wa_product_i-process_qty_unit = wa_product-process_qty_unit.
                  INSERT  wa_product_i INTO TABLE it_product_i.
                ENDIF.
              values for service_i
                CLEAR wa_input_field.
                wa_input_field-ref_handle   = c_ref_handle2.
                wa_input_field-ref_guid     = v_item_ref_guid.
                wa_input_field-ref_kind     = c_b_kind.
                wa_input_field-objectname   = c_service_i.
                wa_input_field-field_names  = it_fields.
                INSERT wa_input_field INTO TABLE it_input_field.
                CLEAR wa_service_i.
                wa_service_i-ref_guid   = v_item_ref_guid.
                wa_service_i-ref_handle = c_ref_handle2.
                INSERT wa_service_i INTO TABLE it_service_i.
              fieldnames for quantity
                CLEAR wa_schedul.
                READ TABLE it_schedul INTO wa_schedul INDEX 1.
                IF sy-subrc = 0.
                  CLEAR wa_fieldname.
                  CLEAR it_fields.
                  wa_fieldname-fieldname = c_logical_key.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_fieldname.
                  wa_fieldname-fieldname = c_quantity.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_input_field.
                  wa_input_field-ref_handle   = c_ref_handle2.
                  wa_input_field-ref_guid     = v_item_ref_guid.
                  wa_input_field-ref_kind     = c_b_kind.
                  wa_input_field-objectname   = c_schedlin_input.
                  wa_input_field-logical_key  = c_log_key_item.
                  wa_input_field-field_names  = it_fields.
                  INSERT wa_input_field INTO TABLE it_input_field.
                  CLEAR wa_quantity.
                  CLEAR it_quantity.
                  wa_quantity-guid          = v_sched_logical.
                  wa_quantity-item_guid     = v_item_ref_guid.
                  wa_quantity-quantity      = wa_schedul-quantity.
                  wa_quantity-logical_key   = c_log_key_item.
                  wa_quantity-handle        = c_ref_handle0.
                  INSERT wa_quantity INTO TABLE it_quantity.
                valus for quantity
                  CLEAR wa_schedulin.
                  wa_schedulin-ref_guid   = v_item_ref_guid.
                  wa_schedulin-ref_handle = c_ref_handle2.
                  wa_schedulin-schedlines = it_quantity.
                  INSERT wa_schedulin INTO TABLE it_schedulin.
                ENDIF.
              fieldnames for product
                CLEAR wa_orderadm.
                READ TABLE it_orderadm INTO wa_orderadm INDEX 1.
                IF sy-subrc = 0.
                  CLEAR wa_fieldname.
                  CLEAR it_fields.
                  wa_fieldname-fieldname = c_itm_proc_ident.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_fieldname.
                  wa_fieldname-fieldname = c_mode_input.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_fieldname.
                  wa_fieldname-fieldname = c_ordered_prod.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_fieldname.
                  wa_fieldname-fieldname = c_number_int.
                  INSERT  wa_fieldname INTO TABLE  it_fields.
                  CLEAR wa_fieldname.
                  wa_fieldname-fieldname = c_prog_id.
                  INSERT wa_fieldname INTO TABLE it_fields.
                  CLEAR wa_input_field.
                  wa_input_field-ref_handle   = c_ref_handle2.
                  wa_input_field-ref_guid     = v_item_ref_guid.
                  wa_input_field-objectname   = c_orderadm_i_input.
                  wa_input_field-field_names  = it_fields.
                  INSERT wa_input_field INTO TABLE it_input_field.
                values for product
                  CLEAR wa_orderprp_i.
                  CLEAR v_itemno.
                  v_itemno = v_itemno + v_line_incr.
                  wa_orderprp_i-guid          = v_item_ref_guid.
                  wa_orderprp_i-header        = v_head_ref_guid.
                  wa_orderprp_i-number_int    = v_itemno.
                  wa_orderprp_i-ordered_prod  = wa_orderadm-ordered_prod.
                  wa_orderprp_i-description   = wa_orderadm-description.
                  wa_orderprp_i-handle        = c_ref_handle2.
                  wa_orderprp_i-number_int    = wa_orderadm-number_int .
                  wa_orderprp_i-zzprogram_id  = wa_orderadm-zzprogram_id.
                  INSERT wa_orderprp_i INTO TABLE it_orderprp_i.
                ENDIF

  • Opportunity creation: product item category not permitted

    Hi SAP Gurus,
    After some difficulties, we succeeded in transfering products from R/3 to CRM.
    Now we would like to create an opportunity, associated with a customer and a product (in fact consultant services).
    In the 'Products' tab of the opportunity creation, we have to fill the field 'item category'. Whatever we type in it, we have always the same error 'The item category XXXX is not permitted for product YYYY'.
    Do we have any configuration to do or to import from R/3, concerning item category? How could we bypass this error?
    Thanks for your help
    Anne

    First check which item category group your products use. then:
    SPRO->CRM->transactions->basic settings
    Define Item Categories, refered to an opportunity item.
    Then Define Item Category Determination. Add a line with transaction type OPPT and your item category group.
    Anne

Maybe you are looking for