" BAPI_BILLINGDOC_CREATEMULTIPLE"以创建包含多个项目的开票凭证NETWR为0

2020-08-30 14:46发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在使用BAPI" BAPI_BILLINGDOC_CREATEMULTIPLE"创建开票凭证。 创建开票凭证很好,但是当DN有多个项目时,只有第一个项目的" NETWR"是正确的,而另一个项目的" NETWR"是" 0.00",我确定bapi导入内部表的数据都是正确的 并且bapi导出消息表也返回成功。 请检查以下图片,该错误账单文档有多个项目。

在lt_lips处将LOOP AT放入ls_lips。
     lv_index = lv_index + 1。

     使用键vbeln = ls_lips-vbeln posnn = ls_lips-posnr二进制表读取表lt_vbfa。
     如果sy-subrc = 0。
       ls_billingdatain-doc_number = lt_vbfa-vbelv。  "所以
       ls_billingdatain-itm_number = lt_vbfa-posnv。  " SO ITEM
      万一。
     ls_billingdatain-ref_doc = ls_lips-vbeln。  "(DN)
     ls_billingdatain-ref_item = ls_lips-posnr。

     使用键vbeln = ls_lips-vbeln BINARY SEARCH读取表lt_likp。
     如果sy-subrc = 0。
       ls_billingdatain-ref_doc_ca = lt_likp-vbtyp。  " likp-VBTYP
     万一。

     ls_billingdatain-bill_date = iv_date。
     ls_billingdatain-ordbilltyp ='IV'。

     使用键vbeln = ls_lips-vgbel二进制搜索将表lt_soflow读入ls_soflow。
     如果sy-subrc = 0。
       ls_billingdatain-salesorg = ls_soflow-vkorg。
       ls_billingdatain-distr_chan = ls_soflow-vtweg。
       ls_billingdatain-division = ls_soflow-spart。
       ls_billingdatain-doc_type = ls_soflow-auart。
     万一。

     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
             parvw ='AG'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-sold_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='WE'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-ship_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='RE'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-bill_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='RG'二进制搜索。
     如果sy-subrc = 0。
          ls_billingdatain-payer = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_soflow使用键vbeln = ls_lips-vgbel进入ls_soflow
            posnr = ls_lips-vgpos二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-payment_terms = ls_soflow-zterm。
       ls_billingdatain-incoterms1 = ls_soflow-inco1。
       ls_billingdatain-incoterms2 = ls_soflow-inco2。
     万一。

     ls_billingdatain-plant = ls_lips-werks。
     ls_billingdatain-material = ls_lips-matnr。
     ls_billingdatain-req_qty = ls_lips-lfimg。
     ls_billingdatain-sales_unit = ls_lips-vrkme。
     ls_billingdatain-currency ='CNY'。

     将ls_billingdatain附加到lt_billingdatain中。

     清除:ls_billingdatain。

   结局。

   通话功能'BAPI_BILLINGDOC_CREATEMULTIPLE'

     出口

 * CREATORDATAIN =

       测试运行=空间

 *发布=

     桌子

       billingdatain = lt_billingdatain

       conditiondata = lt_conditiondatain

 * CCARDDATAIN =

 * TEXTDATAIN =

 *错误=

       返回= lt_return

       成功= lt_成功。

 

谢谢。

(68.2 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在使用BAPI" BAPI_BILLINGDOC_CREATEMULTIPLE"创建开票凭证。 创建开票凭证很好,但是当DN有多个项目时,只有第一个项目的" NETWR"是正确的,而另一个项目的" NETWR"是" 0.00",我确定bapi导入内部表的数据都是正确的 并且bapi导出消息表也返回成功。 请检查以下图片,该错误账单文档有多个项目。

在lt_lips处将LOOP AT放入ls_lips。
     lv_index = lv_index + 1。

     使用键vbeln = ls_lips-vbeln posnn = ls_lips-posnr二进制表读取表lt_vbfa。
     如果sy-subrc = 0。
       ls_billingdatain-doc_number = lt_vbfa-vbelv。  "所以
       ls_billingdatain-itm_number = lt_vbfa-posnv。  " SO ITEM
      万一。
     ls_billingdatain-ref_doc = ls_lips-vbeln。  "(DN)
     ls_billingdatain-ref_item = ls_lips-posnr。

     使用键vbeln = ls_lips-vbeln BINARY SEARCH读取表lt_likp。
     如果sy-subrc = 0。
       ls_billingdatain-ref_doc_ca = lt_likp-vbtyp。  " likp-VBTYP
     万一。

     ls_billingdatain-bill_date = iv_date。
     ls_billingdatain-ordbilltyp ='IV'。

     使用键vbeln = ls_lips-vgbel二进制搜索将表lt_soflow读入ls_soflow。
     如果sy-subrc = 0。
       ls_billingdatain-salesorg = ls_soflow-vkorg。
       ls_billingdatain-distr_chan = ls_soflow-vtweg。
       ls_billingdatain-division = ls_soflow-spart。
       ls_billingdatain-doc_type = ls_soflow-auart。
     万一。

     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
             parvw ='AG'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-sold_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='WE'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-ship_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='RE'二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-bill_to = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_vbpa并使用键vbeln = ls_lips-vgbel进入ls_vbpa
            parvw ='RG'二进制搜索。
     如果sy-subrc = 0。
          ls_billingdatain-payer = ls_vbpa-kunnr。  " ???
     万一。


     读取表lt_soflow使用键vbeln = ls_lips-vgbel进入ls_soflow
            posnr = ls_lips-vgpos二进制搜索。
     如果sy-subrc = 0。
       ls_billingdatain-payment_terms = ls_soflow-zterm。
       ls_billingdatain-incoterms1 = ls_soflow-inco1。
       ls_billingdatain-incoterms2 = ls_soflow-inco2。
     万一。

     ls_billingdatain-plant = ls_lips-werks。
     ls_billingdatain-material = ls_lips-matnr。
     ls_billingdatain-req_qty = ls_lips-lfimg。
     ls_billingdatain-sales_unit = ls_lips-vrkme。
     ls_billingdatain-currency ='CNY'。

     将ls_billingdatain附加到lt_billingdatain中。

     清除:ls_billingdatain。

   结局。

   通话功能'BAPI_BILLINGDOC_CREATEMULTIPLE'

     出口

 * CREATORDATAIN =

       测试运行=空间

 *发布=

     桌子

       billingdatain = lt_billingdatain

       conditiondata = lt_conditiondatain

 * CCARDDATAIN =

 * TEXTDATAIN =

 *错误=

       返回= lt_return

       成功= lt_成功。

 

谢谢。

(68.2 kB)
付费偷看设置
发送
1条回答
一只江湖小虾
1楼-- · 2020-08-30 15:21

你好,

你有没有解决这个问题?

一周热门 更多>