cancel
Showing results for 
Search instead for 
Did you mean: 

Remove a char value set by user with a dependancy

Former Member
0 Kudos

Dear support,

I'm facing an issue and I would like to know if somebody knows how to remove a characteristic value set by user.

During configuration, in some specific cases, a value set by user needs to be removed to avoid wrong configuration.

Do you know if there is a way to set the char. value as no entry with a procedure or something else ?

In advance, many thanks for your help.

Virginie Frigo

Accepted Solutions (1)

Accepted Solutions (1)

Ritz
Active Contributor

Virginie Frigo,


Please specify why you are not able to go in change mode and clear value ? does the characteristic for which user have setup value need to be hide from user or  not. Please add some more details on issue you are facing. Hope with that you may get favourable replies.


Thanks

Ritesh

Former Member
0 Kudos

Dear Ritesh,

I'll give you an example and hope you will understand my issue.

I have 4 characteristics:

CHAR Promo with value YES or NO

CHAR 1 with value A or B

CHAR 2 with value C

CHAR 3 with value D

During the first configuration, the user selects:

CHAR Promo = NO

CHAR 1 = B

CHAR 3 = D

Then the user decides to change the configuration and he takes the promotion.

So CHAR PROMO = YES.

behind this selection a procedure autospecified

CHAR 1 = B

CHAR 2 = C

at this step all is correct. But the issue is on the CHAR 3 which has been set by user.

When CHAR PROMO = YES, the CHAR 3 should be unselected otherwise configuration is not correct.

But due to the fact, the value D has been set by the user I cannot remove the value and set no entry to avoid a wrng configuration...

So I would like to empty the CHAR 3 with a dependancies or another way.

I hope this exmaple helps you.

In advance, many thanks.

Virginie

Ritz
Active Contributor
0 Kudos

Virginie Frigo,

My understanding is value set by user have more weight then any other setting, so not sure even with a procedure $SELF.CHARD= '' IF $SELF.PROMO = YES or $DEL_DEFAULT ($SELF,CHAR3 , 'D')  will work in your case. You need to give it a try. Otherwise check possibility for enhancement or custom code.

Thanks

Ritesh

Former Member
0 Kudos

I have tested your procedure, unfortunately the syntax is wrong so it cannot work.

I have same opinion as you, a value set by user has more weight, so I cannot remove the value with a simple procedure.

I had a look on forum to find user exit or something similar to solve my issue but no result.

Do you have an idea for enhancement or custom code ?

In advance, many thanks.

Virginie

Flavio
Active Contributor
0 Kudos

Dear Virginie,

indeed, it should be possible to clear a characteristic value entered by the user.

I had a similar need in the past, and was successfully achieving it by taking inspiration from the standard function module CUPR_DEL_VAL (This function deletes all single values that have been assigned to a characteristic by procedures for an instance in the configuration).

What is needed is a variant function, plus the related ABAP function, that will call in turn the following forms in the type-pools CUDBT:


PERFORM cull_get_char_facets_by_name(saplcull) USING l_atnam l_s_cabn l_flag

l_result.

l_kntype = 'DI'.

PERFORM ddb_del_vals_by_kntype(saplcudb) USING p_globals-root l_s_cabn-atinn

l_flag l_kntype l_result.

l_kntype = 'SF'.

PERFORM ddb_del_vals_by_kntype(saplcudb) USING p_globals-root l_s_cabn-atinn

l_flag l_kntype l_result.

The variant function will be invoked by an object dependency, a procedure (please note, the variant function must be called with the 'pfunction ' statement).

If you need any further detail, please feel free to let me know.

I do hope this will be of some help.

Thanks and regards,

Flavio

Former Member
0 Kudos

Dear Flavio,

Thank you so much for your reply. We found the solution by creating a function module based on your comments.

Thanks again.

Virginie

Flavio
Active Contributor
0 Kudos

Dear Virginie,

You are welcome! I'm really happy that it worked.

Thank you and regards,

Flavio

Answers (1)

Answers (1)

benjamin_paul4
Explorer
0 Kudos

Hello,

Just to share that I am facing the same issue...

Here's the scenario :

I create a dependency to automaticlly retrieve the value of C2 based on the value of C1. The user is not allowed to change it (read only).

Dependency code (simplified):

if C1 = A --> C2 = 1

if C1 = B --> C2 = 2

Assignment process:

  1. C1 = A ; C2 gets automatically the value 1. Perfect !
  2. Save the config
  3. Change C1 = B --> inconsistencie !

The system instead of automatically filling C2 with the value 2, is telling me that a dependency should not overwritte a user input. Because the char. is in read only the user is blocked !

The only solution is to untick the option "Not ready for input" and ask the user to delete manually the value so it is calculated again !

BG,

Benjamin