今天遇到一个这样的问题,在根据销售订单创建交货单的时候,需求要求讲各个日期都统一写成指定日期,这个日期一般都是过去的日期,而非当天。

目标效果如下图:

虽然凭证日期是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交货单的各个日期:计划、拣货、运输、过账相关推荐

  1. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作试读版

    正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类.因此本教程也分为 ...

  2. sap abap 编辑器-修改助手

    在修改 sap 标准程序时,编辑器默认是要用修改操作才能修改的,也就是要点击下面选中的几个铵钮,才能添加一个可修改的文字块,除了这个文字块其它按钮是不可修改的.我想这要做的原因主要是为了以后的升级做准 ...

  3. 【ABAP系列】SAP 面试 ABAPer的一些感想

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 面试 ABAPer的一些 ...

  4. 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 取两个内表的交 ...

  5. SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  6. ABAP动态修改屏幕及屏幕字段结构SCREEN的字段含义

    一.屏幕字段结构SCREEN的字段含义 在SAP屏幕中,一个字段就像.NET中的一个控件,这个字段对应一个SCREEN结构,就像控件的多个属性. SE11可以查看SCREEN结构中的字段,只是没有备注 ...

  7. ABAP:利用SAP定时器自动刷新ALV

    ABAP:利用SAP定时器自动刷新ALV 曾于无意之中发现,SAP系统中有个名为CL_GUI_TIMER的类,测试下来发现还是挺好用的,比网上那些自动刷新的例子直观多了.这里我们就做个演示实例. 先做 ...

  8. 【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-任意rep ...

  9. 【ABAP系列】SAP ABAP 宏的简单使用

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 宏的简单使用 ...

最新文章

  1. 浙江大学软件学院2020年保研上机模拟练习 7-3 Partial School Ranking
  2. 谷歌再一次打脸:纯注意力并没那么有用,Transformer组件很重要
  3. 简单数据分布分析及python实现
  4. c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九.docx
  5. 转 .NET 2.0 SqlDependency快速上手指南
  6. leetcode80. 删除排序数组中的重复项 II
  7. 项目管理中网络图的看法和相关参数阅读说明
  8. eclipse启动时return code 13
  9. python颜色代码表_[matplotlib] 颜色设置及Matplotlib颜色对照表
  10. java 主类 测试类_Java中的测试类和主类分别是什么,有点晕啊。?
  11. 终于找到可转载的摄影基础知识贴了
  12. 在龙芯3A3000中标麒麟7.0环境下编译golang1.14.1源码
  13. 国债(长短期)、财政赤字、利率、美元指数、国债收益率关系
  14. vb.net word 自定义工具栏_20个Word文字处理快速掌握技巧
  15. 微信原版提示音_微信提示音阿豆下载-抖音微信提示音iosv2.1.3_5577安卓网
  16. NodeBB论坛搭建
  17. spring-boot-devtools 快速重启的秘密!
  18. OpenJudge NOI 2.1 7621:硬币面值组合
  19. Flowable 6.6.0 BPMN用户指南 -10 流程实例迁移 - 10.1 简单示例
  20. Java将16进制字符串,转换成字符串

热门文章

  1. 将mp3音频剪切器收藏起来使用
  2. qt Windows 任务栏右键退出时子进程不退出
  3. jsp+ssm计算机毕业设计铁路法院数字档案管理系统【附源码】
  4. unity入门——实现一个简单的跑酷游戏(人物控制)
  5. 杭电oj —— 2031
  6. 微软正版Win7体验店开业
  7. 在线代码编译运行工具
  8. 拥抱ChatGPT,开启结对咨询模式!
  9. **砾石充填完井多层油藏井底压力评价**
  10. 有金币系统的优质生存服务器,魔兽世界怀旧服:再见时光徽章,金币消耗成问题,60服务器该咋办...