ABAP如何修改SAP交货单的各个日期:计划、拣货、运输、过账
今天遇到一个这样的问题,在根据销售订单创建交货单的时候,需求要求讲各个日期都统一写成指定日期,这个日期一般都是过去的日期,而非当天。
目标效果如下图:
虽然凭证日期是9.1日,但拣配、运输、过账日期都是8.25.
拿到需求第一反应是:还能这么玩么?
其他计划日期应该都可以指定,但如拣配、交货这种跟业务执行相关的日期是应该跟随实际动作日期而确定的,不应该是根据动作发生自动更新日期的么?
但实际发现VL01N里创建时,确实可以自由指定日期。
找了一圈,最终分两步把这事搞定了:
1. 创建交货单,用的BAPI_DELIVERYPROCESSING_EXEC此时也有相关的几个日期参数,但填了貌似也没啥用,系统依然默认当前日期。
关键字段如下:
tbl_request-delivery_date = p_budat.
tbl_request-transp_plan_date = p_budat.
tbl_request-goods_issue_date = p_budat.
tbl_request-delivery_date = p_budat.
tbl_request-loading_date = p_budat.
tbl_request-date = p_budat.
2. 调用BAPI_OUTB_DELIVERY_CONFIRM_DEC修改交货单,同时修改日期参数,关键code如下:
lv_timestamp_utc = |{ p_budat }{ sy-uzeit }|.
lv_delivery = <fs_alv>-sodn_vbeln.
ls_head-deliv_numb = <fs_alv>-sodn_vbeln.
ls_headc-deliv_numb = <fs_alv>-sodn_vbeln.
ls_headc-post_gi_flg = 'X'.
lt_deadlines = VALUE #( deliv_numb = <fs_alv>-sodn_vbeln ( timetype = 'WSHDRLFDAT' timestamp_utc = lv_timestamp_utc )
( timetype = 'WSHDRWADAT' timestamp_utc = lv_timestamp_utc )
( timetype = 'WSHDRWADTI' timestamp_utc = lv_timestamp_utc )
( timetype = 'WSHDRLDDAT' timestamp_utc = lv_timestamp_utc )
( timetype = 'WSHDRTDDAT' timestamp_utc = lv_timestamp_utc )
( timetype = 'WSHDRKODAT' timestamp_utc = lv_timestamp_utc )
).
CALL FUNCTION 'SERIAL_INTTAB_REFRESH'.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'
EXPORTING
header_data = ls_head
header_control = ls_headc
delivery = lv_delivery
TABLES
header_deadlines = lt_deadlines
return = lt_return.
关于header_deadlines参数的说明,可以在FM中查看文档:
In this table, the header dates are passed on in time stamp format (YYYYMMDDHHMMSS. In field BAPIDLVDEADLN-TIMETYPE the individual date fields are qualified as follows:
- WSHDRLFDAT Delivery date
- WSHDRWADAT Goods issue date (planned)
- WSHDRWADTI Goods issue date (actual)
- WSHDRLDDAT Loading date
- WSHDRTDDAT Transportation planning date
- WSHDRKODAT Picking date
最后看了下过账后的凭证,发现过账日期自动就会是修改后的日期,凭证日期始默认是当前日期。账务上依然统一,SAP果然强大依旧!
ABAP如何修改SAP交货单的各个日期:计划、拣货、运输、过账相关推荐
- 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类.因此本教程也分为 ...
- sap abap 编辑器-修改助手
在修改 sap 标准程序时,编辑器默认是要用修改操作才能修改的,也就是要点击下面选中的几个铵钮,才能添加一个可修改的文字块,除了这个文字块其它按钮是不可修改的.我想这要做的原因主要是为了以后的升级做准 ...
- 【ABAP系列】SAP 面试 ABAPer的一些感想
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 面试 ABAPer的一些 ...
- 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 取两个内表的交 ...
- SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- ABAP动态修改屏幕及屏幕字段结构SCREEN的字段含义
一.屏幕字段结构SCREEN的字段含义 在SAP屏幕中,一个字段就像.NET中的一个控件,这个字段对应一个SCREEN结构,就像控件的多个属性. SE11可以查看SCREEN结构中的字段,只是没有备注 ...
- ABAP:利用SAP定时器自动刷新ALV
ABAP:利用SAP定时器自动刷新ALV 曾于无意之中发现,SAP系统中有个名为CL_GUI_TIMER的类,测试下来发现还是挺好用的,比网上那些自动刷新的例子直观多了.这里我们就做个演示实例. 先做 ...
- 【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-任意rep ...
- 【ABAP系列】SAP ABAP 宏的简单使用
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 宏的简单使用 ...
最新文章
- 浙江大学软件学院2020年保研上机模拟练习 7-3 Partial School Ranking
- 谷歌再一次打脸:纯注意力并没那么有用,Transformer组件很重要
- 简单数据分布分析及python实现
- c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九.docx
- 转 .NET 2.0 SqlDependency快速上手指南
- leetcode80. 删除排序数组中的重复项 II
- 项目管理中网络图的看法和相关参数阅读说明
- eclipse启动时return code 13
- python颜色代码表_[matplotlib] 颜色设置及Matplotlib颜色对照表
- java 主类 测试类_Java中的测试类和主类分别是什么,有点晕啊。?
- 终于找到可转载的摄影基础知识贴了
- 在龙芯3A3000中标麒麟7.0环境下编译golang1.14.1源码
- 国债(长短期)、财政赤字、利率、美元指数、国债收益率关系
- vb.net word 自定义工具栏_20个Word文字处理快速掌握技巧
- 微信原版提示音_微信提示音阿豆下载-抖音微信提示音iosv2.1.3_5577安卓网
- NodeBB论坛搭建
- spring-boot-devtools 快速重启的秘密!
- OpenJudge NOI 2.1 7621:硬币面值组合
- Flowable 6.6.0 BPMN用户指南 -10	流程实例迁移 - 10.1	简单示例
- Java将16进制字符串,转换成字符串