前言:本人曾查遍了包括SAP官网在内的大小网站来研究发票计划。发票计划是个冷门的业务,很多顾问也是第一次听说。经过两周的研究,终于把它搞明白了。
问题的根源:
VBKD-FPLNR 这个字段在做完创建完成销售订单之后不存在。即使我使用一些方法在FPLA中导入了fplnr字段,也不能得到我们想要的结果。

只有打开了如图上所示的页签,我们才可以得到FPLNR这个字段。不然批导的时候,就会DUMP.
解决的方法:
1.根据订单号和行项目去VBKD表找FPLNR,如果有任何一个找不到,使用BDC激活抬头的发票计划页签。

*------------------------------------------------------------*
*    DESC: BDC定义
*------------------------------------------------------------*
DATA: BEGIN OF BDCDATA OCCURS 0.INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDCDATA.
DATA: GV_STRING TYPE STRING.
DATA: TT1(100).
DATA: TT2(100).
DATA: BDC_MESSAGE LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.DATA:GS_DATA TYPE VBAK,GT_DATA TYPE TABLE OF VBAK.
DATA:W_MESSAGE TYPE STRING.DATA : L_MESSAGE LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
PERFORM FRM_BDC_VA02 USING GS_VBAP_COPY."参数传订单号即可
FORM FRM_BDC_VA02 USING ES_DATA LIKE GS_VBAP.
*               CHANGING " ev_mes TYPE zfi_bank_info-msg
*                         ev_msgst.DATA : V_MODE TYPE C VALUE 'E'.DATA: LS_BDCOPT TYPE  CTU_PARAMS.REFRESH:BDC_MESSAGE, BDCDATA.PERFORM  FRM_PROCESS_VA02  USING ES_DATA.LS_BDCOPT-DISMODE = 'E'.  " A 前台显示 E 出错显示 N 后台显示 PLS_BDCOPT-UPDMODE = 'S'.LS_BDCOPT-CATTMODE = 'A'.LS_BDCOPT-RACOMMIT = 'X'.LS_BDCOPT-NOBIEND = 'X'.CALL TRANSACTION 'VA02' USING BDCDATA OPTIONS FROM LS_BDCOPT MESSAGES INTO BDC_MESSAGE   .PERFORM GENERATE_MESSAGE CHANGING ES_DATA.ENDFORM.
FORM FRM_PROCESS_VA02 USING IS_DATA LIKE GS_VBAP ." LOOP AT gt_data INTO gs_data.
***  修改凭证抬头文本PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.PERFORM BDC_FIELD       USING 'BDC_CURSOR''VBAK-VBELN'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=ENT2'.PERFORM BDC_FIELD       USING 'VBAK-VBELN'IS_DATA-VBELN."record-VBELN_001.PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=HEAD'.PERFORM BDC_FIELD       USING 'BDC_CURSOR''RV45A-MABNR(02)'.PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4002'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=T\05'.PERFORM BDC_FIELD       USING 'BDC_CURSOR''VBAK-AUDAT'.PERFORM BDC_DYNPRO      USING 'SAPLCNMS' '1300'.PERFORM BDC_FIELD       USING 'BDC_CURSOR''MLSTS-AUFNR'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=GO'.PERFORM BDC_DYNPRO      USING 'SAPLV60F' '4001'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=S\BACK'.PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.PERFORM BDC_FIELD       USING 'BDC_CURSOR''RV45A-MABNR(02)'.PERFORM BDC_FIELD       USING 'BDC_OKCODE''=S\SICH'.ENDFORM.
*  BDC 消息
FORM GENERATE_MESSAGE CHANGING ES_DATA LIKE GS_VBAP.DATA:GT_MSG        LIKE TABLE OF BDCMSGCOLL,LT_BAPIRETURN LIKE TABLE OF BAPIRET2.IF SY-SUBRC = 0.CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'TABLESIMT_BDCMSGCOLL = GT_MSGEXT_RETURN     = LT_BAPIRETURN.ELSE.*    MESSAGE '出错了!!!' TYPE 'I'.ES_DATA-MESTY = '发票计划页签由于数据问题未激活!' .ENDIF.ENDFORM. " generate_messageFORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM  = PROGRAM.BDCDATA-DYNPRO   = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.
ENDFORM. "BDC_DYNPROFORM BDC_FIELD USING FNAM FVAL.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.
ENDFORM.

2.此时fplnr已经生成,常规方法导入即可
CALL FUNCTION ‘SD_VBKD_READ_WITH_VBELN’
CALL FUNCTION ‘BILLING_SCHEDULE_READ’
CALL FUNCTION ‘BILLING_SCHEDULE_SAVE’
COMMIT WORK AND WAIT.

2022-04-03更新
发票计划的导入全部用BDC导入,因为导入发票计划之后还需要VA02打开,确保各个表都能写入。
举个例子,导入抬头的发票计划,行项目只有VA02重新打开,才能映射到行项目的发票计划

销售订单发票计划导入相关推荐

  1. 递归方法计划销售订单的计划物料成本

    一个PS报表中的需求,要求求销售订单的计划成本,其中就包括计划物料成本,比较确准的计算主法就是遍历BOM,求出物料成本. 如果在创建销售订单时项目BOM可以产生,且用户进行了成本估算,则完全可以从系统 ...

  2. SD-增强-销售订单/开票计划屏幕增强-VA01/VA02/VA03/VA21/VA22/VA23

    需求:业务要求在开票计划的页签中把这个字段给它放出来. 字段为DESCR,这个字段是原来就有的,只是在屏幕上不显示而已.现在要求放出来. 遇到的问题: 1.在这里做个屏幕增强相当简单了.但是,输入值之 ...

  3. 销售订单——抬头出具发票计划状态计算逻辑

    近期做了一个订单发票计划的程序, 发现订单抬头发票计划的状态 在数据表中是没有值的, 而我们在前台查看数据时却是有的, 那这个状态是怎么来的呢? 通过debug分析系统标准代码,得到源代码的计算逻辑. ...

  4. 【SAP-PS笔记】项目交货之基于销售订单VL01N交货

    前言: PS顾问可能都清楚,在销售型项目上的物料需要发货至客户时,如涉及交货一般常用CNS0创建项目交货单,将项目下的物料发货至客户. 因此我们设计销售型项目系统流程时,一般使用以下流程: 1.销售订 ...

  5. 【MM模块】ERS and Invoicing Plans 发票计划

    Evaluated Receipt Settlement:ERS 正常我们做发票校验是基于每次收货来做的,这样对于某些频繁采购的货物来讲就比较麻烦了,其实SAP还提供了这样一个方式,我们称之为ERS, ...

  6. SAP 销售订单无法在MD04显示

    在进行SAP相关MRP策略测试时发现,不管选择何种策略,创建销售订单后,MD04无法显示销售订单的信息.通过OVZG维护需求等级.OVZH检查需求类型,还是没有解决问题: 在今天在另一个105系统中进 ...

  7. SAP中销售订单计划行类别中请求/装配对物料需求计划的影响测试

    销售订单中行项目的计划行类别选择,如下图所示,从描述中来看,控制该销售订单计划行是否参与MRP.当然,销售订单是否参与MRP主要是由计划策略中的相关设定来决定.而计划策略是在物料层面设定.但销售订单中 ...

  8. java提取发票里面的信息,如何从OpenERP获取发票中的销售订单字段值

    我在销售订单中创建了两个自定义字段,但这些字段未显示在发票表单中 . 我还在发票表单视图和列中添加并更新服务器,但此值未显示在发票中 . 如何在发票表单中显示这些值 . 这是我的视图文件: accou ...

  9. K3后台修改销售模块(销售订单、发货通知单、销售出库单、销售发票)业务员名称语句

    select fitemid,* from t_emp where fname='张三'--通过姓名查找业务员内码 ------如下语句为更改销售发票数据----------------------- ...

最新文章

  1. Hadoop集群的基本操作(二:HBase的基本操作)
  2. javascript——事件默认行为
  3. linux 父子进程结束,Linux下让父进程结束后,子进程自动结束
  4. sublime 插件安装;sublime的 babel、sublime-jsfmt插件
  5. [ubuntu]deb软件源
  6. python 线程(一)理论部分
  7. 父亲浮动,子代也会跟着走
  8. AI圣经《深度学习》作者斩获2018年图灵奖,100 万奖励!
  9. ceph12.0.1的源码编译安装
  10. silverlight中datagrid数据到处excel
  11. delphi glsence 教程
  12. 专业pdf转word转换软件 pdf转换器 pdf转txt pdf转ppt、excel
  13. 电脑模拟收银机_机场收银模拟器下载
  14. 计算机专业课科目,考研计算机专业课科目有哪些
  15. 解决“Windows 平台 FIPS 验证的加密算法的一部分”问题
  16. Storm Control 风暴控制
  17. 为什么录像都是用.avi而不是.mp4?
  18. HDU - 4747 Mex(线段树)
  19. 机械手编程用c语言,51单片机机械手控制C程序.doc
  20. GDB内存断点(Memory break)的使用举例

热门文章

  1. Java小游戏:控制台版“恶龙咆哮“
  2. mingw 构建 mysql-connector-c-6.1.9记录
  3. python selenium 处理弹窗_Selenium自动化发布话题,以及获取window.showModalDialog()弹窗对象(Python实现)...
  4. 虚拟现实的起源、发展、爆发与沉淀
  5. linux 起网口up_查看Linux下网卡连接状态(up还是down)?
  6. t4 tesla 驱动程序_KVM直通Tesla T4 GPU安装windows虚拟机出现PCIE报错指向GPU
  7. Python数据分析技术入门
  8. MATLAB利用QQ图检验总体是否服从多维正态分布
  9. xen创建硬盘ISO库下载并导入WinXP简版
  10. 小散量化炒股记|股价如波浪起伏,教你用量化识别波段的极值点