Application Development and Automation 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: 
Read only

bapi to create a condition record

Former Member
0 Likes
4,164

hi,

is there any standard bapi for creating ,changing and deleting a pricing record using VK11,VK12.

any other function module will solve the problem.

5 REPLIES 5
Read only

Former Member
0 Likes
1,438

U can try to use the std Bi RV14BTCI

Max

Read only

0 Likes
1,438

hi

im trying to look for a bapi coz this is an RFC enabled program and over a bapi is a better option over BDC.your program requires a input file which we do not use in my program.

Read only

Former Member
0 Likes
1,438

Hi Ajith,

You can use <b>IDOC approach</b> also for doing teh same solution. Yo get Create/Change/ Delete Option as per indicator passed:

Refer Code below.

&----


*& Form map_idoc_structure

&----


  • Map E1KOMG, E1KONH, E1KONP segment fields

----


FORM map_idoc_structure

USING fp_condition_table TYPE kotabnr

fp_rate TYPE z_cs_cpp_rate

fp_condition_type TYPE kschl

fp_rate_type TYPE z_cs_file_type.

*-- Local Data Declaration

DATA: lw_e1komg TYPE e1komg, "Filter seg. with separated condition key

lw_e1konh TYPE e1konh, "Data from condition header

lw_e1konp TYPE e1konp, "Conditions Items

lv_delete TYPE konp-loevm_ko. " Delete Indicator

*-- IDoc data internal table

DATA: i_idoc_data TYPE TABLE OF edidd

INITIAL SIZE 0

WITH HEADER LINE.

CLEAR: lw_e1komg,

lw_e1konh,

lw_e1konp,

lv_delete,

v_segnum,

w_e1komg,

v_rate_type.

REFRESH i_idoc_data.

v_rate_type = fp_rate_type.

PERFORM conversion_alpha_input

USING w_crp_data-kunnr CHANGING w_crp_data-kunnr.

PERFORM conversion_matn1_input

USING w_crp_data-matnr CHANGING w_crp_data-matnr.

  • E1KOMG: Filter segment with separated condition key

i_idoc_data-segnam = 'E1KOMG'.

lw_e1komg-kvewe = c_usage_cond_tab.

lw_e1komg-kotabnr = fp_condition_table.

lw_e1komg-kappl = c_cond_type.

lw_e1komg-kschl = fp_condition_type.

  • CONCATENATE p_vkorg p_vtweg p_spart p_hienr p_matnr

CONCATENATE w_crp_data-vkorg w_crp_data-vtweg

w_crp_data-kunnr w_crp_data-matnr

INTO lw_e1komg-vakey.

lw_e1komg-vakey_long = lw_e1komg-vakey.

lw_e1komg-vkorg = w_crp_data-vkorg.

lw_e1komg-vtweg = w_crp_data-vtweg.

lw_e1komg-spart = w_crp_data-spart.

lw_e1komg-kunnr = w_crp_data-kunnr.

lw_e1komg-matnr = w_crp_data-matnr.

i_idoc_data-sdata = lw_e1komg.

APPEND i_idoc_data TO i_idoc_data.

  • Segment E1KONH - condition header

i_idoc_data-segnam = 'E1KONH'.

lw_e1konh-datab = w_crp_data-datab.

lw_e1konh-datbi = w_crp_data-datbi.

lw_e1konh-knuma_pi = v_promotion.

lw_e1konh-knuma_ag = v_sales_deal.

i_idoc_data-sdata = lw_e1konh.

APPEND i_idoc_data TO i_idoc_data.

IF fm_process_type EQ c_pt_dep.

lv_delete = c_x. " Deletion Indicator

ENDIF.

  • Segment E1KONP - condition items

i_idoc_data-segnam = 'E1KONP'.

lw_e1konp-kschl = fp_condition_type.

lw_e1konp-kbetr = fp_rate.

lw_e1konp-konwa = w_crp_data-waers.

lw_e1konp-kpein = v_cond_pric.

lw_e1konp-kmein = v_cond_unit.

lw_e1konp-knuma_pi = v_promotion.

lw_e1konp-knuma_ag = v_sales_deal.

lw_e1konp-loevm_ko = lv_delete.

i_idoc_data-sdata = lw_e1konp.

APPEND i_idoc_data TO i_idoc_data.

*-- Post Idoc for Creating Pricing Condition

PERFORM post_idoc

TABLES i_idoc_data.

ENDFORM. " map_idoc_structure

&----


*& Form post_idoc TABLES i_idoc_data.

&----


  • Post Idoc for Creating Pricing Condition

----


FORM post_idoc

TABLES i_idoc_data STRUCTURE edidd.

*-- Local data declaration

DATA: lv_komg LIKE komg, " Condition Structures

lv_subrc LIKE sy-subrc, " Sy-subrc

lw_messages TYPE rsuvm_msg, " Message Description

lw_idoc_status TYPE bdidocstat. " ALE IDoc status

DATA: idoc_contrl " IDoc Control data

LIKE edidc OCCURS 1 WITH HEADER LINE.

*-- Initialize Internal Tables

CLEAR: t_konh,

t_konp,

t_konm,

t_konw,

i_idoc_status,

t_kona.

REFRESH: t_konh,

t_konp,

t_konm,

t_konw,

i_idoc_status,

t_kona,

i_messages.

************************************************************************

  • This code is taken from IDOC_INPUT_COND_A

************************************************************************

PERFORM fill_appl_structures(saplvkoi)

TABLES i_idoc_data

t_konh

t_konp

t_konm

t_konw

i_idoc_status

t_kona

USING lv_komg

lv_subrc

idoc_contrl-docnum

idoc_contrl-mestyp.

IF lv_subrc = 0.

************************************************************************

  • This code is taken from IDOC_INPUT_COND_A

************************************************************************

PERFORM idoc_in_datenbank(saplvkoi)

TABLES idoc_contrl

t_konh

t_konp

t_konm

t_konw

i_idoc_status

t_kona

USING lv_komg

lv_subrc

idoc_contrl-docnum.

IF lv_subrc = 0.

COMMIT WORK AND WAIT.

Endif.

Reward points if this Helps.

Manish

Message was edited by: Manish Kumar

Read only

Former Member
0 Likes
1,438

Hi Ajith,

Have you looked BAPI BAPI_PRICES_CONDITIONS?

Please check the link for my previous reply for sample codes.

Hope this will help.

Regards,

Ferry Lianto

Read only

Former Member
0 Likes
1,438

Try using Function module 'RV_CONDITION_COPY'.

maintain_mode = 'A' = Add

maintain_mode = 'B' = Change