Preface

由于之间工作的转变,从原来相对纯粹单一的SAP本地化薪酬方案的实施与维护,变成了现在企业内部新增的业务需求在SAP系统上的配置与再开发。这个转变确实有了很大的变化,也伴随着相当大的挑战。不过既然是兴趣使然,对于这些新的未知的领域都会抱着一颗学习的心去那摸爬滚打一番,即便可能那样事物是个很入门的级别,我也觉得值得我去一步一步积累。

好吧,引入正题,因为前一阵子都在搞企业的一些采购订单表样调整的工作所以也就顺带写了那一篇关于Adobe Form的文章(上一篇),不过这次我一直在好奇这个采购订单到底是如何通过后台配置与SAP标准的采购订单创建/修改时绑定的(ME21N,ME22N)。毕竟每个企业自己用的采购订单表肯定是各自有个各自的格式,所以这个配置肯定是非常通用的(可能网上已经有了,我还是硬着头皮自己摸索了一遍)。

Introduction to Purchase Order Output

通常在SAP上下完一笔采购订单,相应的业务人员肯定也得把这个采购订单从系统上把自己下的订单给打印出来给供应商,财务部的AP人员等等。总之,这份凭证必然是需要一个纸质证明的,而且这份凭证的格式肯定也是根据企业的特定要求来设计的,例如所需的公司logo啊,供应商的地址,买方公司地址等等。在有了这个格式的表单之后,就可以通过系统的后台配置把这个格式的表单与前台的订单创建的过程进行绑定了。最终在一个订单的信息被完整创建好之后,我们就可以通过打印预览看到这个在系统上被创建出来的采购订单了。

Step to Customize Purchase Order Ouput

  1. 第一步就是要创建这么一个具有特定格式的表样,我们可以通过SFP去创建一个对应的Adobe Form,当然也可以用SAP Smart Form甚至用SAP Script去画这个Form。总之在SAP里创建Form的技术很多,只是眼下比较流行的还是Adobe Form,另外的两个已经快要渐渐地被淘汰在历史的长河里了。所以这里步主要介绍的就是通过Adobe Form去设计出一张对应的采购订单样表,因此对应的格式啊所需的内容啊基本就在这里定好了。那么这个Adobe Form是如何创建的呢?具体可看上一篇内容(继续广告),只不过这里的Interface需要更多的Import Parameter,同时也要声明一些本地自身所需的Global Data跟Types。毕竟采购订单上的相关信息肯定还是很多的,尤其是地址与各种文本信息,需要设计开发人员事前根据需求好好整理一遍。在定好了所有输入字段与相关类型之后,这里就需要在Interface内部写一点数据获取的逻辑来把对应的信息显示在表单对应的位置上。这里就跟上一篇的通过写Report来填充表单内容的方法就有区别了,因为采购订单不是通过某个具体报表去获取信息内容的,而是在生成的过程中通过自身的Interface中的逻辑,预先把内容就获取到了。具体可以参考下图的预览:
  2. 让开发完成了上述的Form创建之后(这种搬砖的活就外包给外面的开发去画吧,好吧,现在就是有问题让我来改,果然还是底层搬砖工啊),接下来就通过后台配置去把这个新的Adobe Form与前台的Purchase Order创建进行绑定了。其实所需的配置都集中在一个地方,直接T-code:SM34 -> VVC_T685B_EF 找到这个View Cluster进行配置,IMG入口是在: IMG -> Materials Management -> Purchasing -> Messages -> Output Control -> Message Types -> Define Message Types for Purchase Order (真是好深的路径啊!我觉得一般第一次倒腾这个人必然是很难发现的)。进入到这个View Cluster,我们就可以进行相应的配置了,具体界面如下:
  3. 那么第一就要创建自己所需的Output Types, 当然也可以用原先的,只是建议创建一个新的以Z开头的类型,可便于以后的维护与开发。这里的分类就主要为了区分一个大公司下的不同区域可能有不同采购订单的格式,比如某跨国企业,在中国的采购订单肯定是中文形式的Form,在英国的采购订单就是英文的Form了,而且格式上也可能会有相应的不同。创建好了新的Output  Type,双击进入具体的配置菜单(这里创建了一个ZNEW的新类型):
  4. 在这个配置菜单里,其实对于General Data我还真不太清楚具体有什么用途,只能按下F1看看每个字段的描述了(课后作业吧,我也会再去看看)。然后在左上角双击Process Routines,这里就可以绑定我们在第一步创建的Adobe Form。通过New Entries可以创建对应的输出方式的配置,既然我们这里要做的是打印预览,那么就直接创建一个 'Print Output' 的 Medium类型,别问我为什么(因为我也不太清楚,只知道SAP提供了一个专门负责显示Adobe Form的子程序),直接在Processing1的Sub-windows里填上对应的内容, Program:SAPFM06P  Form Routine: ADOBE_ENTRY_NEU, 接着隔一行在PDF/Smart Form里面填上刚才在第一步里创建的Adobe Form的名字, 类似: ZXXX_FRM, 既然是Adobe Form那么对应的Type就是PDF了。创建好的记录保存好以后应该就如下图:
  5. 最后一步就是在对应的创建采购订单的Transcation里(ME21N)对Output的类型进行对应的设置,具体就是点击Goto->Messages,在里面填上刚才创建的Output Type以及对应的Vendor号码,好了之后可以通过Print Preview来预览相应的采购订单了。如果预览发现没啥问题,那么就可以庆贺一下,这个采购订单的自定义创建于绑定就算完成了。Message里的设置信息:

Summary

总结一下就是初期先搞一个Form的开发,然后开发完了之后做一个配置工作。我觉得这应该是采购订单配置中很通用的一步,入门级别的。所以我也就是记录一下自己看看,也算是自己对MM这块的一个初期积累吧。

谢谢阅读

nw



SAP-MM:物料采购订单的客制化开发与对应打印/预览的配置相关推荐

  1. SAP MM 对采购订单执行收货,报错 - Table T169P entry ZNMI does not exist -

    SAP MM 对采购订单执行收货,报错 - Table T169P entry ZNMI does not exist - 如下的采购订单 4500000754, 执行事务代码MIGO, 对于做101 ...

  2. SAP MM 按采购订单查询付款信息的报表?

    SAP MM 按采购订单查询付款信息的报表? 上午给P3项目采购部门用户做了一个采购相关的报表的培训.培训过程中,客户的采购部门经理提出了一个问题:有没有报表能查询到各个采购订单的付款情况,显示采购订 ...

  3. SAP MM 根据采购订单反查采购申请?

    SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...

  4. Oracle EBS Interface/API(28) - 客制化开发AP付款API

    背景 在某项目中,需要把其他系统的AP发票和付款同步至Oracle EBS系统.但是,Oracle官方并没有提供标准AP付款API,需要自行客制化开发AP付款API, 其中,它主要用应场景: 与资金管 ...

  5. Camstar客制化开发做查询操作(Designer中存放SQL语句)

    Camstar客制化开发做查询操作,对于Sql语句的保存地方有三种(Designer中保存在Query.Portal中保存在UserQuery.直接写在代码中) 其中Portal中UserQuery容 ...

  6. SAP ABAP ME2L/ME2N/ME28添加客制化字段 BADI ME_CHANGE_OUTTAB_CUS

    原文链接:https://blog.csdn.net/u014535256/article/details/117220003 BADI:me_change_outtab_cus 结构:MEREP_O ...

  7. SAP MM 固定资产采购订单

    1 A类 ,有物料也可以无物料号,直接输入文本,没有物料要输入物料组 2 正常的 借库存贷应付 或 借库存贷GRIR暂估 借GRIR贷应付 固定资产 借固定资产 贷应付 3 资产 AS01 创建资产号 ...

  8. SAP MM 根据采购订单反查采购申请

    如何通过采购订单号查询到其前端的采购申请号. 首先从采购申请的相关报表着手,比如ME5A, 发现它是可以满足需求的. 例如:如下的采购订单,  该订单是由采购申请10003364转过来的. 如果想通过 ...

  9. SAP前台操作时,如何客制化表格的宽度和位置

    查看采购订单,事务码ME23N 点击表格按钮后,点击[管理员]如下所示

最新文章

  1. 【ORACLE】oracl基本操作笔记
  2. 【Python】使用 eval 实现反射
  3. 八、IO优化(3)稀疏列
  4. POJ 1050 To the Max (最大子矩阵和)
  5. php 126 发邮件,解析php中用PHPMailer来发送邮件的示例(126.com的例子)
  6. 《计算机网络思想》系列(1)网络体系结构———理解,总结,辨析,升华
  7. http get和post的区别
  8. 【招聘】浙江大学杨杰课题组-博士后招聘-医学人工智能
  9. Web分页打印 细线表格+分页打印之终极攻略(转载)
  10. dijit.layout.ContentPane--dojo学习
  11. 拓端tecdat|基于R统计软件的三次样条和光滑样条模型数据拟合及预测
  12. VS+Qt报错无法解析的外部符号
  13. linux操作系统实验目的,Linux操作系统实验报告.doc
  14. java linux 时间戳转时间_Java时间和时间戳的相互转换
  15. 斐讯K2刷不死breed与第三方固件教程
  16. 同城货运主导全新商流体系:智慧物流成胜负关键?
  17. 基于ARM的RealView MDK开发环境
  18. 为什么招聘单位都要求你有ITIL证书,你知道吗?
  19. 苹果电脑怎么用移动硬盘ntfs?快速读取和编辑Mac外置移动硬盘
  20. 罗德里格斯公式证明(Games101)

热门文章

  1. LeetCode 695. 岛屿的最大面积【c++/java详细题解】
  2. Python的egg包
  3. P4097 [HEOI2013]Segment 李超线段树
  4. Vue.js + axios 实现excel下载
  5. Jmockit对类静态方法mock
  6. 五款PPT的素材黑科技
  7. linux命令之----fdisk命令-磁盘分区管理工具
  8. HTTP Cache
  9. STM32精英,战舰版 蜂鸣器播放菊次郎的夏天
  10. 我眼中的CTO:提升IT管理的价值