cancel
Showing results for 
Search instead for 
Did you mean: 

Hiding System Status in Campaign Screen

Former Member
0 Kudos


Hi Everyone,

      I have created a Custom Status Profile for Campaign and assigned it to a Campaign Type. Now when I checked in Campaign Screen ,System is showing both System Status and User Status. So how can I hide all the System Status. Ours is CRM 7.0. So we dont have the option to hide all the System Status. I have checked the forums and implemented the note 1338896 - Sample BAdI Implementations: Hide system status. But it said it already present in the System. So please advice me how I can hide the System Status.

Regards,

Priyanka

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Giacomo,

    Thank you so much for the Support. Will develop the same.

     Thanks to you too Johannes

Regards,

Priyanka

Former Member
0 Kudos

Hi ,

   Now our System has been upgraded to CRM 7.0 EHP3. But still I am not able to see the Option " hide System status' in Campaign Type Configuration. Is it avaible only in EHP1. Please suggest.

Regards,

Priyanka

Former Member
0 Kudos

Hi Priyanka,

Add  code in Badi CRM_MKTPL_OBJ badi , Method Get_valuehelp_entrires , when fieldname = STATUS for filter the system status.

Regards,

Anil

Former Member
0 Kudos

Hi Priyanka,

can you check if in table CRMC_MKTPL_CTYPE you can see field SYS_STATUS_HIDE?

Giacomo

Former Member
0 Kudos

Hi Giacomo,

      Yes I can see the field SYS_STATUS_HIDE in the table CRMC_MKTPL_CTYPE. But I cant see the option in Campaign Type Configuration. Please suggest me how to proceed.

Priyanka

Former Member
0 Kudos

Hi Anil,

    Can't it be done without coding. Also I am not able to find the method Get_valuehelp_entries method.

Regards,

Priyanka

Former Member
0 Kudos

Hi Priyanka,

I think the upgrade has failed the update of the view, so due to this you're not able to see the setting.

I suggest to open a SAP Incident in CRM-MKT-MPL component.

Giacomo

Former Member
0 Kudos

Hi Giacomo,

    Thank you so much. We will proceed with your suggestion .

Regards,

Priyanka

Former Member
0 Kudos

Hi Priyanka,

you have to activate the business function for making it configurable.

For MPL/CPG -> BF CRM_MKT_PRODUCTIVITY_1

For TPM -> CRM_TPM_1

Thanks,

Anil

Former Member
0 Kudos

Hi Priyanka,

you can hide the system status changing the following setting for your campaign type in SPRO > Customer Relationship Management > Marketing > Marketing Planning and Campaign Management > Basic Data > Define Types/Objectives/Tactics

Giacomo

Former Member
0 Kudos

Hi Giacomo,

     Thanks for the reply.But ours is CRM7.0. So we dont have the option of hiding System Status by Configuration. Please suggest if any other way is there to hide the System Status.

   

Regards,

Priyanka

Former Member
0 Kudos

Hi Priyanka,

setting has been inserted in EHP1.

In case you don't have it installed you have to follow instructions in SAP Note 1338896 - Sample BAdI Implementations: Hide system status and 1335228 Hiding System Status in Marketing Applications

Pay attention to also read them and implement the GET_STATUS method of the relevant views.

Giacomo

Former Member
0 Kudos

Hi Glacomo,

Note is valid for Support package 700-SAPKU70003. Our is SAPKU70006 means note already exists. But still it is not working

Regards,

Priyanka

Former Member
0 Kudos

Hi Priyanka,

if you read the note descrption is stated the following:

For a sample implementation of a GET_STATUS method for the

corresponding context node (step 2b of note 1335228) refer to the attached file.

NOTE: The code described in file 'CL_TPMOE_HEADEREOF0_CN00.txt' has not       been tested; it has to be coded, checked and compiled in the   customer's system. It is a proposal which contains sample steps to       follow when implementing the getter methods, described in note          1335228.

So it means that you have to enhance the header view of Trade Promotion, redefining the GET_STATUS method using the code attached to the note, that i report here

* This is a sample implementation of method get_status of

* class CL_TPMOE_HEADEREOF0_CN00.

* It collects only the text of the currently active

* user statuses for the displayed trade promotion

*NOTE:   The code described below is not part of the standard system and

*        has not been tested;

*        it has to be coded, checked and compiled in the customer's

*        system. It is a proposal, which contains sample steps to follow

*        when implementing the getter methods, described in note 1335228 .

METHOD get_status.

  DATA: current TYPE REF TO if_bol_bo_property_access.

  DATA: dref    TYPE REF TO data.

  DATA: lr_col_wrapper TYPE REF TO cl_bsp_wd_collection_wrapper,

        lr_cur_entity  TYPE REF TO cl_crm_bol_entity,

        lr_status_col  TYPE REF TO if_bol_entity_col,

        lr_status_itm  TYPE REF TO cl_crm_bol_entity,

        lv_coma        TYPE        string,

        lv_status_val  TYPE        j_txt30.

* select only user status

  DATA lv_status      TYPE string.

  DATA lv_inactive    TYPE string.

  DATA lv_istat_check TYPE string.

  value = 'Trade not bound'.                                "#EC NOTEXT

  IF iterator IS BOUND.

    current = iterator->get_current( ).

  ELSE.

    current = collection_wrapper->get_current( ).

  ENDIF.

  TRY.

      lr_col_wrapper = me->get_collection_wrapper( ).

      lr_cur_entity ?= lr_col_wrapper->get_current( ).

      lr_status_col = lr_cur_entity->get_related_entities( iv_relation_name = 'TPMStatusActiveRel' ).

      CHECK lr_status_col IS BOUND.

      lr_status_itm = lr_status_col->get_first( ).

*     Check if the status is active/inactive and if it is a system status

      lv_inactive = lr_status_itm->get_property_as_string( iv_attr_name = 'INACT' ). "#EC NOTEXT

      lv_istat_check  = lr_status_itm->get_property_as_string( iv_attr_name = 'ISTAT' ). "#EC NOTEXT

*     If active user status, collect

      IF ( lv_inactive = '' ) AND ( lv_istat_check IS INITIAL ).

        lv_status_val = lr_status_itm->get_property_as_string( iv_attr_name = 'TXT30').

        value = lv_status_val.

      ENDIF.

      lr_status_itm = lr_status_col->get_next( ).

      WHILE lr_status_itm IS BOUND.

        lv_status_val = lr_status_itm->get_property_as_string( iv_attr_name = 'TXT30').

        lv_coma = ','.

        CONCATENATE value lv_coma space lv_status_val INTO value RESPECTING BLANKS.

        lr_status_itm = lr_status_col->get_next( ).

      ENDWHILE.

    CATCH cx_bsp_conv_illegal_ref.

      FIELD-SYMBOLS: <l_data> TYPE data.

      ASSIGN dref->* TO <l_data>.

*       please implement here some BO specific handler coding

*       conversion of currency/quantity field failed caused by missing

*       unit relation

*       Coding sample:

*       provide currency, decimals, and reference type

*       value = cl_bsp_utility=>make_string(

*                          value = <l_data>

*                          reference_value = c_currency

*                          num_decimals = decimals

*                          reference_type = reference_type

*                          ).

      CONCATENATE <l_data> '-CURR/QUANT CONV FAILED-' INTO value

                  SEPARATED BY space.                       "#EC NOTEXT

    CATCH cx_root.

      value = '-CONVERSION FAILED-'.                        "#EC NOTEXT

  ENDTRY.

ENDMETHOD.

Wish now is clearer.

Giacomo

former_member196553
Active Contributor
0 Kudos

Hello,

the answers given by are fully correct. The only thing to add is that the BAdI approach goes via BAdI CRM_MKTPL_OL_OBJ interface method CHANGE_VALUEHELP_ENTRIES. Using the CHANGE_VALUEHELP_ENTRIES method you can filter out the system status.

Please also check the following document:

This may contain some additional information for you.

regards,

Johannes