BAPI_ACC_DOCUMENT_POST 解决原因代码输入问题-利用BADI

(1)    复制函数SAMPLE_INTERFACE_RWBAPI01为Z SAMPLE_INTERFACE_RWBAPI01

*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      IT_ACCIT STRUCTURE  ACCIT
*"      IT_ACCCR STRUCTURE  ACCCR
*"      RETURN STRUCTURE  BAPIRET2
*"      EXTENSION STRUCTURE  BAPIACEXTC
*"      IT_ACCWT STRUCTURE  ACCIT_WT
*"  CHANGING
*"     VALUE(DOCUMENT_HEADER) LIKE  ACCHD STRUCTURE  ACCHD
*"----------------------------------------------------------------------
if sy-uname = ‘ZHANGDQ‘.
  LOOP AT EXTENSION.
    loop at IT_ACCIT .
      IT_ACCIT-RSTGR = EXTENSION-FIELD1.
      MODIFY IT_ACCIT .
    endloop.
  ENDLOOP.
 endif.
ENDFUNCTION.

只是测试,所以我只针对我的用户有效。

(2)    FIBF业务交易事件设置

菜单栏

设置-》处理函数模块-》SAP的一个应用程序

修改视图 每处理界面的应用函数模块:总览

处理             Ctr     应用          函数模块

CACS3003            IS-CS        CACS_HR_FIND_EMPLOYEE

CACS8001            EA-ICM     CACS_SAP00_PRC_8001

RWBABI01                            ZSAMPLE_INTERFACE_RWBAPI01

(3)    程序调用BAPI: BAPI_ACC_DOCUMENT_POST

*&---------------------------------------------------------------------*
*& Report  ZFR_GL_DOCUMENT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zfr_gl_document.

DATA: gt_docheader LIKE TABLE OF bapiache09 WITH HEADER LINE,
          gt_accountgl   LIKE TABLE OF bapiacgl09 WITH HEADER LINE,
          gt_acccust      LIKE TABLE OF bapiacar09 WITH HEADER LINE,
          gt_amount      LIKE TABLE OF bapiaccr09 WITH HEADER LINE,
          gt_extension   LIKE TABLE OF bapiacextc WITH HEADER LINE,
          gt_return        LIKE TABLE OF bapiret2 WITH HEADER LINE.

DATA: gv_post_doc   LIKE bapiache09-obj_key.

PERFORM fill_header.

* Fill in gl
PERFORM fill_gl.
PERFORM fill_amount.

gt_EXTENSION-FIELD1 = ‘A01‘.
APPEND gt_EXTENSION.
CLEAR gt_EXTENSION.

CALL FUNCTION ‘BAPI_ACC_DOCUMENT_CHECK‘
  EXPORTING
    documentheader    = gt_docheader
  TABLES
    accountgl         = gt_accountgl
    currencyamount    = gt_amount
    extension1        = gt_extension
    return            = gt_return.

READ TABLE gt_return WITH KEY type = ‘E‘.

IF sy-subrc  <> 0.
  CALL FUNCTION ‘BAPI_ACC_DOCUMENT_POST‘
    EXPORTING
      documentheader    = gt_docheader
    IMPORTING
      obj_key           = gv_post_doc
    TABLES
      accountgl         = gt_accountgl
      currencyamount    = gt_amount" accountpayable = gt_accpay
      EXTENSION1        = gt_EXTENSION
      return            = gt_return.
  COMMIT WORK AND WAIT.

  WRITE: ‘Posting Document: ‘, gv_post_doc.
ELSE.
  WRITE: ‘Error!‘.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  fill_header
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_header .
  CLEAR gt_docheader.
  gt_docheader-doc_date   = sy-datum.
  gt_docheader-pstng_date = sy-datum.
*  gt_docheader-obj_type   = ‘IDOC‘.
*  gt_docheader-obj_key    = ‘$‘.
*  gt_docheader-obj_sys    = ‘BGS1‘.
  gt_docheader-bus_act    = ‘RFBU‘.
  gt_docheader-username   = sy-uname.
  gt_docheader-header_txt = ‘Header Text‘.
  gt_docheader-ref_doc_no = ‘Reference Doc No‘.
  gt_docheader-comp_code  = ‘1100‘.
  gt_docheader-doc_type   = ‘SA‘.
  APPEND gt_docheader.
ENDFORM.                    " fill_header

*&---------------------------------------------------------------------*
*&      Form  fill_amount
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_amount .
  gt_amount-itemno_acc   = ‘1‘.
  gt_amount-currency     = ‘RMB‘.
  gt_amount-amt_doccur   = 10.
  APPEND gt_amount.

    gt_amount-itemno_acc   = ‘2‘.
  gt_amount-currency     = ‘RMB‘.
  gt_amount-amt_doccur   = -10.
  APPEND gt_amount.
ENDFORM.                    " fill_amount

*&---------------------------------------------------------------------*
*&      Form  fill_gl
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_gl .
  CLEAR gt_accountgl.
  gt_accountgl-gl_account     = ‘1001010000‘.
  gt_accountgl-itemno_acc     = ‘1‘.
  gt_accountgl-item_text      = ‘Item Text‘.
  gt_accountgl-bus_area       = ‘‘.
  gt_accountgl-profit_ctr     = ‘‘.
  gt_accountgl-costcenter     = ‘‘.
  gt_accountgl-comp_code      = ‘1100‘.
  gt_accountgl-alloc_nmbr     = ‘456‘.
  gt_accountgl-COSTCENTER     = ‘1020120300‘.
  APPEND gt_accountgl.
  CLEAR gt_accountgl.

  gt_accountgl-gl_account     = ‘1001010000‘.
  gt_accountgl-itemno_acc     = ‘2‘.
  gt_accountgl-item_text      = ‘Item Text‘.
  gt_accountgl-bus_area       = ‘‘.
  gt_accountgl-profit_ctr     = ‘‘.
  gt_accountgl-costcenter     = ‘‘.
  gt_accountgl-comp_code      = ‘1100‘.
  gt_accountgl-alloc_nmbr     = ‘789‘.
  gt_accountgl-COSTCENTER     = ‘1020120300‘.
  APPEND gt_accountgl.
  CLEAR gt_accountgl.

ENDFORM.                    " fill_gl

(4)    查看运行结果

(5)    1

时间: 2024-12-15 01:53:51

BAPI_ACC_DOCUMENT_POST 解决原因代码输入问题-利用BADI的相关文章

会计凭证原因代码增强

使用BAPI_ACC_DOCUMENT_POST 创建会计凭证,用BADI扩展 业务需求:和银行做一个接口,要通过银行流水产生会计凭证,会计凭证的事务码是F-02,查到了BAPI方法BAPI_ACC_DOCUMENT_POST.昨天测试发现,有一些参数在BAPI_ACC_DOCUMENT_POST的输入和表参数中根本没有,如记账码Posting Key.原因代码Reason Code,那怎么把这些字段的值传进去呢?在SDN查了一下相关问题的解决办法,发现遇到这个问题的朋友还挺多,总结了一下,解决

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题 原因: 是因为geometry的坐标系和所要查询的图层不一样导致的(问题引起是由于底图中叠加了不同的坐标系的引起的) 问题描述: 我在公司做好的功能并且测好了,到现场出了问题,发现通过where语句查询时正常的,拉宽查询不正常.并且通过网页打开图层查询请求页面,手动输入代码中得到的geometry查询是可以查到数据的. 问题解决过程: 通过fiddler跟踪请求的http路径(因为arcgisAPI请求arcg

利用BADI WORKORDER_INFOSYSTEM在COOIS中添加自定义列办事处

需求描述:根据LC业务部门提出的需求,需要在COOIS中添加办事处一列. 1.在IOHEADER_TAB的CI_IOHEADER中添加字段办事处,如下面图所示: 2.se19 在badi name中写入:WORKORDER_INFOSYSTEM 点击Create Impl.如下面图所示 3.双击TABLES_MODIFY_LAY,输入一下代码,保存激活即可 DATA : BEGIN OF ST_VKBUR, VKBUR TYPE VKBUR, END OF ST_VKBUR. DATA : BE

使用GDB调试PHP代码,解决PHP代码死循环

最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高.初步断定是PHP代码中发生死循环. 下面通过一段代码展示如何解决PHP死循环问题. #dead_loop.php $array = array(); for($i = 0; $i < 10000; $i++) { $array[] = $i; } include __DIR__."/include.php"; #include.php while(1) { usle

解决java代码测试http协议505错误

代码功能:通过java代码获取网页源代码: 所用工具:Myclipse8.5+tomcat6.0+浏览器 系统环境:windows xp旗舰版火狐浏览器版本: IE浏览器版本: 测试http协议有错误java代码如下. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.

解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with &#39;\xc1&#39;

导致出错的根源就是编码问题. 解决方案是: 在程序最上面加上: view plai# coding=gbk 这样程序就可以正常运行了. 解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with '\xc1'

Visual studio智能感知挡住了当前代码输入行

AssistX->Listboxes->Enable Visual Assist completion, suggestion and member list in .. 如果勾选了该项就会引起智能感知挡住了当前代码输入行. (此种情况仅发生在AssistX集成于2005/2008,2010以后即使勾选该项也很正常.环境:win8.1 x64)

解决SyntaxHighlighter 代码不换行的问题

用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下如何解决.前端资源分享 打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示. 解决SyntaxHighlighter 代码不换行的问题

提升c++builder 代码输入流畅度的配置

提高c++builder 代码输入流畅度 1.输入指针的函数名后,识别函数参数移动光标到括弧内,此功能太慢,有明显延迟,建议关闭.关闭以后,输入函数名不会自动添加(),需要自己手动输入括弧了,不过速度快了啊.要看函数参数的定义快捷键Ctrl+Shift+Space this->Focused() this->FocusControl(); 去掉下面2个勾,此功能是IDE自带. Auto Parenthesis Code Parameters 2.输入任意两个字母,弹出相关的变量.函数等方便选择