SAP ABAP 问题整理
本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
在做ECC项目的时候,碰到一个问题,Z程序使用message 'XXX' type 'E'或者'I'或者'S'都无法报错,总是报标准错误,类00, 消息号001的这个 No vendor specified
查阅之后发现,可能是ECC 版本升级时的一个BUG。该系统所有自开发的报错,必须用自定义的类去报错才可以。如: MESSAGE E000(ZSD).
下图从左至右版本由高到低,ECC,ECC,S4HANA,S4HANA 可以看出最左边的版本的消息与其他系统不一样,是有问题的
SAP 很多事务代码没有标准的BAPI ,如果需要批输入的时候可能需要用到BDC。在BDC使用的时候,两个点
第一个就是如何 将BDC的报错转换成标准的BAPI报错,
DATA: LT_MESSAGE TYPE STANDARD TABLE OF BDCMSGCOLL.
DATA: LS_MESSAGE TYPE BDCMSGCOLL.
DATA: LT_RETURN TYPE STANDARD TABLE OF BAPIRET2.
DATA: LS_RETURN TYPE BAPIRET2.
CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
TABLES
IMT_BDCMSGCOLL = LT_MESSAGE
EXT_RETURN = LT_RETURN.
第二个就是BDC 如何设置窗口默认大小,防止随着用户的屏幕大小不一样而导致录屏出现问题
DATA: GS_CTU_PARAMS TYPE CTU_PARAMS.
GS_CTU_PARAMS-UPDMODE = 'S'.
GS_CTU_PARAMS-DISMODE = 'N'.
GS_CTU_PARAMS-DEFSIZE = 'X'."设置窗口非默认大小
DATA: LV_MODE TYPE CHAR01.
LV_MODE = 'N'.
CALL TRANSACTION 'VI02' USING BDCDATA OPTIONS FROM GS_CTU_PARAMS MESSAGES INTO LT_MESSAGE..
创建物料主数据时,自定义增强字段,前台保存可以修改,但是在使用标准 BAPI_MATERIAL_SAVEDATA 写入没有修改成功,
You'll need to do some customizing to get this code running properly.
SPRO -> Logistics - General->Material Master->Field Selection->Assign Fields to Field Selection Groups
Click on "New Entries". Now you can fill the field "Field name" ( MARA-ZZIFLG) and, VERY IMPORTANT, fill the field "Maint.status" with 'ABCDEFGKLPQSVXZ' (with F1 on this you'll get a description what that means).
So, now you can save this data and go back to the preceding screen.
Now in the displayed list you should have your new field displayed, you now need to fill the field "Sel.Group" with a selection group number (choose the 111). Now save, and everithing should now run.
顾问如上操作之后,bapi就可以成功写入了,前提是extension 里面都传入了值啊
文章来自于网络,如果侵犯了您的权益,请联系站长删除!