Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

RV_CONDITION_COPY Affecting Change Log in Condition Record

Former Member
0 Kudos

Dear Gurus,

We have develop a custom Z program to upload Price Condition Record (VK11). My program runs well when it comes to Creation nor Change.

But unfortunately when we observe during Change mode it always gives an unwanted log (Environment -> Changes -> Per Condition Record)

Deletion Indicator for Condition Item = T.

We want to get rid of this deletion indicator = T in the log since its confusing for user.

Below is my modified code. 

*&---------------------------------------------------------------------*

*&      Form  F_PROCESS_DATA

*&---------------------------------------------------------------------*

FORM f_process_data USING p_tabnum.

   DATA: cr                LIKE TABLE OF komv WITH HEADER LINE, " copy_records

*        cri               LIKE TABLE OF komv_idoc WITH HEADER LINE,

         key_fields        LIKE TABLE OF komg WITH HEADER LINE,

         komk              LIKE TABLE OF komk WITH HEADER LINE,

         komp              LIKE TABLE OF komp WITH HEADER LINE,

         lw_pispr          LIKE TABLE OF pispr WITH HEADER LINE,

         lt_data           LIKE gt_data OCCURS 0 WITH HEADER LINE,

        ls_konp           TYPE konp,

         lv_matnr_input    LIKE mara-matnr,

         lv_mara_meins     LIKE mara-meins,

         lv_count          TYPE i VALUE 1,

         lv_output1        TYPE zp22j_dest_27,

         lv_output2        TYPE zp22j_dest_35,

         lv_tabnum         TYPE kotabnr,

         lv_counter        TYPE i,

         lv_tax_rate       TYPE fwste,

         lv_tax_amount     TYPE hwste,

         lv_maintain_mode,

         nr.

   REFRESH gt_display.

   CLEARgt_display.

*         lv_mara_meins.

   lt_data[] = gt_data[].

   SORT lt_data BY mark statu.

   DELETE lt_data WHERE mark = space.

   LOOP AT lt_data.

       MOVE-CORRESPONDING lt_data TO gt_display.

         REFRESH lw_pispr.

         lw_pispr-waerk = lt_data-waerk.

         lw_pispr-kunnr = lt_data-kunag.

         lw_pispr-matnr = lt_data-matnr.

         lw_pispr-vkorg = lt_data-vkorg.

         lw_pispr-vtweg = '10'.

         lw_pispr-spart = '00'.

         APPEND lw_pispr.

         CALL FUNCTION 'SPR_KOMK_KOMP_FILL'

           EXPORTING

             pi_i_spr  = lw_pispr

           IMPORTING

             pe_i_komk = komk

             pe_i_komp = komp

           EXCEPTIONS

             OTHERS    = 8.

         REFRESH key_fields.

         key_fields-vkorg = lt_data-vkorg.

         key_fields-kunag = lt_data-kunag.

         key_fields-waerk = lt_data-waerk.

         key_fields-zterm = lt_data-zterm.

         key_fields-inco1 = lt_data-inco1.

         key_fields-matnr = lt_data-matnr.

         key_fields-kvgr4 = lt_data-kvgr4.

         key_fields-zkdgrp = lt_data-zkdgrp.

         key_fields-zzcommagent = lt_data-zzcommagent.

         key_fields-zzrespsoff = lt_data-zzrespsoff.

         key_fields-zzsconf = lt_data-zzsconf.

         key_fields-zzcateg = lt_data-zzcateg.

         key_fields-zzarticle1_vc = lt_data-zzarticle1.

         key_fields-zzarticle2_vc = lt_data-zzarticle2.

         APPEND key_fields.

* Check existing record

         PERFORM f_read_cond USING lt_data

                                   p_tabnum

                             CHANGING

                                   gt_konp

                                   lv_maintain_mode.

* Change record

         REFRESH cr.

         LOOP AT gt_konp INTO ls_konp.

           cr-kappl = ls_konp-kappl. "'V'.

           cr-kschl = ls_konp-kschl. "lt_data-kschl.

           cr-kbetr = lt_data-kbetr. "ls_konp-kbetr.

           cr-kmein = ls_konp-kmein. "ls_konp-meins. "lv_mara_meins.

           cr-waers = ls_konp-konwa. "lt_data-scurr.

           cr-kpein = ls_konp-kpein. "1

           cr-krech = ls_konp-krech. "++

           cr-kopos = ls_konp-kopos. "++

           cr-kzbzg = ls_konp-kzbzg. "++

           cr-knumv = ls_konp-knumh. "++

*          cr-kposn = ls_konp-kopos. "++

*          cr-loevm_ko = space.

           APPEND cr.

        ENDLOOP.

* New record

         IF gt_konp[] IS INITIAL AND lv_maintain_mode EQ 'A'.

           CLEAR: lv_matnr_input,

                  lv_mara_meins.

           CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

             EXPORTING

               input        = lt_data-matnr

             IMPORTING

               output       = lv_matnr_input

             EXCEPTIONS

               length_error = 1

               OTHERS       = 2.

           IF sy-subrc = 0.

             SELECT SINGLE meins INTO lv_mara_meins

                    FROM mara

                    WHERE matnr EQ lv_matnr_input.

           ENDIF.

           cr-kappl = 'V'.

           cr-kschl = lt_data-kschl.

           cr-kbetr = lt_data-kbetr.

           cr-kmein = lv_mara_meins.

           cr-waers = lt_data-scurr.

           cr-kpein = 1.

           APPEND cr.

         ENDIF.

         CALL FUNCTION 'RV_CONDITION_COPY'

           EXPORTING

             application              = 'V'

             condition_table          = p_tabnum

             condition_type           = lt_data-kschl

             date_from                = lt_data-datab

             date_to                  = lt_data-datbi

             enqueue                  = 'X'

             i_komk                   = komk

             i_komp                   = komp

             key_fields               = key_fields

             maintain_mode            = lv_maintain_mode " 'A' New; 'B' Change

             no_authority_check       = 'X'

             no_field_check           = 'X'

*            used_by_idoc             = 'X'

             selection_date           = lt_data-datab  "++

             keep_old_records         = '' "

             overlap_confirmed        = 'X'

*            no_db_update             = space

           IMPORTING

             e_komk                   = komk

             e_komp                   = komp

             new_record               = nr

           TABLES

             copy_records             = cr

*            copy_recs_idoc           = cri

           EXCEPTIONS

             enqueue_on_record        = 01

             invalid_application      = 02

             invalid_condition_number = 03

             invalid_condition_type   = 04

             no_authority_ekorg       = 05

             no_authority_kschl       = 06

             no_authority_vkorg       = 07

             no_selection             = 08

             table_not_valid          = 09.

         IF sy-subrc = 0.

           CALL FUNCTION 'RV_CONDITION_SAVE'.

           CALL FUNCTION 'RV_CONDITION_RESET'.

           COMMIT WORK.

         ELSE.

           PERFORM f_get_msg USING sy-msgid

                                   sy-msgno

                                   sy-msgv1

                                   sy-msgv2

                                   sy-msgv3

                                   sy-msgv4

                          CHANGING gt_display-msg.

         ENDIF.

       APPEND gt_display.

       CLEAR gt_display.

   ENDLOOP.

ENDFORM.                    " F_PROCESS_DATA

Thanks and Regards,

AT

1 ACCEPTED SOLUTION

Former Member
0 Kudos

I will close this thread, I've come to conslussion that this could be a bug since standard transaction it's

not using the same routine as RV_CONDITION_COPY.

I've solve my issue by adding some Enhancement to clear status in change log.

6 REPLIES 6

JL23
Active Contributor
0 Kudos

Your users should get used to it. It is standard that SAP records audit relevant changes, and changes to price conditions are certainly audit relevant.

Former Member
0 Kudos

Hi Jurgen,

Thanks for the prompt reply, but the problem is when we change from standard tcode (i.e VK12) we did not encounter this log message.

Description                                                  OldVal          NewVal

"Deletion Indicator for Condition Item           'T'

And this is not deletion indicator, since deletion indicator will have value 'X'.

Regards,

AT

Former Member
0 Kudos

I will close this thread, I've come to conslussion that this could be a bug since standard transaction it's

not using the same routine as RV_CONDITION_COPY.

I've solve my issue by adding some Enhancement to clear status in change log.

0 Kudos

Hello,

I am having the same problem.

Could you please advise which enhancement you implement?

Actually, I have already found a possible enhancement point in the include 'MV13AF0C', where I am clearing the field LOEVM_KO but I wanted to cross check the solution (in case you got a better solution).

Thanks in advance.

Regards,

Bryan

0 Kudos

Hi Bryan,

U can try include 'MV13AF0Y'.

Regards,

AT

0 Kudos

Hello,

Thanks a lot.

V.Good, that's where I have put the logic finally.

Regards,

Azagen