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 里面都传入了值啊

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值