点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
能否请您告诉我为什么当我使用BAPI_CUSTOMERQUOTATION_CHANGE创建报价项目时,为什么要使用导入结构CONDITIONS_IN和CONDITIONS_INX来维护客户特定物料的净价格和净值,因此bapi都不会填写这些列( 值保持为零),也不会在以下返回错误?
在lt_cond INTO ls_cond中循环,其中sd_doc = ls_items_info-doc_number和itm_number = ls_items_info-itm_number。
如果ls_cond-cond_type不是INITIAL。
MOVE对应于ls_cond CLEAR_ls_cond CLEAR。 。
APPEND将ls_cond_in转换为lt_cond_in。
ENDIF。
ENDLOOP。
lr_descr?= cl_abap_typedescr => describe_by_data(ls_cond_inx)。
lt_details [] = lr_descr-> components []。
LOOP AT lt_cond_in INTO ls_cond_in。
CLEAR Ls_lt_condinx。 ls_comp。
CONCATENATE'LS_COND_INX''-'ls_comp-name INTO lv_field。
如果lv_field NE'LS_COND_INX-ITM_NUMBER'AND lv_field NE'LS_COND_INX-COND_ST_NO'
AND lv_field'-IN_LS_COND NE'LS_COND_INX-COND_TYPE'。
ASSIGN(lv_field)TO
ENDIF。
ENDLOOP。
ls_cond_inx-itm_number = ls_cond_in-itm_number。 " insert
APPEND ls_cond_inx TO lt_cond_inx。
ENDLOOP。
ls_header-updateflag ='U'。 " update
ls_logic_switch-cond_handl ='X'。
ls_logic_switch-pricing ='C'。
通话功能'BAPI_CUSTOMERQUOTATION_CHANGE'
导出
salesdocument = p_doc
quotation_header_inx = ls_header > logic_switch = ls_logic_switch
表格
return = lt_return
quotation_item_in = lt_item_in
quotation_item_inx = lt_item_inx
conditions_in = lt_cond_in
conditions_inx = lt_cond_line
quotation_text = lt_texts
extensionex = lt_ext_in。
当未填充来自结构LOGIC_SWITCH的字段PRICING时触发错误,但是当我使用C进行设置(复制手动定价元素并重新确定其他定价元素)时,会创建物料,但净值和净价仍为零 (未填充)。
对此主题有任何意见!
亲切的问候,
安德里亚
capture.jpg (65.7 kB)
" bapi既不填充列(值仍然为零),也不在下面返回错误?"
如果BAPI没有返回错误,那么您在哪里从屏幕快照中获得了错误消息? 我很困惑...
假设这是"翻译丢失"的情况,而您的意思是说错误是由BAPI返回的,我建议检查该"计数器"消息是否有长文本。 另外,如果显示"不得填写计数器",那么也许只是不将其填写在您的代码中? 那将是ls_cond_inx-cond_count字段。
否则,您可能可以在调试器中为此消息设置观察点,然后查看确切的位置。 我假设您已经阅读了BAPI的文档,并检查了是否有任何SAP注释。
我还假设这是一个有效的方案,即可以在事务VA22中更改定价。 因为BAPI无法完成事务本身无法完成的工作。
嗨,耶利娜,
感谢您的回答。 实际上,交易VA22的行为是无法填充我用于测试的此类客户物料的净价和净值,因此用户可以手动填充它。 但是VA21中的"带参考复制"选项正在复制值,因此我假设此BAPI也将填写它。 但是我可能会误会,此BAPI只能执行VA22可以执行的操作,而不考虑"带引用复制"的情况。
非常感谢
安德里亚
一周热门 更多>