admin管理员组文章数量:1599410
创建和更新
MODE A创建时:如果输入的日期和已有的条件日期重叠了,会修改已有条件的有效截止日期。所以创建的时候可以写截止到9999
如果没有维护物料的 销售组织会弹出个 stop的 message,可以在掉函数之前手动检查下
function zfm_vk11.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(APP_DATE) TYPE ZE_APP_DATE OPTIONAL
*" VALUE(APP_TIME) TYPE ZE_APP_TIME OPTIONAL
*" VALUE(APP_NAME) TYPE ZE_APP_NAME OPTIONAL
*" VALUE(APP_RESULT) TYPE ZE_APP_RESULT OPTIONAL
*" VALUE(APP_TEXT) TYPE ZE_APP_TEXT OPTIONAL
*" VALUE(APP_QTNUM) TYPE ZE_APP_QTNUM
*" EXPORTING
*" VALUE(RTYPE) TYPE BAPI_MTYPE
*" VALUE(RTMSG) TYPE BAPI_MSG
*"----------------------------------------------------------------------
data:
ls_ztsd_oa_qth type ztsd_oa_qth,
lt_ztsd_oa_qtt like table of ztsd_oa_qtt with header line.
*bapi
data:
lv_mode.
data: ls_komv like komv.
data: lt_komv type standard table of komv.
data: ls_komg like komg.
data: ls_komp like komp.
select *
into table lt_ztsd_oa_qtt
from ztsd_oa_qtt
where app_qtnum = app_qtnum.
if sy-subrc ne 0..
rtype = 'E'.
rtmsg = 'oa审批单号找不到'.
return.
endif.
read table lt_ztsd_oa_qtt index 1.
select single *
into ls_ztsd_oa_qth
from ztsd_oa_qth
where zqtnum = lt_ztsd_oa_qtt-zqtnum.
*创建价格
loop at lt_ztsd_oa_qtt into lt_ztsd_oa_qtt.
*判断物料有没有扩充销售组织
select single *
into @data(ls_mvke)
from mvke
where matnr = @lt_ztsd_oa_qtt-matnr and vkorg = @ls_tvkwz-vkorg.
if sy-subrc ne 0.
rtype = 'E'.
rtmsg = '物料' && lt_ztsd_oa_qtt-matnr && '没有维护销售组织' && ls_tvkwz-vkorg.
return.
endif.
select single *
into @data(ls_a305)
from a305
where kappl = 'V' and kschl = 'ZPR1'
and vkorg = '5000'
and vtweg = @ls_ztsd_oa_qth-vtweg
and kunnr = @lt_ztsd_oa_qtt-kunnr
and matnr = @lt_ztsd_oa_qtt-matnr
and datbi = @ls_ztsd_oa_qth-datbi
and datab = @ls_ztsd_oa_qth-datab.
if sy-subrc = 0.
lv_mode = 'B'.
else.
lv_mode = 'A'.
endif.
clear:ls_komv,lt_komv,lt_komv[].
ls_komv-kappl = 'V'. "应用 看表
ls_komv-kschl = 'ZPR1'. "类型 看表
ls_komv-waers = ls_ztsd_oa_qth-konwa. "货币
ls_komv-kmein = lt_ztsd_oa_qtt-meins. "单位
ls_komv-kpein = lt_ztsd_oa_qtt-kpein. "定价单位
ls_komv-kbetr = lt_ztsd_oa_qtt-price1. "售价
append ls_komv to lt_komv.
clear ls_komg.
ls_komg-vkorg = '5000'. "销售组织
ls_komg-vtweg = ls_ztsd_oa_qth-vtweg. "分销渠道
ls_komg-kunnr = lt_ztsd_oa_qtt-kunnr. "客户
ls_komg-matnr = lt_ztsd_oa_qtt-matnr. "产品
call function 'RV_CONDITION_COPY'
exporting
application = 'V' "(V 销售)
condition_table = '305'
condition_type = 'ZPR1'
i_komp = ls_komp
key_fields = ls_komg
date_from = ls_ztsd_oa_qth-datab
date_to = ls_ztsd_oa_qth-datbi
enqueue = 'X' " lock entry 锁定VK11/VK12
overlap_confirmed = 'X' " 直接覆盖,跨以前的期间不会弹出界面
maintain_mode = lv_mode " A= create, B= change, C= display, D= create
tables
copy_records = lt_komv
exceptions
enqueue_on_record = 1
invalid_application = 2
invalid_condition_number = 3
invalid_condition_type = 4
no_authority_ekorg = 5
no_authority_kschl = 6
no_authority_vkorg = 7
no_selection = 8
table_not_valid = 9
no_material_for_settlement = 10
no_unit_for_period_cond = 11
no_unit_reference_magnitude = 12
invalid_condition_table = 13
others = 14.
if sy-subrc = 0.
call function 'RV_CONDITION_SAVE'.
call function 'RV_CONDITION_RESET'.
commit work and wait.
rtype = 'S'.
rtmsg = '成功'.
*更新日志
loop at lt_ztsd_oa_qtt.
lt_ztsd_oa_qtt-app_date = app_date.
lt_ztsd_oa_qtt-app_time = app_time.
lt_ztsd_oa_qtt-app_name = app_name.
lt_ztsd_oa_qtt-app_result = app_result.
lt_ztsd_oa_qtt-app_text = app_text.
lt_ztsd_oa_qtt-app_qtnum = app_qtnum.
modify lt_ztsd_oa_qtt.
update ztsd_qup set kbstat = 'Z3'
where zqtnum = lt_ztsd_oa_qtt-zqtnum and zqtitem = lt_ztsd_oa_qtt-zqtitem.
endloop.
modify ztsd_oa_qtt from table lt_ztsd_oa_qtt.
commit work and wait.
else.
rtype = 'E'.
message id sy-msgid
type sy-msgty
number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 into rtmsg.
endif.
endloop.
endfunction.
删除用bdc
*bdc
data:
lv_msg(255),
lv_rtype,
lv_rtmsg(255).
free:gt_bdcdata,gt_messtab.
*输入条件
perform bdc_dynnr using 'SAPMV13A' '0100'.
perform bdc_field using 'RV13A-KSCHL' 'ZPR1'.
perform bdc_field using 'BDC_OKCODE' '/00'.
*查询
perform bdc_dynnr using 'RV13A305' '1000'.
perform bdc_field using 'F001' '5000'.
perform bdc_field using 'F002' gs_quk-vtweg.
perform bdc_field using 'F003' gt_qup-kunnr.
perform bdc_field using 'F004-LOW' gt_qup-matnr.
perform bdc_field using 'SEL_DATE' gs_quk-datab.
perform bdc_field using 'BDC_OKCODE' '=ONLI'.
*选中删除
perform bdc_dynnr using 'SAPMV13A' '1305'.
perform bdc_field using 'RV130-SELKZ(01)' 'X'.
perform bdc_field using 'BDC_OKCODE' '=ENTF'.
*保存
perform bdc_dynnr using 'SAPMV13A' '1305'.
perform bdc_field using 'BDC_OKCODE' '=SICH'.
call transaction 'VK12' using gt_bdcdata
messages into gt_messtab
mode 'N'.
loop at gt_messtab.
if gt_messtab-msgtyp = 'S' .
lv_rtype = 'S'.
endif.
if gt_messtab-msgtyp = 'E' .
lv_rtype = 'E'.
endif.
call function 'MESSAGE_TEXT_BUILD'
exporting
msgid = gt_messtab-msgid
msgnr = gt_messtab-msgnr
msgv1 = gt_messtab-msgv1
msgv2 = gt_messtab-msgv2
msgv3 = gt_messtab-msgv3
msgv4 = gt_messtab-msgv4
importing
message_text_output = lv_msg.
concatenate lv_rtmsg lv_msg into lv_rtmsg.
message lv_rtmsg type lv_rtype.
endloop.
本文标签: 销售价格条件RVCONDITIONCOPY
版权声明:本文标题:RV_CONDITION_COPY VK11创建、更新销售价格条件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728322052a1153951.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论