07-18-2006 9:14 AM
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
07-18-2006 9:17 AM
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
07-18-2006 10:25 AM
04-12-2012 4:03 PM
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