ABAP-创建客户阶梯价
【摘要】 告别忙碌低效!本文提供示例,帮助您用更少时间完成更多高质量工作,重获工作与生活平衡。
*&---------------------------------------------------------------------*
*& Form frm_create_price
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_create_price
USING
VALUE(uv_kappl) TYPE kappl
VALUE(uv_kschl) TYPE kschl
VALUE(uv_reswk) TYPE reswk
VALUE(uv_werks) TYPE werks_d
VALUE(uv_matnr) TYPE matnr
VALUE(uv_kfrst) TYPE kfrst
VALUE(uv_datbi) TYPE kodatbi
VALUE(uv_datab) TYPE kodatab
VALUE(uv_peinh) TYPE peinh
VALUE(uv_meins) TYPE meins
VALUE(uv_kbetr) TYPE kbetr
CHANGING
cv_flg TYPE bapi_mtype
cv_mesg TYPE bapi_msg.
DATA:
lt_bapicondct TYPE STANDARD TABLE OF bapicondct, "
lt_bapicondhd TYPE STANDARD TABLE OF bapicondhd, "
lt_bapicondit TYPE STANDARD TABLE OF bapicondit,
lt_bapicondqs TYPE STANDARD TABLE OF bapicondqs,
lt_bapicondvs TYPE STANDARD TABLE OF bapicondvs,
lt_bapiret2 TYPE STANDARD TABLE OF bapiret2,
lt_bapiknumhs TYPE STANDARD TABLE OF bapiknumhs,
lt_mem_initial TYPE STANDARD TABLE OF cnd_mem_initial.
DATA:
lv_varkey(100) TYPE c.
lv_varkey = |{ uv_reswk }{ uv_werks }{ uv_matnr }|.
APPEND VALUE #(
table_no = '901' "条件表A901
applicatio = 'M'
cond_usage = 'A' "条件表用途 ‘ A定价
cond_type = uv_kschl "定价条件
operation = '009' "创建
varkey = lv_varkey
valid_to = uv_datbi
valid_from = uv_datab
cond_no = '$000000001'
) TO lt_bapicondct.
APPEND VALUE #(
operation = '009'
cond_no = '$000000001'
created_by = sy-uname
creat_date = sy-datum
cond_usage = 'A'
table_no = '901'
applicatio = 'M'
cond_type = uv_kschl
varkey = lv_varkey
valid_from = uv_datab
valid_to = uv_datbi
) TO lt_bapicondhd.
APPEND VALUE #(
operation = '009'
cond_no = '$000000001'
cond_count = '01' "条件序列号
applicatio = 'M'
cond_type = uv_kschl "条件类型
scaletype = 'A' "STFKZ
scalebasin = '' "KZBZG 'C'. 存在数量等级
scale_qty = '1' "KSTBM
cond_p_unt = uv_peinh "KPEIN
cond_unit = uv_meins "KMEIN
calctypcon = 'C' "KRECH
cond_value = uv_kbetr
condcurr = 'CNY'
exclusion = 'X'
) TO lt_bapicondit.
CALL FUNCTION 'BAPI_PRICES_CONDITIONS'
* EXPORTING
* PI_INITIALMODE = ' '
* PI_BLOCKNUMBER =
* PI_PHYSICAL_DELETION =
TABLES
ti_bapicondct = lt_bapicondct
ti_bapicondhd = lt_bapicondhd
ti_bapicondit = lt_bapicondit
ti_bapicondqs = lt_bapicondqs
ti_bapicondvs = lt_bapicondvs
to_bapiret2 = lt_bapiret2
to_bapiknumhs = lt_bapiknumhs
to_mem_initial = lt_mem_initial
EXCEPTIONS
update_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
cv_flg = 'E'.
MESSAGE ID sy-msgid
TYPE 'E'
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO cv_mesg.
RETURN.
ENDIF.
LOOP AT lt_bapiret2 ASSIGNING FIELD-SYMBOL(<fs_return>)
WHERE type CA 'AEX'.
cv_mesg = <fs_return>-message && '!' && cv_mesg .
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
cv_flg = 'E'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
cv_flg = 'S'.
cv_mesg = '价格条件处理成功!'.
ENDIF.
ENDFORM.
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)