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.
Similar Messages
-
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 developerHi 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. -
How can we create Versions for Products in SAP CRM
Hi All,
We want use Product Versions in our CRM IC Webclient. We want to be able to select a product and then have a list of versions to pick from. Can anyone tell me if they have configured Versions for Products in their SAP CRM system. If yes, then how did you go about it.
Thanks,
Ramesh NallabelliHi Arup and Shanthala,
Thanks for the prompt responses. Appreciate your help. We want to create Product versions like this: Product: Windows OS Version: 95, 98, XP, Vista, 7, etc.
When I try to create a configurable product, using the Configuration tab, to create or use a product model I see an error message: PME installation with errors The long text is: The environment variable PME_HOME that includes the PME application has to exist locally in order to start the PME from CRM.
This indicates the configuration of IPC in our CRM system. This is something that we have not undertaken so far.
When I use the Poduct Variants tab to create a product variant for a configurable product, I can't edit here. This view opens in a display only mode. After reading some more about this, It looks like variant configuration needs to be used in tandem with ERP variant configuration. There might also be a need to recreate this in the Java configuration engine. We are going to create these products in CRM only, so this might not work for us.
Regards,
Ramesh -
Hello All,
I want to maintain Variants for a product in CRM using commpr01,
How do i maintain the variants to a product?
when i open the commpr01 and select a Product Category and flag material as Configurable,
the product Opens with new Tab pages 1.Configuration 2.Product Variants,
But i donot see any Maintainance available there..
How can i maintain the Variants ..
Plz help
FUll points gaurenteed...
Thanks in Advance
ArshadHi Arshad,
For Variants you need to have ERP system as an backend as CRM standalone or Products created in CRM dont allow a Variant assignment for the Same.
If you are having an Backend ERP system you assign a Variant to the Base article and Dowload the same in CRM which shall appear as variant of the Main article in Relationship Tab.
Hope it helps you,
Thanks and Regards,
RK. -
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 TiwariTry 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 -
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_GuyHi
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
amarHi 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,
sasmitaHi 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  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 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 kumarHi 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 -
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
Navdeephi, 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 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 PHI 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 -
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 PMYes..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 CRMHi 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 -
Replicating Product Catalog for CRM E-commerce (empty)
Hi All,
We have CRM 5.0 and trying to implement B2B E-Commerce. We created a product catalog in the CRM and configured XCM and shopadmin application. We created webshops for B2B. The B2b Webshops list is available.
I replicated the product catalog, but When I watch the ftp folder I saw is empty. The system created folder but not images.
But after selecting any of the shop we get this error.
*The catalog that you have selected is currently unavailable; try again later *
Can anyone tell me how to solve this problem.
We have checked Trex and J2ee connection too
¿Thank youHi Lyda,
My best suggestion is, to separate the catalog product content from MIME (images) content while publishing.
First try publishing only a very small catalog product content without images. You can do that by not entring any value in the field - 'Publishing Computer ID' Also no need to check any of the check boxes under this field. Make sure you have enabled all required catalog components (header, variant and products etc) Also make sure you have all green lights after the initial replication.
If you have some red lights then check each red line for the error. Make sure you have esablished the necessary connection to TREX using tx SRMO
Also check XCM configuration http://CRM server:port/b2b/admin/xcm/init.do for a valid webcatalog component configuration.
If all of the above settings are OK, then check with BASIS team whether TREX installation is done properly with appropraite XCM configuration. Since you are on CRM 5.0, then SLD is a valid component where TREX has to be registered with it.
You may tcodes SRSE. TREXADMIN and SES_ADMIN to validate the TREX availability and indexing.
Hope this helps you in solving your problem
Do not forget to reward the useful answers
Regards,
Paul Kondaveeti -
How to create a product catalog in crm(by the end user of the system)?
how can we an end user create a product catalog?
what is the diff b/n prod cat and prod?
we download the prod from r/3.
how we get the prod cat done in crm for the customers and consumers and how it is done?
thank you,hi
first of all we need to look at what is catalog management before proceding with product and product catalog.
You use this business scenario to create a centralized product catalog that contains product descriptions, multimedia objects, pricing, and associated literature. The catalog enables quick and easy customer access to timely and personalized product information, structured in such a way that most meets your customers needs.
Product catalogs are implemented in sales processes and are of particular importance in CRM Web Channel for presenting your products in the Web shop.
difference between the product and product catalog
this is not the thing that product and product catalog are completely different entity.
Product catalog : A grouping together of products from your product master data, in a structured hierarchy.
You use product catalogs to group together products to present them in the Web shop, Interaction Center, or in other forms of media, for example printed format or CD-ROM.
You can create various catalogs for your products in the product master and use them according to a validity date. For example, you could use certain products for the summer season, and other products for the winter season.
You can also tailor your product catalog to meet other needs by creating catalog variants. For example, you can create a catalog in English with the prices displayed in US Dollars.
so by above definition it is very much clear that products are actually assign to the catalog,i will give you an analogy that museum is a kind of catalog and you add different pictures to the museum,in the same way you add product to the product catalog according to the acatlog variant.
Now how you assign product to product catalog
Product Assignment
You assign products manually or automatically to a catalog area, depending on the catalog type. The product ID, product description, and status of all products is displayed, as is the information as to whether the item contains accessories or if it is a configurable product.
Prerequisites
You have created products in your product master in SAP CRM under Accounts and Products
Process
You select a catalog area in your product catalog, and edit the item list by assigning products to the area.
Manual Assignment
You can assign products manually on an individual basis or by copying a catalog area. You tend to choose manual product assignment for marketing-oriented catalogs that are subjected to editorial controls.
Individual assignment
In this case you select the catalog area in which the product should be assigned, manually search for the product in the product master, and assign it to the area.
Copying items from catalog areas
You select an area or subarea from another catalog and copy it to your new catalog. The system copies all products from the copied area to the new catalog, as long as they belong to the distribution chain assigned to the target catalog variant. From these products, you can then manually determine which products from the copied area you want to keep and which items you wish to delete.
The following is true for manually assigned products:
You can activate or deactivate items on an individual basis.
You can edit the list of accessories for manually assigned products. The system determines which accessories are maintained for the product in the product master and displays them in the item area of the catalog. You select which accessories should be displayed for the product in the catalog and activate them.
Manually assigned products can be included or removed from catalog views on an individual basis.
Automatic Assignment
You can assign products automatically to a catalog by transferring product hierarchies from your product master to the catalog areas. The categories, items, attributes, and documents contained in the product hierarchy are copied to the new catalog.
You use automatic product assignment mainly for functional catalogs, where products can be copied with very few changes, from the product categories of the product master. It enables a standardized characterization of your products in the catalog.
The following is true for products assigned to the catalog using product hierarchy transfer:
Product categories which make up the hierarchies become catalog areas in the catalog.
Product categories in the product hierarchy must be assigned to the distribution chain to which the target catalog variant is assigned. Otherwise the category is not transferred. The same applies to the items, texts, and documents assigned to the category.
Items are always active and cannot be individually activated or deactivated.
Accessories maintained for transferred product in the product master are automatically included and displayed in the catalog.
Transferred items cannot be individually included in catalog views or removed from them. Instead all items of the hierarchy are always contained in the view.
Lists of characteristics for transferred categories and items can be automatically created when transferring product hierarchies. The transferred values are included in the item overview of the product catalog.
how to create a product catalog
just have a look at this link
http://help.sap.com/saphelp_crm60/helpdata/en/1c/12b2dc57d644d19ea3a5c4156f904f/frameset.htm
your query regarding the products you have uploaded from the R3,now as above i said how you maintain and create the product catalog ,you just assign the products uploaded from the R3 to the product cataloag created in CRM.
more detail info you can see in these links
http://help.sap.com/saphelp_crm60/helpdata/en/91/be9642e5ef0731e10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_crm60/helpdata/en/46/27f09d25da5a68e10000000a1553f7/frameset.htm
http://help.sap.com/saphelp_crm60/helpdata/en/46/037716cfc604a9e10000000a114a6b/frameset.htm
if you read carefuly what i have said,it is pretty easy to implement ,you will see it yourself
guess it will help you
do revert back in case of any doubt
best regards
ashish
Maybe you are looking for
-
Can I upgrade my 2.4 iMac's HD (1st Aluminum gen) to a 1TB?
Hello, I have a 20" 2.4GHz iMac (first generation of the Aluminum series) with a pre-installed 320GB hard disk. I'd like to upgrade it to a 1TB. Is that possible? Would my machine run a 1TB or is my maximum a 500GB? I need to purchase the Hard disk s
-
I can't see sql server express 2012 from ssms 2008 R2 -- what do I need to download?
I'm running sql server 2008 R2 Developer on a win7 (pro) workstation. I would like to keep this installation because it has SSRS and Analysis Server. But I was not able to attach a sql 2012 DB so I downloaded Sql Server Express 2012 (per the pictur
-
I can't do a video chat, I can't do an audio chat and I don't even have the option to screen share even though I know I can. Keeps saying the user has timed out or there was an error in the connection. I have been searching the forums and cant find a
-
hello guys, i wanted to know about corecell feature and and core center i am using latest version now and my CPU fan is usually at 4440 RPM even with gaming but my system temperature increases from 43-47 usually when gaming ? is this
-
Path to download kernel path 95
Please let me know the path to download kernel path 95