首页 > 其他分享 >BAPI_ACC_DOCUMENT_POST更新BSED数据增强

BAPI_ACC_DOCUMENT_POST更新BSED数据增强

时间:2022-10-14 20:02:27浏览次数:72  
标签:ACC BAPI gt return BSED 总账 DOCUMENT


FB03查看凭证

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_字段

对于特殊总账类型为W的,双击进入可见出票人出票行 票据号等信息

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_字段_02

这些数据是保存在bsed表的。


而 BAPI_ACC_DOCUMENT_POST  并没有提供这些字段。所以需要走增强。


首先肯定是想到的extension2  字段


"创建凭证
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = gs_bkpf
TABLES
accountgl = gt_account
accountreceivable = gt_customer
accountpayable = gt_vendor
currencyamount = gt_currency
return = gt_return
extension2 = gt_etx.


然后在BADI  ACC_DOCUMENT里赋值

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_sed_03

发现这里面也没有票据号信息,至于页数啊之类的信息


然后我有找其他增强,出口之类的,没找到合适的。



后来索性直接在源码里查找BSED

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_赋值_04

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_赋值_05

最后发现都不能用……


查找SAP SCN 等,也没有特别好的解决方案。

SCN上也有人提出过这个问题,没解决

​https://archive.sap.com/discussions/thread/1461635​



最后的解决办法:隐士增强+BADI


增强位置1: FI_DOCUMENT_CHECK


一进来,先检查是否是W类型特殊总账(用get函数获取,set操作在 调用bapi的时候 赋值)

如果是,把char_w 改为U

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_sed_06

在函数最后,改回去

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_sed_07

增强位置2:LFACIF5D 

form最后的地方

把exten 数据传过来,传给bsed数据


这里特殊声明下:

因为这个demo只涉及特殊总账类型为W的,其他特殊总账不考虑BSED,

这个得根据所在项目业务来确定,如果除了W还有 S或者其他等类型的,再多加个判断即可。


BAPI_ACC_DOCUMENT_POST更新BSED数据增强_赋值_08

增强结构比如下面字段

POSNR

POSNR_ACC

NUMC

10

0

会计凭证行项目编号

BSCHL

BSCHL

CHAR

2

0

记帐代码

SHKZG

SHKZG

CHAR

1

0

借方/贷方标识

NUMPG

J_1ANOPG

NUMC

3

0

发票的页数

RSTGR

RSTGR

CHAR

3

0

现金流量事务代码

WDATE

WDATE

DATS

8

0

汇票签发日

WBANK

WBANK

CHAR

60

0

票据号

WLZBP

WLZBP

CHAR

60

0

出票行

XNEGP

XNEGP

CHAR

1

0

标识: 反记帐

KKBER

KKBER

CHAR

4

0

信贷控制范围

ZLSCH

SCHZW_BSEG

CHAR

1

0

付款方式

WNAME

WNAME




汇票受票人的名字

WBZOG

WBZOG




汇票出票人


因为有些字段不是bsed的,所以还是需要

然后在BADI 

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_sed_09

调用BAPI使用 extension2 

CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = gs_bkpf
TABLES
accountgl = gt_account
accountreceivable = gt_customer
accountpayable = gt_vendor
currencyamount = gt_currency
return = gt_return
extension2 = gt_etx.


最后我说下,不要使用ABAP Memory传值, 维护起来太麻烦了

接受的人都不知道你哪儿存进去的,也不知哪儿取出来的。

所以用set get函数,只要看到一个,就可以根据另一个 定位到哪儿调用了。


 

BAPI_ACC_DOCUMENT_POST更新BSED数据增强_赋值_10






标签:ACC,BAPI,gt,return,BSED,总账,DOCUMENT
From: https://blog.51cto.com/u_15680210/5757861

相关文章

  • DEMO:MB1B 311 移库 BAPI_GOODSMVT_CREATE
    *&---------------------------------------------------------------------**&ReportZDEMO_MB1B*&*&---------------------------------------------------------------......
  • WDA DEMO 11 根据BAPI/Function创建WDA
    货铺QQ群号:834508274进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合事先声明下,本......
  • 增强Demo 03 销售订单屏幕增强后BAPI增强
    干货:前面两篇文章分别介绍了销售订单抬头和行项目上屏幕增强的案例。屏幕上增加了俩字段,那BAPI创建修改的时候怎么处理?怎么把增强字段值写进去?使用BAPI的EXTENSIONIN参数可......
  • HU打包BAPI:内部给号 更新交货单
    其他相关资料可点击:​​HU相关配置​​​​HU打包 内外部给号 前台操作​​代码输入参数:内向交货单号*"--------------------------------------------------------------......
  • BAPI_GOODSMVT_CREATE 带序列号
     API_GOODSMVT_CREATE物料移动,比如MB1B'343'"unblock'344'"block参考代码*&BAPIDATA:goodsmvt_headerLIKEbapi2017_gm_head_01,goodsmvt_codeLIKE......
  • 获取成本中心层级BAPI_COSTCENTERGROUP_GETDETAIL
    T-CODE:OKEON可以查看成本中心层级如果你查找对应的表,会查找到  SETHEADER和对应的SETHEADERT文本表对照数据可能发下问题应该还有别的判断条件,其他字段这里也不继续看......
  • 生成会计凭证 ACC_DOCUMENT 增强可能忽略一个问题
    帮人解决一个BAPI_ACC_DOCUMENT_POST创建会计凭证增强的问题,然后整理了以下内容:  "创建凭证的时候经常会用到  extension2 传一些标准bapi接口未提供的值  CALLFU......
  • 关于datagri指定的数据库用户/密码组合被拒: [28000][1045] Access denied for user '
      这是报错页面,但是其实用户名随便输,密码不能随便,要输的密码要和MySQL的登录密码一样就可以完成建立  完成! ......
  • 前端成神之路-WebAPIs07
    07-WebAPIs学习目标:能够写出移动端触屏事件能够写出常见的移动端特效能够使用移动端开发插件开发移动端特效能够使用移动端开发框架开发移动端特效能够写出sessio......
  • .net6 WebApi 之 Configuration
    .net6WebApi使用Configuration获取appsettings.json中的内容,用法如下:appsettings.json中的内容{"Logging":{"LogLevel":{"Default":"Informati......