【修正】销售开票BAPI实例:BAPI_BILLINGDOC_CREATEMULTIPLE
FORM FRM_GENERATE_BILLING .
*-------------------------------------------------------------------------
* EKBE部分 生成VF01凭证
*-------------------------------------------------------------------------DATA: LT_BILLINGDATAIN TYPE TABLE OF BAPIVBRK,LS_BILLINGDATAIN TYPE BAPIVBRK,LT_SUCCESS TYPE TABLE OF BAPIVBRKSUCCESS,LS_SUCCESS TYPE BAPIVBRKSUCCESS,LT_RETURN2 TYPE TABLE OF BAPIRET1,LS_RETURN2 TYPE BAPIRET1.DATA: LV_FKART TYPE VBRK-FKART,LV_VBTYP TYPE VBRK-VBTYP.* BAPI赋值LOOP AT GT_ALV INTO GS_ALV WHERE SOURCE = 'EKBE' AND JSPRI NE 0.CLEAR: LV_VBTYP,LV_VBTYP.LS_BILLINGDATAIN-DOC_NUMBER = GS_ALV-EBELN. "采购订单LS_BILLINGDATAIN-ITM_NUMBER = GS_ALV-EBELP. "采购订单行项目LS_BILLINGDATAIN-REF_DOC = GS_ALV-BELNR. "交货单号LS_BILLINGDATAIN-REF_ITEM = GS_ALV-BUZEI. "交货单行项目SELECT SINGLE FKAIV VBTYP INTO (LV_FKART,LV_VBTYP) FROM LIKP WHERE VBELN = GS_ALV-BELNR.LS_BILLINGDATAIN-ORDBILLTYP = LV_FKART.LS_BILLINGDATAIN-REF_DOC_CA = LV_VBTYP.SELECT SINGLE VKORG VTWEG SPART KUNNRINTO (LS_BILLINGDATAIN-SALESORG,LS_BILLINGDATAIN-DISTR_CHAN,LS_BILLINGDATAIN-DIVISION,LS_BILLINGDATAIN-SHIP_TO)FROM EKPVWHERE EBELN = GS_ALV-EBELNAND EBELP = GS_ALV-EBELP.LS_BILLINGDATAIN-SOLD_TO = LS_BILLINGDATAIN-SHIP_TO. "售达方LS_BILLINGDATAIN-BILL_TO = LS_BILLINGDATAIN-SHIP_TO. "开票方LS_BILLINGDATAIN-PAYER = LS_BILLINGDATAIN-SHIP_TO. "付款方SELECT SINGLE A~ZTERM A~INCO1 A~INCO2 B~WERKSINTO (LS_BILLINGDATAIN-PAYMENT_TERMS,LS_BILLINGDATAIN-INCOTERMS1,LS_BILLINGDATAIN-INCOTERMS2,LS_BILLINGDATAIN-PLANT)FROM EKKO AS AINNER JOIN EKPO AS B ON B~EBELN = A~EBELNWHERE B~EBELN = GS_ALV-EBELNAND B~EBELP = GS_ALV-EBELP.LS_BILLINGDATAIN-MATERIAL = GS_ALV-MATNR.LS_BILLINGDATAIN-REQ_QTY = ABS( GS_ALV-JSSHL ).LS_BILLINGDATAIN-SALES_UNIT = GS_ALV-MEINS.LS_BILLINGDATAIN-BILL_DATE = G_POST_DATE.APPEND LS_BILLINGDATAIN TO LT_BILLINGDATAIN.CLEAR: LS_BILLINGDATAIN.ENDLOOP.SORT LT_BILLINGDATAIN BY REF_DOC REF_ITEM.REFRESH: GT_ZTFI014,LT_RETURN,LT_SUCCESS.CLEAR:LS_RETURN,LS_SUCCESS.CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'TABLESBILLINGDATAIN = LT_BILLINGDATAINRETURN = LT_RETURNSUCCESS = LT_SUCCESS.IF LT_SUCCESS[] IS INITIAL.CP_EIND = 'X'.ENDIF.IF CP_EIND EQ 'X'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'."返回成功的发票号LOOP AT LT_SUCCESS INTO LS_SUCCESS.CLEAR: GS_LOG.GS_LOG-DOCNO = LS_SUCCESS-BILL_DOC.GS_LOG-MESSAGE = LS_SUCCESS-BILL_DOC_ITEM.APPEND GS_LOG TO GT_LOG.*---插入值到表ZTFI014CLEAR: GS_ZTFI014.GS_ZTFI014-TCODE = SY-TCODE.GS_ZTFI014-SEQNO = P_DATUM.GS_ZTFI014-OBJNR = P_BUKR2.GS_ZTFI014-GJAHR = P_DATUM(4).GS_ZTFI014-BUKRS = P_BUKRS.GS_ZTFI014-BELNR = LS_SUCCESS-BILL_DOC.APPEND GS_ZTFI014 TO GT_ZTFI014.CLEAR: GS_LOG,GS_ZTFI014.ENDLOOP.READ TABLE LT_SUCCESS INTO LS_SUCCESS INDEX 1.*----处理ztfi014表SORT GT_ZTFI014 BY BELNR.DELETE ADJACENT DUPLICATES FROM GT_ZTFI014 COMPARING BELNR.INSERT ZTFI014 FROM TABLE GT_ZTFI014 ACCEPTING DUPLICATE KEYS.ENDIF.LOOP AT LT_RETURN INTO LS_RETURN.CLEAR GS_LOG.GS_LOG-TYPE = LS_RETURN2-TYPE.GS_LOG-DOCNO = INVOICEDOCNUMBER.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = LS_RETURN-IDMSGNR = LS_RETURN-NUMBERMSGV1 = LS_RETURN-MESSAGE_V1MSGV2 = LS_RETURN-MESSAGE_V2MSGV3 = LS_RETURN-MESSAGE_V3MSGV4 = LS_RETURN-MESSAGE_V4IMPORTINGMESSAGE_TEXT_OUTPUT = GS_LOG-MESSAGE.CASE GS_LOG-TYPE.WHEN 'S'.GS_LOG-ICON = '3'.WHEN 'W'.GS_LOG-ICON = '2'.WHEN 'E' OR 'A'.GS_LOG-ICON = '1'.WHEN OTHERS.ENDCASE.APPEND GS_LOG TO GT_LOG.CLEAR LS_RETURN2.ENDLOOP.IF CP_EIND EQ 'X'."billing凭证 .MESSAGE E001(00) WITH 'VF01生成billing凭证失败,请点击显示消息查看详细信息!'.ENDIF.
ENDFORM. " FRM_GENERATE_BILLING
销售开票BAPI实例:BAPI_BILLINGDOC_CREATEMULTIPLE
请问这篇有啥问题吗?
【修正】销售开票BAPI实例:BAPI_BILLINGDOC_CREATEMULTIPLE相关推荐
- SAP VF01销售开票:BAPI_BILLINGDOC_CREATEMULTIPLE
VF01的界面是这样的: 界面可以看出,需要传的主要的参数有这么几个,这里的凭证用的是交货单号. 据我了解,销售开票之前的流程是这样的: 生成销售单->销售单生成交货单->交货单过账-&g ...
- SAP ABAP 业务对象 BUS6021 AcctngSalesOrder 会计销售订单 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6021 AcctngSalesOrder 会计销售订单 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6021 AcctngSales ...
- SAP ABAP 业务对象 BUS6022 AcctngSalesQuotation 会计销售配额 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6022 AcctngSalesQuotation 会计销售配额 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6022 AcctngS ...
- ABAP VF01 / VF04销售开票增强 增加校验
需求描述: 销售开票时检查行项目净值是否为0,如果为0则报错不允许开票,涉及Tcode VF01和VF04. 实现过程: 销售开票VF01和VF04底层都是调用的函数RV_INVOICE_CREATE ...
- SAP SD VF01 销售开票增强
本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系. 客户提出需求希望销售开票的时候,带出VBKD-BSTKD 字段到vbrk-zuonr 查阅资料发现 SAP ...
- 销售开票参照不到销售出库单或者销售发货单
销售开票参照不到销售出库单或者销售发货单 排查以下几种情况: 1.销售出库单或销售发货单是否已审核: 2.销售设置选项的开票依据是销售出库单还是销售发货单: 3.参照开票查询方案条件是否满足,是否已过 ...
- 销售开票税价错误,修改方式!
销售开票税价错误,修改方式! 销售开票发现价格未含税解决方式: 业务场景: 销售订单–>交货单过账完成 问题原因: 开票时发现应开含税价发票,但是物料主数据中由于维护的是"未税&quo ...
- 联想服务器销售话术,经典的联想电脑销售话术实例
经典的联想电脑销售话术实例 经典的联想电脑销售话术实例 1.家用机和商用机在配制上差别不大,他们有什么本质区别吗? 答:就像汽车分商务型和家用型一样,电脑针对不同类型的客户也有区分,比如从软硬件设计来 ...
- ABAP创建销售订单BAPI示例
ABAP中创建销售订单BAPI 1.BAPI种类 2.BAPI区别 3.创建抬头行项目输入结构 4.创建接口函数,并配置传入传出参数 5.代码 1.BAPI种类 BAPI_SALESORDER_CRE ...
最新文章
- idea中项目失去svn控制
- Linux基础命令---文本格式转换expand、unexpand
- 如何给网红变现?Instagram正在尝试一种全新的方式
- linux mysql.h 在哪_linux mysql找不到mysql.h
- 35岁中年博士失业,决定给找高校教职的后辈一些建议
- bzoj1304 [CQOI2009]叶子的染色 dfs+树形dp
- MySQL正则表达式的使用
- java中CS和BS_BS与CS的联系与区别【简】
- EIGRP传递默认路由方法总结
- sublime text 3 输入中文 linux,解决 Linux 下 Sublime Text 3 中文无法输入问题
- UVA 624 CD (01背包 带路径)
- c语言n天前是星期几,新手做的日历表及查找日期是星期几
- 信号与系统Matlab实验1
- 5G常见缩略语大全收藏
- 在用mybatis时报错java.lang.AbstractMethodError: com.mysql.jdbc.ServerPreparedState
- 图解谷歌浏览器Chrome的Logo_longware_新浪博客
- G1垃圾回收器详细解读
- python如何定义函数k_Python 函数
- cocos2d 高德地图_高德地图SDK使用经验
- 什么是格局、境界、眼界、眼光