从上一个日期范围复制条件类型时的删除标志

2020-08-16 03:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我的要求是我要在...

         点击此处--->   EasySAP.com群内免费提供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笔记或任何配置。

此致

5条回答
槿木_熙
2020-08-16 04:28

嗨,

我已使用此代码为新的日期范围创建新的条件类型'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

一周热门 更多>