点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我的要求是我要在新日期中为供应商和信息记录号(从ME12/ME13交易)到当前日期到12/31/9999创建一个新的条件类型。
在新的日期范围内,我正在创建新的条件类型PB00并复制先前的条件类型(如果PB00在先前的日期范围内,则除外)。
使用fm RV_CONDITION_COPY。 正在创建新的条件类型并且正在复制现有条件类型。但是已为复制的条件类型设置了删除标志。我在传递fm RV_CONDITION_COPY的同时删除了表copy_records和copy_recs_idoc中的删除标志。
您能不能请所有引起这个问题的SAP笔记或任何配置。
此致
深
问题已解决。 删除标志问题是标准问题。 就像以前的记录要复制到新记录一样,以前的记录也将删除标记显示为abap true。
我已经使用BDC解决了此问题。 感谢您的帮助。
此致
Deepz
请将此线程标记为已回答。
您好,
您可以查看该注释:742947-合同中带有删除指示符的附加条件,说明了类似的情况。
注意
>AKPT
嗨,
我已使用此代码为新的日期范围创建新的条件类型'PB00',并复制了先前的日期范围条件类型。
数据:ls_eina类型为eina。
数据:ls_eine类型为eine。
数据:lv_lmein类型的eina-lmein,
konp的lt_konp类型表,
ls_konp类型konp,
ls_kond类型为vakekond。
数据:ls_eina_o类型eina,
ls_eina_n类型eina,
ls_eine_o类型eine,
ls_eine_n输入eine。
数据:lt_eina_i像eina一样在标题行出现0,
lt_eine像eine的标题行出现0,
类似于mestxh的t_head在标题行出现0,
t_line像mestxl的标题行出现0。
数据ls_return类型bapiret2。
数据flag_scales类型为char1。
数据:lv_temp类型t024,
lv_price类型bapicurr-bapicurr。
在lt_rows处循环进入ls_rows。
将表lt_final读入ls_final索引ls_rows-index。
如果sy-subrc = 0。
将表lt_alv读入ls_alv索引ls_rows-index。
如果ls_alv-light_sta ='@ 0A @'。 "红色
ls_alv-update_sta ='@ 0A @'。 "红色
修改ls_alv索引ls_rows-index传输update_sta的lt_alv。
清除ls_return。
ls_return-type ='E'。
ls_return-id ='ZMAT_INFO'。
ls_return-number ='000'。
ls_return-message_v1 = ls_alv-info_rec。
ls_return-message_v2 = ls_alv-material。
附加ls_return以返回。
清除ls_return。
继续。
endif。
从eina中选择单个*到ls_eina的相应字段中,其中infnr = ls_final-info_rec
和matnr = ls_final-material。
如果sy-subrc ne为0。
消息"材料和信息记录组合不正确"键入" I"。
继续。
endif。
从eine中选择单个*到ls_eine的相应字段中,其中infnr = ls_final-info_rec。
ls_eina_o = ls_eina。
ls_eine_o = ls_eine。
如果p_waers是初始的。
lv_waers = ls_eine-waers。
其他。
lv_waers = p_waers。
endif。
清除:lv_currency。
如果ls_final-net_price不是初始的。
lv_price = ls_final-net_price。
调用函数'BAPI_CURRENCY_CONV_TO_INTERNAL'
导出
货币= lv_waers
amount_external = lv_price
max_number_of_digits = 23
导入
amount_internal = lv_currency。
ls_final-net_price = lv_currency。
endif。
***阅读所有价格条件.....
调用函数'J_1A_ME_GET_INFORECORD_COND'
导出
i_ekorg = ls_eine-ekorg
i_esokz = ls_eine-esokz
i_infnr = ls_eina-infnr
i_lifnr = ls_eina-lifnr
i_matkl = ls_eina-matkl
i_matnr = ls_eina-matnr
i_werks = ls_eine-werks
表格
tkonp = lt_konp。
如果lt_konp不是初始的。
将lt_konp排序为knumh。
将表lt_konp读入ls_konp索引1。
ls_kond-knumh = ls_konp-knumh。
删除lt_konp,其中ls_kond-knumh。
endif。
data:lv_scales类型char1值''。
清除ls_flag。
将表lt_flag读入ls_flag索引ls_rows-index。
如果sy-subrc = 0。
如果ls_flag-ksbtm1不是初始的或ls_flag-ksbtm2不是初始的或ls_flag-ksbtm3不是初始的
或ls_flag-ksbtm4不是初始的或ls_flag-ksbtm5不是初始的或ls_flag-ksbtm6不是初始的
或ls_flag-ksbtm7不是初始的或ls_flag-ksbtm8不是初始的或ls_flag-ksbtm9不是初始的
或ls_flag-ksbtm10不是初始
或ls_flag-kbetr1不是初始的或ls_flag-kbetr2不是初始的或ls_flag-kbetr3不是初始的
或ls_flag-kbetr4不是初始的或ls_flag-kbetr5不是初始的或ls_flag-kbetr6不是初始的
或ls_flag-kbetr7不是初始的,或者ls_flag-kbetr8不是初始的,或者ls_flag-kbetr9不是初始的
或ls_flag-kbetr10不是初始
或ls_flag-net_price不是初始的。
lv_scales ='X'。
其他。
lv_scales =''。
endif。
endif。
data:lv_vake就像vake,
ls_komk类型的komk,
lv_maintain_mode类型c的长度为1。
如果lv_scales ='X'。
选择单个*
从konh到ls_konh
其中knumh = lv_cond_no。
ls_komk-hwaer = lv_waers。"'美元'。
ls_komk-waerk = ls_eine_o-waers。
ls_komk-ekorg = ls_eine_o-ekorg。
ls_komk-lifnr = ls_eina_o-lifnr。
ls_komk-prsdt = sy-datlo。
ls_komk-kappl ='M'。 "艾因考夫
ls_komk-kvorg ='06'。 " Stammkonditionspflege
调用函数" ME_FILL_KOMG_IN"
导出
i_eina = ls_eina_o
i_eine = ls_eine_o
导入
e_komg = ls_key_fields
e_vake = lv_vake。
*-填写KOMK
将对应的ls_key_fields移动到ls_komk。
ls_komk-mandt = sy-mandt。
*-填写KOMP
将对应的ls_key_fields移动到ls_komp。
ls_komp-kposn ='000001'。
刷新:t_komv_idoc,lt_cr,copy_staffel。 "由AARTHIM于2013年1月8日
*-填写KOMV_IDOC
t_komv_idoc-kznep ='X'。
t_komv_idoc-loevm_ko =''。
附加t_komv_idoc。
*-填写KOMV
ls_cr-kappl ='M'。
ls_cr-kschl ='PB00'。
ls_cr-kbetr = ls_final-net_price。 "单价
ls_cr-krech ='C'。
ls_cr-kpein ='1'。
ls_cr-kmein ='EA'。
ls_cr-waers = lv_waers。"'USD'。" AARTHIM于02/06/2015更改
ls_cr-loevm_ko =''。
* ls_cr-knumh ='0002231519'。
ls_cr-mandt = sy-mandt。
ls_cr-kopos ='1'。
ls_cr-kzbzg ='C'。
ls_cr-konms ='EA'。
ls_cr-stfkz ='A'。
ls_cr-knprs ='A'。
将ls_cr附加到lt_cr。
在lt_konp处循环进入ls_konp,其中kschl为" PB00"。
清除:ls_cr。
ls_cr-kopos = ls_konp-kopos。 "'2'。
ls_cr-kappl = ls_konp-kappl。 "'M'。
ls_cr-kschl = ls_konp-kschl。 "'ZFR1'。
ls_cr-stfkz = ls_konp-stfkz。 "'A'。
ls_cr-krech = ls_konp-krech。 "'A'。
ls_cr-kbetr = ls_konp-kbetr。
ls_cr-waers = ls_konp-konwa。 "'%'。
ls_cr-kpein = ls_konp-kpein。 "'0'。
ls_cr-kmein = ls_konp-kmein。
ls_cr-mandt = sy-mandt。
ls_cr-loevm_ko =''。
ls_cr-kzbzg ='C'。" ls_konp-kzbzg。
ls_cr-konms = ls_konp-konms。
ls_cr-knprs ='A'。" AARTHIM在2015年3月19日更改
将ls_cr附加到lt_cr。
结束循环。
*-填充比例
执行scale_fill更改ls_final copy_staffel。
lv_maintain_mode ='A'。
调用函数" RV_CONDITION_COPY"
导出
application ='M'
condition_table = ls_konh-kotabnr
condition_type = ls_konh-kschl
date_from = sy-datum
date_to ='99991231'
入队='X'
i_komk = ls_komk
i_komp = ls_komp
key_fields = ls_key_fields
maintenance_mode = lv_maintain_mode
no_authority_check ='X'
* keep_old_records ='X'
used_by_idoc ='X'"在提供按比例缩放价格时,此标志必须为X,否则将以零价格创建价格。
overlay_confirmed ='X'
表格
copy_records = lt_cr
copy_staffel = copy_staffel
copy_recs_idoc = t_komv_idoc
例外
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。
如果sy-subrc = 0。
调用函数" RV_CONDITION_SAVE"。
调用函数" RV_CONDITION_RESET"。
调用函数" BAPI_TRANSACTION_COMMIT"
导入
return = ls_return。
附加ls_return以返回。
如果sy-subrc = 0。
flag_scales ='X'。
endif。
endif。
endif。
此致
Deepz
我知道有些晚了,但是您可以通过传递keep_old_records ='X'来解决它
一周热门 更多>