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: 

need example of fm: RV_CONDITION_COPY

Former Member
0 Kudos

I searched the fourm and found RV_CONDITION_COPY + RV_CONDITION_SAVE can create/change the condition. But I still have no idea what to do. So I want a example code. Thank you.

ps. I need the Change example.

Message was edited by: Jerry Chan

3 REPLIES 3

Former Member
0 Kudos

Hello Jerry,

U can try like this

CONSTANTS:

CON_A(1) TYPE C VALUE 'A',

CON_B(1) TYPE C VALUE 'B',

CON_C TYPE C VALUE 'C',

CON_D TYPE C VALUE 'D',

CON_E TYPE C VALUE 'E',

CON_F TYPE C VALUE 'F',

CON_G TYPE C VALUE 'G',

CON_K TYPE C VALUE 'K',

CON_T TYPE C VALUE 'T',

CON_S(1) TYPE C VALUE 'S',

CON_V LIKE T681A-KAPPL VALUE 'V',

CON_X TYPE C VALUE 'x',

CON_XX TYPE C VALUE 'X',

CON_T074 LIKE T681-KOTABNR VALUE '074',

CON_PREF LIKE T685A-KSCHL VALUE 'PREF',

CON_ULTIMO LIKE RV13A-DATAB VALUE '99991231',

CON_DATA_LOG_NAME(8) TYPE C VALUE 'PREF',

CON_ERROR_LOG_NAME(8) TYPE C VALUE 'ERROR',

CON_CUSTOM_LOG_NAME(8) TYPE C VALUE 'P_CUSTOM'.

  • Verkaufsmengeneinheit

PERFORM f3_vkme_ermitteln.

  • Hauswährung

IF t001w-werks NE cstmat-werks.

PERFORM f3_waehrung_ermitteln USING cstmat-werks.

ENDIF.

  • pro Zollgebiet Konditionssatz anlegen

LOOP AT t_matwerte.

CHECK t_matwerte-noupd_cond IS INITIAL.

CLEAR: komk,

komp,

komg,

w_komv.

REFRESH w_komv.

  • Schlüssel füllen

komg-werks = w_marc-werks.

komg-matnr = w_marc-matnr.

komg-gzolx = t_matwerte-gzolx.

komg-land1 = t001w-land1. "101298

  • Preisinfo füllen

w_komv-kappl = 'V '.

w_komv-kschl = con_pref.

IF t_matwerte-kp = kp_max.

w_komv-kpein = 1.

MOVE kp_max TO w_komv-kbetr.

ELSE.

w_komv-kpein = pm_peinh.

COMPUTE w_komv-kbetr = t_matwerte-kp * pm_peinh / hlp_ameng.

ENDIF.

IF w_komv-kbetr = 0.

COMPUTE w_komv-kbetr = 1 / 100 * -1.

ENDIF.

w_komv-waers = t001-waers.

w_komv-kmein = hlp_ame.

APPEND w_komv.

CHECK f3_kz_update_cond IS INITIAL OR

NOT pm_simu IS INITIAL.

IF NOT pm_mdmps IS INITIAL.

MOVE komg-werks TO bg_kond-werks.

MOVE komg-matnr TO bg_kond-matnr.

MOVE komg-gzolx TO bg_kond-gzolx.

MOVE w_komv-kpein TO bg_kond-kpein.

MOVE w_komv-kbetr TO bg_kond-kbetr.

MOVE w_komv-kmein TO bg_kond-kmein.

MOVE w_komv-waers TO bg_kond-waers.

*{ REPLACE D20K904946 1

  • APPEND bg_kond.

  • Siemens: Fehlerkorektur SAP-Standard

READ TABLE BG_KOND TRANSPORTING NO FIELDS

WITH KEY WERKS = BG_KOND-WERKS

MATNR = BG_KOND-MATNR

GZOLX = BG_KOND-GZOLX

BINARY SEARCH.

INSERT BG_KOND INDEX SY-TABIX.

*} REPLACE

ENDIF.

CHECK f3_kz_update_cond IS INITIAL.

CALL FUNCTION 'RV_CONDITION_COPY'

EXPORTING

application = con_v

condition_table = con_t074 "Konditionstabelle

condition_type = con_pref "Konditionsart

date_from = sy-datlo "Von jetzt an

date_to = con_ultimo "Bis Ultimo

enqueue = 'X' "Sperren ist besser

i_komk = komk

i_komp = komp

key_fields = komg "Schlüssel

maintain_mode = 'A' "Lieber A als B

no_authority_check = 'X' "X wie nix

keep_old_records = ' '

OVERLAP_CONFIRMED = 'X'

IMPORTING

e_komk = komk

e_komp = komp

new_record = i_new_record

TABLES

copy_records = w_komv

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.

CASE sy-subrc.

WHEN 0.

WHEN OTHERS.

  • MESSAGE A???

ENDCASE.

CALL FUNCTION 'RV_CONDITION_SAVE'.

CALL FUNCTION 'RV_CONDITION_RESET'.

ENDLOOP.

If useful reward points.

Regards

Vasanth

Former Member
0 Kudos

I need a example about how to change a conditon record. Thx.

0 Kudos

Hello,

Please have a look at FORM IDOC_IN_DATENBANK (include LVKOIF01) which is used for posting inbound COND_A idocs. It will give you some insights as to how to use these function modules.

Regards