结构定义: ZS_POST_HEADER

BUKRS

BUKRS

CHAR

4

0

公司代码

NUMPG

J_1ANOPG

NUMC

3

0

发票的页数

BLART

BLART

CHAR

2

0

凭证类型

BLDAT

BLDAT

DATS

8

0

凭证中的凭证日期

BUDAT

BUDAT

DATS

8

0

凭证中的过帐日期

BKTXT

BKTXT

CHAR

25

0

凭证抬头文本

XBLNR

XBLNR

CHAR

16

0

参考凭证编号

WAERS

WAERS

CUKY

5

0

货币码

KURSF

KURSF

DEC

9

5

汇率

结构定义:ZS_post_item

SHKZG

SHKZG

CHAR

1

0

借方/贷方标识

KOART

KOART

CHAR

1

0

科目类型

BSCHL

BSCHL

CHAR

2

0

记帐代码

HKONT

HKONT

CHAR

10

0

总分类帐帐目

KUNNR

KUNNR

CHAR

10

0

客户编号

LIFNR

LIFNR

CHAR

10

0

供应商或债权人的帐号

UMSKZ

UMSKZ

CHAR

1

0

特殊总帐标识

KOSTL

KOSTL

CHAR

10

0

成本中心

PRCTR

PRCTR

CHAR

10

0

利润中心

DMBTR

DMBTR

CURR

13

2

按本位币计的金额

ZUONR

DZUONR

CHAR

18

0

分配编号

SGTXT

SGTXT

CHAR

50

0

项目文本

RSTGR

RSTGR

CHAR

3

0

现金流量事务代码

ZFBDT

ZFBDT

DATS

8

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

付款方式

增强结构定义  zs_post_exten

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

汇票出票人

增强1:
BADI  ACC_DOCUMENT里赋值
这里建议加上增强结构名称的校验,防止影响别人
而且直接这么move 可能会出现空值覆盖原来的值的情况,建议判断非空再复制
或者参考一个工具代码

FUNCTION  zfm_move_value .
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(IS_INPUT)
*"     VALUE(IV_STRUCTURE)
*"     VALUE(CV_STRUCTURE)
*"  CHANGING
*"     VALUE(CS_INPUT) OPTIONAL
*"----------------------------------------------------------------------

FIELD-SYMBOLS :
          TYPE  any ,                                  "从工作区结构
        TYPE  any .                                  "到工作区结构
*
   DATA  :  lt_idetails  TYPE  abap_compdescr_tab  WITH  HEADER  LINE .
   DATA  :  lr_ref_table_des  TYPE  REF  TO  cl_abap_structdescr .

DATA  :  ct_idetails  TYPE  abap_compdescr_tab  WITH  HEADER  LINE .
   DATA  :  cr_ref_table_des  TYPE  REF  TO  cl_abap_structdescr .

lr_ref_table_des ?=
        cl_abap_typedescr => describe_by_name (  iv_structure  ) .

CLEAR  lt_idetails[] .
  lt_idetails[]  =  lr_ref_table_des -> components[] .

cr_ref_table_des ?=
        cl_abap_typedescr => describe_by_name (  cv_structure  ) .

CLEAR  ct_idetails[] .
  ct_idetails[]  =  cr_ref_table_des -> components[] .

"循环判断结构每个字段
   LOOP  AT  lt_idetails .
     ASSIGN  COMPONENT  lt_idetails - name  OF  STRUCTURE  is_input  TO    .
     CHECK  sy - subrc  =  0  .

READ  TABLE  ct_idetails  WITH  KEY  name  =  lt_idetails - name .
     CHECK  sy - subrc  =  0 .
     ASSIGN  COMPONENT  ct_idetails - name  OF  STRUCTURE  cs_input  TO  .
     CHECK  sy - subrc  =  0 .

IF    IS  NOT  INITIAL .
        =   .
     ENDIF .
   ENDLOOP .

ENDFUNCTION .

增强2  隐士增强
增强位置1:  FI_DOCUMENT_CHECK
一进来,先检查是否是W类型特殊总账(用get函数获取,set操作在 调用bapi的时候 赋值)
如果是,把char_w 改为U
在函数最后,改回去

增强位置2: LFACIF5D

form最后的地方
把exten 数据传过来,传给bsed数据

这里特殊声明下:

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

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

FUNCTION zfm_ac_post  .
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IS_HEADER) TYPE  ZS_POST_HEADER
*"  EXPORTING
*"     VALUE(EV_BELNR) TYPE  BELNR_D
*"     VALUE(EV_MSG) TYPE  STRING
*"  TABLES
*"      IT_ITEM STRUCTURE  ZS_POST_ITEM
*"      RETURN STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------

DATA : gs_bkpf  TYPE bapiache09 ,
         gt_account  TYPE  TABLE  OF bapiacgl09 , "总帐
         gs_account  TYPE bapiacgl09 ,
         gt_customer  TYPE  TABLE  OF bapiacar09 , "客户
         gs_customer  TYPE  bapiacar09 ,
         gt_vendor  TYPE  TABLE  OF bapiacap09 , "供应商
         gs_vendor  TYPE bapiacap09 ,
         gt_currency  TYPE  TABLE  OF bapiaccr09 , "货币
         gs_currency  TYPE bapiaccr09 ,
         gt_etx  TYPE  TABLE  OF bapiparex , "扩展结构
         gs_etx  TYPE  bapiparex ,
         gt_etxend  TYPE  TABLE  OF zs_post_exten , "扩展结构
         gs_etxend  TYPE zs_post_exten ,
         gt_return  TYPE  TABLE  OF bapiret2   WITH  HEADER  LINE .

DATA : l_itemno  TYPE posnr_acc . "行项目编号
   DATA : lv_number1  TYPE  i .
   DATA : lv_flag_w  TYPE flag .       "W 类型特殊总账

DATA :ls_item  LIKE  LINE  OF it_item .

*header
   CLEAR gs_bkpf .
  gs_bkpf -comp_code   = is_header -bukrs .
  gs_bkpf -doc_type    = is_header -blart .
  gs_bkpf -doc_date    = is_header -bldat .
  gs_bkpf -pstng_date  = is_header -budat .
  gs_bkpf -header_txt  = is_header -bktxt .
  gs_bkpf -ref_doc_no  = is_header -xblnr .
  gs_bkpf -username    = sy -uname .

*item
   REFRESH :gt_account ,gt_customer ,gt_vendor ,gt_currency ,gt_etxend ,gt_etx ,gt_return .
   CLEAR : gs_account ,gs_customer ,gs_vendor ,gs_currency ,gs_etxend ,gs_etx .

CLEAR ls_item .

l_itemno  =  '0000000000' .            "行项目编号
   LOOP  AT it_item  INTO ls_item .

**    gs_bkpf-neg_postng = ls_item-xnegp." header 的,但是为啥到了item

CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'
       EXPORTING
         input   = ls_item -kunnr
       IMPORTING
         output  = ls_item -kunnr .
     CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'
       EXPORTING
         input   = ls_item -lifnr

会计凭证过账demo_SAP刘梦_新浪博客相关推荐

  1. ABAP新建session会话的函数_SAP刘梦_新浪博客

    货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片,例如BJ_ABAP_森林木.群内禁止 ...

  2. MRM_TOLERANCE_CHECK 增强点:MM08R002 标准逻辑 补充_SAP刘梦_新浪博客

    上篇文章中已经写了,可以在MM08R002 中可以用自定义的T169G 数据覆盖配置的条件 debug下标准逻辑 默认 当 I_TOLSL = PP 时 I_AKT_WERT = MIRO 界面输入金 ...

  3. SAP母子订单(汇总订单)详解测试_SAP刘梦_新浪博客

    汇总订单:一个在几个生产层次上链接计划订单或生产订单的多层结构.仅为结构中的最上面一个订单执行库存移动.每个订单有一个单独的订单号. 汇总订单(母子订单)优点 1.生产工艺的集成视图 汇总订单允许你在 ...

  4. 获取物料批次特性取值BAPI_SAP刘梦_新浪博客

    通过物料+批次号码+工厂 查询批次特性值 TCODE:MSC1/2/3N ,CT04 涉及到的表:mcha  cabn  ausp等 注:1.每一种批次的特性都对应一个特性代码,在CT04可查看 2. ...

  5. VariantsTransport_SAP刘梦_新浪博客

    Variants Transport 货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片 ...

  6. 查找SAPParameterID_SAP刘梦_新浪博客

    大家都知道,在SAP系统的个人数据里面可以给用户设定一些参数的默认值 这样很方便一些客户用特定的数据,那如何去找parameter ID呢? 第一种方法,大家都很熟悉的就是用F1,直接可以看到这个数据 ...

  7. ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客

    CALL TRANSACTION的用法 首先看下标准语法: Syntax Forms Simple transaction call 1. CALL TRANSACTION ta WITH|WITHO ...

  8. Demo:替代_SAP刘梦_新浪博客

    Tcode:OBBH 选择替换字段 设置先决条件 这里demo输入常量 替换 维护出口代码 Tcode: Gcx2 代码由两部分构成: 在form  get_exit_titles 先声明 然后维护u ...

  9. 文本相关_SAP刘梦_新浪博客

    最近两天涉及到订单文本的问题,英文的能取到,中文的取不到. 正常维护文本是可以选语言的(或者根据登录语言自动更改),比如: 但是有些进去的时候是默认了EN.比如 一般而言我们调用函数取文本都是时候语言 ...

最新文章

  1. php 静态类内存,php面向对象中static静态属性与方法的内存位置分析
  2. python冒泡排序与常用数学计算
  3. Ansible批量添加远程登录用户
  4. POJ 1655 Balancing Act[树的重心/树形dp]
  5. RTX5 | 消息队列06 - (实战技巧)FDCAN接收中断ISR同步线程
  6. 【SpringCloud】Spring cloud Alibaba Sentinel 服务降级 (阿里版本Hystrix)
  7. myeclipse汉化及其相关配置设置(转)
  8. 论文word引用参考文献
  9. make flash 报错解决。
  10. Ubuntu系统安装教程
  11. RFB-Net论文代码映射
  12. 脑科学发展到今天,距离记忆编辑提取还有多远
  13. 我的世界服务器自定义翅膀,我的世界翅膀自定义皮肤period; | 手游网游页游攻略大全...
  14. FPGA开发第四弹:触摸按键控制LED灯实验
  15. 操作系统的发展历史(综述性小论文)
  16. cve-2019-0708漏洞复现
  17. rocketMq监控平台界面
  18. require()------node js
  19. Code Combat学习心得(Kithgard地牢45关Mightier Than the Sword)
  20. java斗图表情_Java爬取斗图网站的所有表情包

热门文章

  1. GitHub权限管理
  2. Mysql面试基础知识(全)
  3. 我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事Game Jam
  4. vue中使用raphael.js实现地图绘制
  5. Mac 上安装 GCC
  6. CF-1143D. The Beatles
  7. 批量修改图片名称且改为不同名字
  8. SSH(Secure Shell)基本介绍以及远程机器的连接方式
  9. VUE项目实践--网站管理系统
  10. 国自然申请,这些行为可能会引发学术不端