Product customization in CRM 7.0

Hi experts.
How can be able to do product customization in crm 7.0,
if crm is not a standalone system how come we will proceed further.
PLease share the infromation
Thanks in advance
Prajith P

HI Denis,
Thanks for the reply.
please provide the link for the best practices in CRM for products customiziation.
Please do reply.
Waiting for your valuable response
Thanks in advance
Prajith P

Similar Messages

  • Plugin customization from crm 4.0 to crm 2013

    Hi,
    can anyone advice or help me to customize CRM 4.0 plugin code where using Product class, to CRM 2013.
    There is not product class (crm service) in CRM 2013 and I don't know how to customize below Code to CRm 2013 plugin
    here i attached snip of CRm 4.0 plugin code
    try {
    Log("Neue Vorlage!");
    Entity vorlage = (Entity)context.PostEntityImages["Vorlage"];
    //Entity product = new Entity[4];
    product[] produkte = new product[4];

    Hello,
    You can go 2 ways:
    1. Use Late Binding and your code could look like
    Entity[] produkte = new Entity[4];
    2. You can use
    Early Binding.
    And after that your code could look like:
    Product[] produkte = new Product[4];
    Dynamics CRM MVP
    My blog

  • How to extend the product catalog in CRM?

    Hi All
        How do u extend the product catalog in CRM?
        Anticipating a step-wise guidelines..
    Thanks in Advance
    Jaman
    Message was edited by: Sap_Crm_Guy

    Hi
    Check this URL:http://help.sap.com/saphelp_crm50/helpdata/en/a8/abf837aea75351e10000009b38f8cf/frameset.htm
    Hope it helps

  • Defining New product type in CRM 5.0

    Hi Guys,
    Can anyone tell me how to define new Product Type for CRM(Standalone Products) like material, Service, warranty, financing .
    Thanks in advance
    amar

    Hi Kovela,
    I haven't come across any IMG activity which allows to create a new product type in CRM. Why do you want to have a separate product type. It is not so easy to create a product type because you also need to create additional attributes and set types. In general all existing product types are stored to table COMC_PR_TYPE. Also you need to maintain a separate structure (COMT_PROD_MAT_MAINTAIN_API) for each product type.
    Why don;t you enhance the existing product type by creating new attributes and set types as per your requirement.
    <b>Do not forget to reward if it helps,
    </b>
    Regards,
    Paul Kondaveeti

  • Product master in CRM and R/3

    Hi Gurus,
    can anybody make my understanding clear regarding  the difference of product master in CRM and R/3. any links to know more on it will also help.
    Thank you in advance.
    Regards,
    sasmita

    Hi Sasmita,
    Here are some of inputs will help for undersatnding:
    <b>The CRM product master is a collection or arrangement of various settypes which contain specific data.</b>
    Pre-defined settypes are delivered (e.g. basic product data; conversion of unit of measure)
    Enhancement of the product master with own settypes is possible
    Settypes correspond to database tables
    Attributes correspond to your product characteristics.
    <b>Attributes can be summarized with the help of set types</b>
    In the system there are standard set types which are always available. However, you can also create and implement user-defined set types, to depict marketing data, for example.
    The usage of set types can be restricted (e.g. certain set types only allowed for products of type product) Distribution chain-dependent set types can be created.
    A set type is only permissable for a product when the set type is assigned to the category to which you then assign the product. To assign a set type to a category, use the function Edit categories and hierarchies.
    You can assign a set type to several product categories within a category hierarchy. However, each set type can only be assigned within one hierarchy. In doing so, a multiple assignment of a set type to one and the same product (over contrasting categories) is prevented.
    A product can be assigned to several categories, as long as these are within different category hierarchies. A product can also be assigned to only one category per hierarchy.
    The assignment to the base hierarchy R3PRODSTYP is vital, so that basic data set types are available, for example.
    R3PRODSTYP depicts the product types present in the R/3 system.
    Customer product numbers can be assigned. This Customer product ID is stored in the relationships
    Global Trade Item Number (GTIN)
    Customer-own checks can be defined before a product can be saved. Enhancements &#61614; Consistency check
    <b>Transaction :
    COMMPR01-Maintain Products
    COMMPR02-Mass Maintenance for Inactive Products
    COMM_HIERARCHY-Maintain Categories and Hierarchies
    COMM_ATTRSET- Maintain Set Types and Attributes
    Tables:</b>
    Product (active)               COMM_PRODUCT
    Product (inactive)               COMM_IPRODUCT
    Product description          COMM_PRSHTEXT
    Category hierarchy               COMM_HIERARCHY
    Category                    COMM_CATEGORY
    Set types                    COMC_SETTYPE
    Attributes                    COMC_ATTRIBUTE
    Relationships               COMM_IL_*
    COMM_PRODUCT      : Product header and administration data.
    COMM_CATEGORY    : Category
    COMM_HIERARCHY   : Category Hierarchy
    COMM_PR_FRG_REL :
    COMM_FRGTYPE       :
    COMC_SETTYPE       :
    COMC_PRODUCT      : General Product Settings
    COMC_R3_FIELDS    : Assignment of R/3 material master fields to CFOP
    COMM_CFGMAT       :  Basic Data for Materials
    Hope this will help.
    Regards,
    Arjun
    <b>Pl. Do reward the points</b>

  • Product Variants in CRM from R/3

    Hi Everybody,
    As you know that Product variant in CRM is material variant in R/3. A material variant is created when the available item is in stock.
    Scenario.
    I created a configurable material 'KMAT' in the material master in R/3 system . In the basic data screen, I assigned a material variant for the material. Set the characteristics value for the material variant. Once pressed save. The Material record got automatically downloaded from R/3 to CRM.
    Now I openend the transaction 'COMMPR01' and entered the material. I could not see in the tab 'Product variant' the material variant which was created in R/3.
    1.Any Clue why the material variant did not get transfered to CRM from R/3.
    2. Which CRM table and which CDB table has data regarding Product variants.
    CRM experts could you please share your knowledge with me.
    Any help will be highly appreciated.
    thanks in advance
    Middleware developer

    Hi Jothi,
    Just double check these steps :
    1. You have created Knowledged base Object in R/3
       (tcode CU31 - CU33)
    2. You have created Knowledged base runtine in R/3
       (tcode CU34 - CU35)
    Make sure that VALID FROM information in Knowledge Base Object must be greater than VALID FROM in Material Class.
    3. Re-download material ID (if necessary)
    4. Re-download SCE Object in CRM
    If all steps above successfully run without any
    error/warning message, you should be able see Tab Configuration + Variant in CRM Master Data (COMMPR01).
    You can see also the Configuration Model in Configuration
    Tab (where you can simulate the characteristic
    configuration).
    Hope this could help.
    Cheers,
    Gun.

  • Product substitution in CRM 7.0

    Hi,
    we have requirement on product substitution in CRM. this scenario working fine ECC.
    what are the settings we have to maintain to work this scenario in CRM 7.0.
    Thanks in advance
    Kishore kumar

    Hi Kishore,
    Please see the online documentation for product substitution in CRM:
    http://help.sap.com/saphelp_crm70/helpdata/en/47/46ef14ea211a52e10000000a1553f7/frameset.htm
    Please also see the documentation in the IMG by going to transaction SPRO in your CRM system and then go to path:
    Customer Relationship Management  -> Basic Functions  -> Product Substitution.
    I hope this helps.
    Best Regards
    Gavin

  • Service product upload to CRM

    Hi All,
    I am trying to upload service product data to CRM system. What is the recommended method of doing that?
    I could get my hands on idoc type
    CRMXIF_PRODUCT_SERVICE_SAVE. Is this something we can use for service product uploading to CRM?
    Your inputs are appreciated.
    Regards
    Navdeep

    hi,  it looks you need to add some field in your LSMW product inbound project.
    As it is go through the IDOC way, you need to make clear how to fill the description and sale area info in IDOC, then you can adjust the data mapping logic in LSMW.
    Normally, you can check the IDOC related segament to try the fields and the inbound effects.
    And an another easy way is you can configure a outbound IDOC, and create a product you want in CRM GUI with all the field you require, then check how SAP fill the outbound IDOC content.

  • Product variants in CRM

    Hi Everybody,
       As you know that Product variant in CRM is material variant in R/3. A material variant is created when the available item is in stock.
    Scenario.
    I created a configurable material 'KMAT' in the material master in R/3 system . In the basic data screen, I assigned a material variant for the material. Set the characteristics value for the material variant. Once pressed save. The Material record got automatically downloaded from R/3 to CRM.
    Now I openend the transaction 'COMMPR01' and entered the material. I could not see in the tab 'Product variant' the material variant which was created in R/3.
    1.Any Clue why the material variant did not get transfered to CRM from R/3.
    2. Which CRM table and which CDB table has data regarding Product variants.
    CRM experts could you please share your knowledge with me.
    Any help will be highly appreciated.
    thanks in advance
    Middleware developer

    Hi Jothi,
    Just double check these steps :
    1. You have created Knowledged base Object in R/3
       (tcode CU31 - CU33)
    2. You have created Knowledged base runtine in R/3
       (tcode CU34 - CU35)
    Make sure that VALID FROM information in Knowledge Base Object must be greater than VALID FROM in Material Class.
    3. Re-download material ID (if necessary)
    4. Re-download SCE Object in CRM
    If all steps above successfully run without any
    error/warning message, you should be able see Tab Configuration + Variant in CRM Master Data (COMMPR01).
    You can see also the Configuration Model in Configuration
    Tab (where you can simulate the characteristic
    configuration).
    Hope this could help.
    Cheers,
    Gun.

  • ECC Product Hierarchy to CRM

    Hi all,
    We have a product hierarchy created in ECC in Tcode V/76. These hierarchies have 3 levels and assigned to different materail in ECC materail master.
    We have done a initial load of Materail and all the products in CRM now have the R3PRODSTYP. But none of them got assigned to R3PRODHIER when I check in Product wokbench. This is making my product search in a Sales order really difficult.
    Is it a standard behavior that R3PRODHIER does not get assigned automatically even though those materail belong to that hierarchy in ECC?
    I cheked the SMW01, no errors in initial load of the objects "Material", "DNL_CUST_PROD01" etc.
    Any help much appreciated.
    Edited by: Praveen Rangineni on Aug 4, 2008 4:10 PM

    Yes..That can be a possible approach. But the product maintenance workbench will not allow you to delete the base category with which the product was created.
    Instead the best way is to use this recategorization trx. COMM_PROD_RECATEG to change the category assignment of all your products on the fly.
    Please use this in TEST mode first and then go for it!
    Thanks,
    Sudipta.
    Note: Unfortunately, the report cannot be executed to delete the assignment of a category to a product when that category is assigned to the base hierarchy.
    In that case, a report program to reassign the base hierarchy would be 1 option. Alternatively, you need to purge your product data in CRM and restart the download from ECC after making the customizing change.
    Edited by: Sudipta Sarma on Aug 5, 2008 1:00 AM

  • Product Replication from CRM 5.0 to ECC 6.0

    Hi,
        My requirement is to replicate newly created product master from CRM  to ECC.
       For this I created subscription with publication name <b>Product Materials (MESG)</b>.
       Nest created product in CRM,  but this product is not replicated to ECC. But  BDoc generated successfully with status green.
       Where as new sales orders,change sales orders, BP changes, Product master changes are replicated in ECC from CRM and Vice Versa.
        Appreciate, if some one could tell me the steps I need to do in ECC & CRM to replicate new products created in CRM into ECC.
    Thanks & Best Regards,
    SAP CRM MW.
    Message was edited by:
            SAP CRM

    Hi BPB,
    Have you created a number range for materials in CRM?
    If you create materials in the R/3 system and the CRM system in parallel, duplicate numbers for different materials may occur if the number ranges in the R/3 system and the CRM system are overlapping. Duplicate numbers do not cause errors because each material gets an internal unique identifier in addition. To avoid duplicate numbers you have to make sure that the number ranges for materials in the CRM system and the R/3 system do not overlap.
    Remove the subscription in Adminconsole that is not required for the product upload.
    The upload function is only active in product processing if this was allowed in Customizing.
    The corresponding path in the SAP reference IMG is 'Customer Relationship Management -> Master Data -> Product -> Settings for Product Type -> Allow Upload for a Product Type'.
    <b>Reward points if it helps!!</b>
    Best regards,
    Vikash.
    Message was edited by:
            Vikash Krishna

  • Can we Delete the Product/Material  from Product Master in CRM

    Hi Gurus,
    I want to delete some test products from Product master, I don't see any link for delete there in product master transaction.
    Can we Delete the Product from Product Master in CRM??
    Thanks in Advance.
    Regards,
    Manoj Tiwari

    Try this:
    *& Report  ZVB_PRODUCT_DELETE          (release CRM 4.0 SP03)          *
    *&         Instructions are in OSS Note #427332                        *
    report  zvb_product_delete line-size 300.
    const, include
    include com_product_const001.
    include com_product_const003.
    include com_product_const009.
    include com_product_const011.
    include com_settype_attribute_const03.
    tables:  comm_iproduct,                                     "#EC NEEDED
             comm_product.
    constants:
           gc_program type programm value 'COM_PRODUCT_DELETE_SINGLE'.
    data:  gv_product_guid type comt_product_guid,
           gv_prty  type comt_product_type,
           gv_syslog(70)  type c,
           lv_mobile_active  type comt_boolean,
           lv_delete  type comt_boolean value 'X'.
    data:  lt_settypes      type  comt_frgtype_tab_ext,
           lt_status_guid   type comt_prd_status_guid_tab.
    data: begin of lt_products occurs 0,
             product_id   like comm_product-product_id,
             product_guid like comm_product-product_guid,
          end of lt_products.
    Screen User query
    selection-screen comment /1(60) text-006.
    selection-screen skip 2.
    select-options: s_prid for comm_product-product_id.
    *parameters: p_prid type comt_product_id   obligatory,
    parameters: p_prty type comt_product_type obligatory default '01',
                p_logs type comt_logsys       obligatory,
                p_objf type comt_product_object_family,
                p_send  as checkbox modif id 001 default on,
                p_usage as checkbox modif id 001 default off,
                p_test  as checkbox default 'X'.
    at selection-screen output.
      perform check_mobile_download
          changing lv_mobile_active.
      if lv_mobile_active is initial.
        loop at screen.
          check screen-group1 = '001'.  "disable field p_send, p_usage
          screen-active = '0'.
          modify screen.
        endloop.
      endif.
    start-of-selection.
    perform check_authority.
    Write syslog entry
    concatenate 'Rep. ' sy-repid ': ' p_prid(30) '/' p_prty '/' p_logs
            into gv_syslog.                                    "#EC NOTEXT
    call 'C_WRITE_SYSLOG_ENTRY'
       id 'TYP' field ' '
       id 'KEY' field 'C00'
       id 'DATA' field gv_syslog  .
    inactive product are not supported here
    select * from comm_iproduct
            where product_id    = p_prid
            and   product_type  = p_prty
            and   object_family = p_objf
            and   logsys        = p_logs.
    endselect.
    if sy-subrc = 0.
       write: / text-001, text-005.
       exit.
    endif.
    read products according to the selection criteria
      select * from comm_product
             into corresponding fields of table lt_products
             where product_id    in s_prid
             and   product_type  = p_prty
             and   object_family = p_objf
             and   logsys        = p_logs.
      if sy-subrc ne 0.
        write: / text-010.
        exit.
      endif.
      loop at lt_products.
      read product and enqueue
        perform product_enqueue
             using lt_products-product_id
                   p_prty
                   p_logs
                   p_objf
             changing gv_product_guid
                      gv_prty.
        check not gv_product_guid is initial.
        if p_usage = on.
          perform check_usage
                  using gv_product_guid
               changing lv_delete.
        endif.
        check lv_delete = on.
        check p_test = space.
      first delete the component of the IBase
        perform delete_ibasecomponent
             using gv_product_guid.
        perform delete_extensions
             using gv_product_guid
                   lt_settypes.
        perform delete_settypes
             using gv_product_guid
                   lt_settypes
          changing lt_status_guid.
        perform delete_interlinkages
             using gv_product_guid.
        perform delete_pme_data                      "multivalue attributes
             using gv_product_guid.
        perform delete_decoupled_data                "long text, longmatnr,
             using gv_product_guid.                  "ibase prodvar,...
        perform delete_status
             using lt_status_guid.
        perform delete_favorites
             using gv_product_guid.
        perform delete_clear_case
             using gv_product_guid.
        if p_send = 'X'.
          perform send_deletion_to_mw
               using gv_product_guid.
        endif.
        delete from comm_product     where product_guid = gv_product_guid.
        delete from comm_producth    where product_guid = gv_product_guid.
        delete from comm_product_idx where product_guid = gv_product_guid.
        delete from comm_prwb_user_2 client specified
               where client = sy-mandt and last_object = gv_product_guid.
        call function 'BAPI_TRANSACTION_COMMIT'
          exporting
            wait = 'X'.
        write: / text-001, lt_products-product_id, text-004.
      endloop.
    *&      Form  product
    form product_enqueue
       using   iv_prid  type comt_product_id
               iv_prty  type comt_product_type
               iv_logs  type comt_logsys
               iv_objf  type comt_product_object_family
      changing ev_pguid type comt_product_guid
                          ev_prty type comt_product_type.
      data ls_product type  comt_product.
      call function 'COM_PRODUCT_GUID_GET'
        exporting
          iv_product_id    = iv_prid
          iv_product_type  = iv_prty
          iv_logsys        = iv_logs
          iv_object_family = iv_objf
          iv_show_popup    = 'X'
        importing
          ev_product_guid  = ev_pguid
        exceptions
          not_found        = 1
          wrong_call       = 2
          internal_error   = 3
          others           = 4.
      if sy-subrc <> 0.
        write: / text-001, space, iv_prid.
        write:   text-003.        "Product not found
        exit.
      else.
        write: / text-001, space, iv_prid.
        write:   text-002.        "Product found
      endif.
      call function 'COM_PRODUCT_READ_SINGLE'
        exporting
          iv_product_guid = ev_pguid
          iv_enqueue_mode = ' '
        importing
          es_product      = ls_product
        exceptions
          not_found       = 1
          wrong_call      = 2
          foreign_lock    = 3
          enqueue_failed  = 4
          others          = 5.
      if sy-subrc <> 0.
        if sy-subrc > 2.
          write: / text-001, space, iv_prid.
          write:   text-007. "Product enqueued
          exit.
        else.
          message id sy-msgid type sy-msgty number sy-msgno
             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          exit.
        endif.
        exit.
      endif.
      ev_prty = ls_product-product_type.
    special authotirty check (with considering the assigned
    categories)
    call function 'COM_PRODUCT_CT_AUTHORITY_CHECK'
       exporting
         iv_auth_act     = '06'
         iv_product_guid = ev_pguid
       exceptions
         no_authority    = 1
         wrong_call      = 2
         internal_error  = 3
         others          = 4.
    if sy-subrc <> 0.
       message id sy-msgid type sy-msgty number sy-msgno
               with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    endform.                               " product
    *&      Form  delete_extensions
    form delete_extensions
         using iv_product_guid type comt_product_guid
               et_settype      type comt_frgtype_tab_ext.
      data:  lv_db_tab        type ddobjname,
             lv_subrc_pr_guid like sy-subrc,
             table_name_ref   type ref to data,
             lt_extension     type comt_frgtype_tab_ext,
             ls_extension     type comm_frgtype_ext.
      field-symbols: <table_name> type any,
                     <field_name> type any.
      check not iv_product_guid is initial.
    delete extensions e.g. COMM_PRFREEATTR, CRMM_PR_TAX, COMM_PR_UNIT,
                           COMM_PR_SHTEXT,COMM_PR_GTIN, comm_prprdcatr,..
      perform load_extensions
              using  iv_product_guid
           changing  lt_extension
                     et_settype.
      loop at lt_extension into ls_extension.
        lv_db_tab = ls_extension-frgtype_tab.
        check not lv_db_tab is initial. "CRM_CAT_SAT & CRM_CAT_PUR
      does table exist ?
        call function 'DDIF_NAMETAB_GET'
          exporting
            tabname   = lv_db_tab
          exceptions
            not_found = 1
            others    = 2.
        check sy-subrc = 0.
      Due to any reason (I don't know why) sometimes we have product_guid
      and sometimes we have frg_guid as name of the key field.
        create data table_name_ref type (lv_db_tab).
        assign table_name_ref->* to <table_name>.
        assign component 'PRODUCT_GUID' of structure <table_name>
               to <field_name>.
        lv_subrc_pr_guid = sy-subrc.
        if lv_subrc_pr_guid = 0.
          delete from (lv_db_tab)
                 where product_guid = iv_product_guid.
        else.
          delete from (lv_db_tab)
                 where frg_guid     = iv_product_guid.
        endif.
      delete history of extension table
        concatenate ls_extension-frgtype_tab 'H' into lv_db_tab.
        create data table_name_ref type (lv_db_tab).
        assign table_name_ref->* to <table_name>.
        assign component 'LOGSYS' of structure <table_name>
                                  to <field_name>.
        check sy-subrc = 0.
        call function 'DDIF_NAMETAB_GET'
          exporting
            tabname   = lv_db_tab
          exceptions
            not_found = 1
            others    = 2.
        check sy-subrc = 0.
        if lv_subrc_pr_guid = 0.
          delete from (lv_db_tab)
                 where product_guid = iv_product_guid.
        else.
          delete from (lv_db_tab)
                 where frg_guid     = iv_product_guid.
        endif.
      endloop. "  end of loop for all extensions
    endform.                    " delete_extensions
    *&      Form  delete_settypes
    form delete_settypes
         using iv_product_guid   type comt_product_guid
               it_settypes       type comt_frgtype_tab_ext
        changing et_status_guid  type comt_prd_status_guid_tab.
      data: ls_reldesc type  coms_pr_org_rel,
            lt_reldesc type  comt_pr_org_rel_tab,
            lt_reltab  type  ref to data,
            ls_settype type  comt_settype_ext,
            ls_table   type  tabname,
            ls_status_guid   type crmt_object_guid.
      field-symbols:
           <fs_reltab>   type any table,
           <fs_relrow>   type any,
           <fs_settype>  type comt_frgtype_guid,
           <fs_setguid>  type comt_frg_guid,
           <fs_statguid> type crmt_object_guid.
    memorise product status guide
      ls_status_guid = iv_product_guid.
      append ls_status_guid to et_status_guid.
    load description of relation tables
      call method cl_com_product_org_type=>comc_pr_org_link_read_all
        importing
          et_pr_org_rel = lt_reldesc
        exceptions
          no_desc       = 0.
    for all relation types (e.g. comm_pr_frg_rel, comm_pr_frg_rod)
      loop at lt_reldesc into ls_reldesc.
      read product/settype relations
        create data lt_reltab type (ls_reldesc-link_table_ttyp).
        assign lt_reltab->* to <fs_reltab>.
        call function ls_reldesc-func_rel_read_pr
          exporting
            iv_product_guid = iv_product_guid
          importing
            et_rel          = <fs_reltab>
          exceptions
            wrong_call      = 1
            not_found       = 2
            others          = 3.
        check sy-subrc = 0.
      for all links...
        loop at <fs_reltab> assigning <fs_relrow>.
          assign component 'FRAGMENT_TYPE' of structure <fs_relrow>
                                                     to <fs_settype>.
          assign component 'FRAGMENT_GUID' of structure <fs_relrow>
                                                     to <fs_setguid>.
          assign component 'STATUS_OBJECT' of structure <fs_relrow>
                                                     to <fs_statguid>.
          read table it_settypes with key frgtype_guid = <fs_settype>
                                 into ls_settype.
          check sy-subrc = 0.
        settype table
          delete from (ls_settype-frgtype_tab)
                 where frg_guid = <fs_setguid>.
        history table
          concatenate ls_settype-frgtype_tab 'H' into ls_table.
          delete from (ls_table)
                 where frg_guid = <fs_setguid>.
        memorise settype status guide
          if not <fs_statguid> is initial.
            ls_status_guid = <fs_statguid>.
            append ls_status_guid to et_status_guid.
          endif.
        endloop. "of links
      relation table (e.g. comm_pr_frg_rel)
        delete from (ls_reldesc-link_table)
               where product_guid = iv_product_guid.
      history table
        concatenate ls_reldesc-link_table 'H' into ls_table.
        delete from (ls_table) where product_guid = iv_product_guid.
      endloop. " of relation types
    endform.                    " delete_settypes
    *&      Form  delete_interlinkages
    form delete_interlinkages
         using iv_product_guid type comt_product_guid.
      constants: cv_db_name(8)  type c value 'COMM_IL_',
                 cv_suffix_h(2) type c value '_H'.
      data: lt_ilinks   type  comt_il_data_tab,
            lt_reltype  type  comc_il_reltype_tab with header line,
            lv_ddictype type  dd02v-tabclass,
            lv_dbname        type  comt_structure.
    CHECK p_objf IS INITIAL.
    first we have to read all ILs where the productguid is sourceguid
      refresh lt_ilinks.
      call function 'COM_IL_API_WHERE_USED'
        exporting
          iv_objectguid   = iv_product_guid
          iv_objtype      = gc_bus_objtype_bus1178
          iv_direction    = 'S'
        importing
          et_interlinkage = lt_ilinks.
      check not lt_ilinks[] is initial.
      delete adjacent duplicates from lt_ilinks comparing reltype.
    read ilinkage customizing
      select * from comc_il_reltype into table lt_reltype
         for all entries in lt_ilinks where reltyp = lt_ilinks-reltype.
    delete interlinkages
      loop at lt_reltype.
        if lt_reltype-streltyp ne space.
          concatenate cv_db_name lt_reltype-streltyp into lv_dbname.
        else.
          concatenate cv_db_name lt_reltype-reltyp   into lv_dbname.
        endif.
      delete data
        call function 'DDIF_NAMETAB_GET'
          exporting
            tabname   = lv_dbname
          importing
            ddobjtype = lv_ddictype
          exceptions
            not_found = 1
            others    = 2.
        check sy-subrc = 0 and lv_ddictype = 'TRANSP'.          "#EC NOTEXT
        delete from (lv_dbname) where sourceguid = iv_product_guid.
      delete history
        check lt_reltype-change_doc = 'X'.
        concatenate lv_dbname cv_suffix_h into lv_dbname.
        call function 'DDIF_NAMETAB_GET'
          exporting
            tabname   = lv_dbname
          importing
            ddobjtype = lv_ddictype
          exceptions
            not_found = 1
            others    = 2.
        check sy-subrc = 0 and lv_ddictype = 'TRANSP'.          "#EC NOTEXT
        delete from (lv_dbname) where sourceguid = iv_product_guid.
      endloop.
    endform.                    "delete_interlinkages
    *&      Form  delete_pme_data
    form delete_pme_data
         using iv_product_guid type comt_product_guid.
    delete multivalue attributes from PME
      data: lt_pmemap  like standard table of comm_pme_prd_map,
            ls_pmemap  like comm_pme_prd_map.
      select *  into table lt_pmemap
                from comm_pme_prd_map
                where crm_object_guid = iv_product_guid.
      check sy-subrc = 0.
      loop at lt_pmemap into ls_pmemap.
        call function 'CRM_SCE_DB_KB_DELETE'
          exporting
            iv_kbid = ls_pmemap-kbid.
      endloop.
      delete comm_pme_prd_map from table lt_pmemap.
    endform.                    "delete_pme_data
    *&      Form  send_deletion_to_mw
    form send_deletion_to_mw
         using iv_product_guid type comt_product_guid.
      data:  cv_function_module like  rs38l-name
                  value 'CRM_PROD_SEND_DELETION_MESSAGE'.       "#EC NOTEXT
      data:  lt_product_guid  type comt_product_s_tab with header line.
      lt_product_guid-product_guid = iv_product_guid.
      append lt_product_guid.
      call function 'FUNCTION_EXISTS'
        exporting
          funcname           = cv_function_module
        exceptions
          function_not_exist = 1
          others             = 2.
      check sy-subrc = 0.
      call function cv_function_module
        exporting
          it_product_guid = lt_product_guid[]
          iv_test_only    = space
        exceptions
          internal_error  = 1
          others          = 2.
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " send_deletion_to_mw
    *&      Form check_mobile_download
    form check_mobile_download
      changing ev_mobile_active type comt_boolean.
      data:
            cv_db_tab   type ddobjname value 'SMOMARA'.
      data: lv_lines    type i value 0.
      clear ev_mobile_active.
      call function 'DDIF_NAMETAB_GET'
        exporting
          tabname   = cv_db_tab
        exceptions
          not_found = 1
          others    = 2.
      check sy-subrc = 0.
      select count( * ) into lv_lines
        from (cv_db_tab) up to 10 rows.                     "#EC CI_NOWHERE
      if lv_lines > 0.
        ev_mobile_active = on.
      endif.
    endform.                    " check_mobile_download
    *&      Form check_authority
    form check_authority.
      tables:  t000, comc_pr_tool_reg.                          "#EC NEEDED
    check productiv system - report must not be executed
      select single * from t000 client specified             "#EC CI_CLIENT
                      where mandt = sy-mandt.
      if t000-cccategory = 'P'.
        message e807(com_product) .
        leave.
        leave to transaction '    '.
      endif.
    Check authority for product delete
      call function 'COM_PRODUCT_AUTHORITY_CHECK'
        exporting
          iv_auth_act    = '06'
        exceptions
          no_authority   = 1
          wrong_call     = 2
          internal_error = 3
          others         = 4.
      if sy-subrc ne 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      MESSAGE e808(com_product).
        leave.
        leave to transaction '    '.
      endif.
    Additional step: registration
      select single * from comc_pr_tool_reg
             where program_name = gc_program
             and   user_name    = sy-uname
             and   exec_date    = sy-datum.
      if sy-subrc ne 0.
        message e809(com_product).
      endif.
    endform.                    " check_authority
    *&      Form  delete_decoupled_data
    form delete_decoupled_data
         using iv_product_guid type comt_product_guid.
      include com_product_const018.
    Deleting decoupled and customer requested data (long_text, longmatnr,
      upload registry, ibase product variants coming from R/3,
      archive verify registry). Documents like PDF,XLS,DOC,JPG stored in
      Content Management will not be deleted
    load BADI implementations
      class: cl_exithandler definition load.
      data:  exit_obj type ref to if_ex_com_product_delete.
      call method cl_exithandler=>get_instance
        exporting
          exit_name              = gc_badi-com_product_delete
          null_instance_accepted = on
        changing
          instance               = exit_obj.
    call BADI implementations (User Exit)
      call method exit_obj->delete_extra_data
        exporting
          iv_product_guid = iv_product_guid.
    endform.                    " delete_decoupled_data
    *&      Form  load_extensions
    form load_extensions
         using iv_product_guid type  comt_product_guid
      changing et_extension    type  comt_frgtype_tab_ext
               et_settype      type  comt_frgtype_tab_ext.
      data: lt_prd_cat      type  comt_prod_cat_rel_tab,
            ls_prd_cat      type  comt_prod_cat_rel,
            lt_cat_frg      type  comt_prcat_frag_rel_tab,
            ls_cat_frg      type  comt_prcat_frag_rel,
            lt_settype_guid type  comt_frgtypeguid_tab,
            ls_settype_guid type  comt_frgtype_guid,
            lt_settype      type  comt_frgtype_tab_ext.
      refresh et_extension.
    read categories assigned to product
      call function 'COM_PROD_CAT_REL_READ_WITH_PR'
        exporting
          iv_product_guid = iv_product_guid
        importing
          et_set          = lt_prd_cat.
      loop at lt_prd_cat into ls_prd_cat.
      read allowed settypes for categories
        call function 'COM_PRCAT_FRAG_REL_READ'
          exporting
            iv_category_guid  = ls_prd_cat-category_guid
          importing
            et_prcat_frag_rel = lt_cat_frg
          exceptions
            wrong_call        = 1
            others            = 2.
        check sy-subrc = 0.
        refresh lt_settype_guid.
        loop at lt_cat_frg into ls_cat_frg.
          ls_settype_guid = ls_cat_frg-frgtype_guid.
          append ls_settype_guid to lt_settype_guid.
        endloop.
      read settype defintions
        call function 'COM_SETTYPE_READ_MULTIPLE'
          exporting
            it_settype_guid = lt_settype_guid
          importing
            et_settype      = lt_settype
          exceptions
            nothing_found   = 1
            others          = 2.
        if sy-subrc =  0.
        only settypes
          et_settype[] = lt_settype[].
          delete et_settype[] where
            ( prod_comp_type = gc_prod_comp_type-extension or
              prod_comp_type = gc_prod_comp_type-simple_extension ).
        only extensions
          delete lt_settype[] where
            ( prod_comp_type ne gc_prod_comp_type-extension and
              prod_comp_type ne gc_prod_comp_type-simple_extension ).
          et_extension[] = lt_settype[].
        endif.
      endloop. " end of product categories
    endform.                    " load_extensions
    *&      Form  delete_status
    form delete_status
      using it_status_guid type comt_prd_status_guid_tab.
      data:
        lt_status like crm_jsto_pre occurs 0,
        ls_status type crm_jsto_pre,
        ls_status_guid type crmt_object_guid.
      loop at it_status_guid into ls_status_guid.
        ls_status-objnr = ls_status_guid.
        append ls_status to lt_status.
      endloop.
      call function 'CRM_STATUS_DELETE_MULTI'
        tables
          objnr_table = lt_status.
    endform.                    " delete_status
    *&      Form delete_favorites
    form delete_favorites
         using iv_product_guid type  comt_product_guid.
      call function 'COM_PRODUCT_DELETE_FAVORITES'
        exporting
          iv_object_guid = iv_product_guid.
    endform.                    " delete_favorites
    *&      Form delete_clear_case
    form delete_clear_case
         using iv_product_guid type  comt_product_guid.
      data:   ls_customizing type comc_product,
              lv_clear_case_guid type comt_clear_case_guid.
    Is cusotmizing-flag INACTIV_PROD activated ?
      call method cl_com_product_general=>comc_product_read_all
        importing
          es_prod_general = ls_customizing
        exceptions
          not_found       = 1
          others          = 2.
      check ls_customizing-inactive_prod = on.
      select single clear_case_guid from comm_clear_targ        "#EC *
               into lv_clear_case_guid
               where object_guid = iv_product_guid  "active
                 and object_class = 'PROD'.
    normaly two entries for active and inaktive product version
      delete from comm_clear_targ
               where clear_case_guid = lv_clear_case_guid
                 and object_class = 'PROD'.
      delete from comm_clear_stack
             where guid = lv_clear_case_guid
               and application = 'PROD'.
    endform.                    "delete_clear_case
    *&      Form check_usages
    form check_usage
         using iv_product_guid type  comt_product_guid
      changing ev_delete type comt_boolean.
      include sbal_constants.
      data:  cv_function_module like  rs38l-name
                  value 'COM_PRODUCT_USAGE_CHECK'.              "#EC NOTEXT
      data:  ls_product  type comt_product,
             lt_product  type comt_product_tab.
      data:  ls_logheader     type bal_s_log,   "Kopfdaten des Protokolls
             lv_loghandle     type  balloghndl.
      data:  ls_msg_filter type bal_s_mfil,
             ls_log_filter type bal_s_lfil,
             lt_msg_handle type bal_t_msgh,
             ls_log_handle type bal_s_logh,
             ls_msg_handle type balmsghndl,
             ls_msg        type bal_s_msg,
             ls_string     type string.
    does CRM function exist
      call function 'FUNCTION_EXISTS'
        exporting
          funcname           = cv_function_module
        exceptions
          function_not_exist = 1
          others             = 2.
      check sy-subrc = 0.
    create log handle
      ls_logheader-aldate    = sy-datum.
      ls_logheader-altime    = sy-uzeit - 10.
      ls_logheader-aluser    = sy-uname.
      ls_logheader-alprog    = sy-repid.
      call function 'BAL_LOG_CREATE'
        exporting
          i_s_log                 = ls_logheader
        importing
          e_log_handle            = lv_loghandle
        exceptions
          log_header_inconsistent = 1
          others                  = 2.
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
      ls_product-product_guid = iv_product_guid.
      append ls_product to lt_product.
    call usage checks
      call function cv_function_module
        exporting
          it_product   = lt_product
          iv_loghandle = lv_loghandle.
    filter settings
      ls_log_handle-sign   = 'I'.
      ls_log_handle-option = 'EQ'.
      ls_log_handle-low    = lv_loghandle.
      append ls_log_handle to ls_log_filter-log_handle.
    get messages
      call function 'BAL_GLB_SEARCH_MSG'
        exporting
          i_s_log_filter = ls_log_filter
          i_s_msg_filter = ls_msg_filter
        importing
          e_t_msg_handle = lt_msg_handle
        exceptions
          msg_not_found  = 1
          others         = 2.
      check sy-subrc = 0.
      ev_delete = space.
      write: / text-001, text-008.
    read messages
      loop at lt_msg_handle into ls_msg_handle.
        call function 'BAL_LOG_MSG_READ'
          exporting
            i_s_msg_handle = ls_msg_handle
          importing
            e_s_msg        = ls_msg
          exceptions
            log_not_found  = 1
            msg_not_found  = 2
            others         = 3.
        check sy-subrc = 0.
        message id ls_msg-msgid type ls_msg-msgty number ls_msg-msgno
            with ls_msg-msgv1 ls_msg-msgv2 ls_msg-msgv3 ls_msg-msgv4
            into ls_string.
        write: /, ls_string.
        clear ls_msg.
      endloop.
    endform.                    " check_usages
    *&      Form  delete_ibasecomponent
          text
         -->P_GV_PRODUCT_GUID  text
    form delete_ibasecomponent using p_product_guid.
      data: lv_guid22 like sysuuid-c22,
            ls_comp   type  ibas_dat1.
      tables: ibin.
      break pvho.
      call function 'GUID_CONVERT'
        exporting
          iv_guid_x16            = p_product_guid
        importing
          ev_guid_c22            = lv_guid22
        exceptions
          no_unicode_support_yet = 1
          parameters_error       = 2
          others                 = 3.
    find the component
      select * from ibin
             where objnr = lv_guid22.
        clear ls_comp.
        ls_comp-instance = ibin-instance.
        ls_comp-ibase = ibin-ibase.
        call function 'IBASE_COMP_DELETE'
          exporting
            i_comp              = ls_comp
          exceptions
            data_not_consistent = 1
            ibase_locked        = 2
            not_succesful       = 3
            others              = 4.
        if sy-subrc eq 0.
          call function 'IBASE_SAVE'.
        endif.
      endselect.
    endform.                    " delete_ibasecomponent

  • Cross Client and Client Specific Customization in CRM 7.0

    Hi All,
    I have got the CRM best practices customization documnet on below link. Now there is a list of documents with seqeunce and where we perform the different customization
    Best practice documents are available here: http://help.sap.com/bp_crm70/CRM_DE/HTML/Content_Library_CRM_EN_DE.HTM
    If I want to distinguish between all these customization topics in two group. So Is is possible two seprate these customization steps in Cross Cleint and Client Specific customization Group.?
    Regards
    PG

    Hi Sathyadev.
    it is Really Helpful answer to me.I assaigned points to you.i had one requirement this issue like after entering Lead product in sales order, i am able to select dependent products manually.how to make automatically after entering lead products the dependent products replace lead product.
    where we can do this customizing to fulfil this unctionality.
    In the same way like i am not able to maintain Lead product for Upselling product.can u please tell me how to maintain lead products for Upselling products
    Thanks & Regards
    Kishor KUmar
    Edited by: kishore kumar on Mar 5, 2010 8:45 AM

  • Creation of new product hierarchy and products in SAP CRM.

    Dear all,
    please help with resolving of following issue:
    In CRM system base hierarchies were replicated from R/3 system with materials. Current requirement is to create new materials in CRM directly (as standalone scenario). As far as I understand, I have to create new hierarchy with required list of set types in order to allow creation of products in CRM directly (product type = material). Can anybody describe changes in the system step by step, what should be changed and where?
    As a result I need to have a possibility to create products in CRM directly for sales scenario processing.
    Thank you in advance!

    Hi Jorge,
    thank you so much for your reply!
    Here what I tried to do:
    1. I created new category in hierarchy R3PRODSTYP, added 3 set types: COMM_PR_MAT, COMM_PR_SHTEXT, COMM_PR_UNIT as basic set types.
    2. In the SPRO - Cross-Application Components - SAP Product - Settings for Product Type - Number Assignment - Define Number Ranges for the Product Type "Material" I found my new product category is unassigned, so I assigned it to the "CRM Products" group.
    3. Farther I tried to create a new product for created category in CRM Web UI, but was not able to find it in the Base category search field. All categories correctly displayed from R3PRODSTYP, but my new category is absent. What can be the reason of category absence? Btw, it cannot be found even when I try to display whole hierarchy in Web UI, however, in SAP GUI, it can be seen via tcode comm_hierarchy.
    Here is the setup of hierarchies in the system:
    I have no idea how to check #3 "Ensure the hierarchy is assigned to CRM application".
    Can you please suggest, what should be changed in addition? Thank you!

  • How to Check product warranty in CRM based on R/3 invoice creation date

    Dear all,
    As per our client business process, for a sales product warranty starts once after creation of Invoice in ECC system. in that case, how to perform warranty check in CRM Complaints based on ECC Invoice creation date.
    Please suggest me the standard SAP solution for this. Your help will be highly appreciated
    Regards
    Raghu ram
    Edited by: Raghu Ram on Jan 11, 2010 7:24 AM

    Hi Raghu,
    This is pure development. But it is possible.
    You need to use a function module to create warranty contract in CRM against to ECC invoice with the following prerequisites
    1. Same SLA should be available in both ECC and CRM (In ECC there is no SLA concept, in that case u need to maintain SLA as text component in delivery/sales order or any Z transaction document, the same can be pulled into CRM warranty contract)
    2. All the products sold in ECC should be having serial number during delivery process. Then the combination of product and serial number will be created an equipment master in ECC. This equipment master should be replicated to CRM as and when it is created in ECC.
    3. The partners in equipment master should be same as in invoice or sales order document in ECC
    4.  Addiitionally, all the products in the ECC invoice to be replaced as service material with SCN item category (We used this logic), so you can use any other logic to get service line item. You can use any common service material also as line item.
    5. Male the status profile settings to release the contract once it is created and saved in CRM
    6. In the complaint or service request document, set the contract determination as Unique number (I think "D")
    As standard, You can create wrranty contract and assign warranty master as and when ECC invoice is created by manual method.
    Hope this development logic will be useful.
    Regards,
    Ram.

Maybe you are looking for

  • Can't open a few files

    I can't open some documents I made in Pages.  The documents can only be found if I click Pages then click "recents" yet even then the documents are gray instead of black and unclickable. If I click at the tab "file" at the top bar of the desktop with

  • DPX files can be opened in 1.0.2 but not in 1.0.4

    I have about 4000 DPX files that I can open on my copy of Color 1.0.2 at home, but not on my copy of Color 1.0.4 at work. They were exported from Cineform NeoHD on windows. Shake also seems to reject them, but After Effects has no problem with them.

  • Why am I having intermittant problems with my Galaxy Note 4 touch screen?

    I've had my new Samsung Galaxy Note 4 for two days now and have noticed intermittant problems with the touch screen.  I've even added more touch screen sensitivity in the settings area and it has NOT helped at all.  Sometimes I can tap on the screen

  • 64bit JVM for JRE1.6.0.27 crashes

    I get this report below when my JVM crashes unexpectedly. Although I run on Win XP, I get the same outcome on Win 7 and Linux machines. Any help/pointers greatly appreciated. Thanks very much. # A fatal error has been detected by the Java Runtime Env

  • 'SO_DOCUMENT _SEND_AP1' and CC recipients

    In 'SO_DOCUMENT SENDAP1' is there a parameter to flag to send e-mail to CC recipients (instead of primary recipient ) ? Thanks in advance Andrew