ITPub博客

首页 > 应用开发 > IT综合 > BAPI_BILLINGDOC_CREATEMULTIPLE 获利能力相关字段缺失问题

BAPI_BILLINGDOC_CREATEMULTIPLE 获利能力相关字段缺失问题

原创 IT综合 作者:荻野寻 时间:2020-06-17 09:04:53 0 删除 编辑

调用bapi:BAPI_BILLINGDOC_CREATEMULTIPLE创建开票过程中,发现一问题,获利分析凭证中的评估类型字段缺失,找了一下系统里其他地方调用的地方,发现标准里有几个地方在调用这个bapi之前修改了一下事务代码的赋值,因此按照此方式执行了一下,评估类型字段得到了更新。


代码如下(红色部分为调整点):

*开票bapi
DATA : gt_billingdatain   TYPE  TABLE  OF bapivbrk  WITH  HEADER  LINE .

  DATA : lt_success  TYPE  TABLE  OF bapivbrksuccess  WITH  HEADER  LINE ,
        lt_return   TYPE  TABLE  OF bapiret1  WITH  HEADER  LINE ,
        lt_errors   TYPE  TABLE  OF bapivbrkerrors  WITH  HEADER  LINE .
   DATA :lv_testrun  TYPE testrun .  "bapivbrktestrun-testrun.
   DATA :lv_posting  TYPE posting_type_ct .
   DATA :lc_msg  TYPE string .
   DATA :lf_tcode  TYPE sy -tcode .
   REFRESH : lt_return[] ,lt_success[] ,lt_errors[] .
   CLEAR :lv_testrun ,lv_posting . "

开票行项目内容
        gt_billingdatain -ref_doc     = gs_alv -vbeln_j .   "交货单号
        gt_billingdatain -ref_item    = gs_alv -posnr .
        gt_billingdatain -doc_number  = gs_alv -vbeln .   "凭证号
        gt_billingdatain -itm_number  = gs_alv -posnr .

         SELECT SINGLE fkarv
          vbtyp
           INTO  (gt_billingdatain -ordbilltyp  ,gt_billingdatain -ref_doc_ca ) "开票类型 -必输/"SD 凭证类别 J--交货  -必输
           FROM likp
           WHERE vbeln  = gs_alv -vbeln_j .
        gt_billingdatain -doc_type  = gs_alv -auart .   "销售凭证类型-必输
         SELECT SINGLE pstyv
           FROM vbap
           INTO gt_billingdatain -item_categ
           WHERE vbeln  = gs_alv -vbeln
           AND posnr  = gs_alv -posnr . "销售凭证类别--必输
*        gt_billingdatain-material = gs_alv-matnr.
        gt_billingdatain -salesorg   = gs_alv -vkorg .    "销售组织 -必输
        gt_billingdatain -distr_chan  = gs_alv -vtweg . "分销渠道
        gt_billingdatain -division    = gs_alv -spart .  "产品组-必输
        gt_billingdatain -ship_to  = gs_alv -kunnr1 .  "客户
        gt_billingdatain -sold_to  = gs_alv -kunnr2 . "售达方
        gt_billingdatain -bill_to  = gt_billingdatain -ship_to .   "开票方?
        gt_billingdatain -payer    = gt_billingdatain -ship_to .   "付款方?
        gt_billingdatain -payment_terms  =  '0001' .   "付款方式 -立即付款无扣除
        gt_billingdatain -plant     = gs_alv -werks .           "工厂?
        gt_billingdatain - currency   =  'RMB' .           "currency?
        gt_billingdatain -req_qty        = gs_alv -kwmeng .  "数量
        gt_billingdatain -bill_date      = gs_alv -fkdat . ""开票日期 ?
        gt_billingdatain -price_date     = gs_alv -fkdat . " "开票日期 ?
        gt_billingdatain -created_by  = sy -uname .
         APPEND gt_billingdatain .
         CLEAR :gs_alv ,gt_billingdatain .
*  lv_testrun = 'X'."不为测试状态时,bapi自带commit
* Begin correction no value in document                    "v_1458566
*  获利能力缺失调整
  lf_tcode  = sy -tcode .
  sy -tcode  = 'VF01'.
* End correction no value in document                      "^_1458566


   CALL FUNCTION  'BAPI_BILLINGDOC_CREATEMULTIPLE'
     EXPORTING
*     CREATORDATAIN =
      testrun        = lv_testrun  "* Test Run
      posting        = lv_posting
     TABLES
      billingdatain  = gt_billingdatain
      errors         = lt_errors
       return         = lt_return
      success        = lt_success .
* Begin correction avoid endless loop                      "v_1449581
   COMMIT WORK AND WAIT .
* End correction avoid endless loop                        "^_1449581

* Begin correction no value in document                    "v_1458566
  sy -tcode  = lf_tcode .
* End correction no value in document                      "^_1458566


   IF lt_return[]  IS NOT INITIAL .
     LOOP AT lt_return  WHERE type  =  'E'  OR type  =  'A' .
      error_log  =  'X' .
       CONCATENATE lc_msg  lt_return - message  '|'  INTO lc_msg .
       CLEAR lt_return .
     ENDLOOP .
   ENDIF .
   CLEAR :lt_return ,lt_return[] .
   IF error_log  EQ  'X' .
     CONCATENATE gc_msg pc_po  ':' lc_msg  INTO gc_msg .
   ELSE .
     READ TABLE lt_success  INDEX  1 .
     IF sy -subrc  EQ  0  AND lt_success -bill_doc  IS NOT INITIAL .
      gv_bill  = lt_success -bill_doc . "开票号
       CLEAR lt_success .
     ENDIF .
     CLEAR :lt_success .
   ENDIF .

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31405259/viewspace-2698826/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2016-10-25

  • 博文量
    5
  • 访问量
    8341