SAP MM模块:如何查找PO采购订单配置的打印form

在诸多SAP Global Rollout项目实施过程中,我们有一个Fit&Gap的分析阶段,各个模块都需要在熟悉了global template之后,根据对应业务部门的需求调研的结果,基本可以确定所在模块的GAP,也就是本地化的东西。这些GAP是global template所不具备的,需要我们在Rollout实施过程中进行本地化建设。

SAP MM模块:如何查找PO采购订单配置的打印form 图1

SAP模块有一个很常见的本地化就是PO form的开发与实现。一般而言,global 项目中,有一个固定的支持多种语言的PO 打印表单。但是这个PO form在中国的工厂实施的时候,不仅仅面临着翻译的问题,更多的是格式之调整,甚至是新Form之设计。

很多跨国企业的中国分支机构/工厂等,其采购订单是中英文双语的。在表单上,用中英文双语显示诸多与采购订单有关的内容,比如供应商的名称,地址,联系人;购买方的名称和地址,联系人等信息,还有一些法律性的条款。 这些中国特定的需求,global template肯定不支持。所以在实施SAP的过程中,结合业务部门的实际需求,开发一个支持双语,切合现行业务要求的采购订单表单,是在所难免的。

当然,这种开发,也是要基于global template的基础的,在global template格式上稍作调整,大致格式不变,增加或者减少若干信息;同时以中英文形式显示相应信息。这样,一方面,尽量往global template方向靠拢,而不是完全重新设计格式,保证项目实施后整个系统PO form 的整体一致性;另一方面,减少本地化开发的工作量,降低项目实施的成本。

如何查找PO采购订单配置的打印form

1.前台 T-CODE ,NACE 找到PO配置的output type

SAP MM模块:如何查找PO采购订单配置的打印form 图1

2.找到output type对应的processing routines

SAP MM模块:如何查找PO采购订单配置的打印form 图2

3.Print output 对应的form就是打印form

SAP MM模块:如何查找PO采购订单配置的打印form 图3

PO打印

通常企业打印PO有两种方式,一是套打(由印刷厂商印制好一式多联的格式以备打印的PO送给相关部门,比如采购部,供应商,财务部,仓库等保存),另一种就是直接打印在A4纸上.不管哪种方式,可直接写一个外挂程序或使用SAP配置来打印,谁优谁劣无可非议只要能正确将东西打印出来就行.

在打印报表的问题上我个人很喜欢Crystal report因为能很容易定义所需要的各种复杂格式,遗憾的是SAP系统似乎要装插件才支持Crystal report.

使用外挂程序或配置,就要使用到所谓的Form(SAPscript)或Smartform,当然另外一种方法就是使用OLE to Excel,在Excel定义好格式然后填充数据.

好了,下面就PO打印配置谈谈如何设置PO打印.

PO打印设置难吗?显然是非常容易的,从某种意义上讲,你不做任何配置实际SAP已经提供了default的output NEU打印PO了.

让我们看看图1.(Tcode:ME21N|ME22N)

SAP MM模块:如何查找PO采购订单配置的打印form 图4

[1]首先必须让此PO输出一个所谓的Message,在此此message是print output.

[2]打印预览

按Messages进入图2.

SAP MM模块:如何查找PO采购订单配置的打印form 图5

[1]按Communication method进入图3.

[2]Processing log你能看到调用的程序名称如是打印能看到产生的Spool no.号(有一种case是系统hang up了上万个打印请求结果造成Spool buffer溢出,所以basis有必要定期去清理下)SAP默认是使用程序SAPFM06P的子程序ENTRY_NEU处理打印message的,这在配置中可做适当更改如果有需要的话,毕竟SAP是程序堆起来的改改是很正常的.

[3]进去后Requested processing栏位的Dispatch time选 4 Send immediately就表示立即发送消息.

[4]通常如需要重新打印,可选择一已经存在的Output 后再按它copy一个.当然也可使用ME9F重打.

[5]NEU是打印PO,SAP default的,接下来会告诉如何自定义output type. 为什么需要自定义output type?是在一个大集团公司,可能存在有各种PO的打印格式并且可能需要各种不同的语言版本.

[6]在此选1 print output,你也可看到Message实际上可发送到printer, Fax,Mail, EDI和触发PO的workflow事件等,举个简单的例子,供应商要求建立PO后立即自动将PO数据EDI到他们的系统就可配置EDI Message ,关于EDI有专门解剖的一刀.

[7]Partner,SAP经常有sold-to,ship-to,billing-to伙伴,VN是vendor.

[8]这个语言在一些跨国集团可能用的上,假设公司间的transfer order格式相同,但是希望法国公司打印的是法文,德国打印的是德文,中国是中文,美国是英文,要么你为每种语言版本定义一个output type要么就在程序中判断这个语言字段,而后者可能更好些,因为你只要使用SO10定义标准文本就行.

让我们切换到图3.

[1]Tcode:SAPD可设置打印机

[2]立即打印出来

[3]你还可使用别的Form(通常不能在此使用smartform,除非你大肆修改后台配置)

SAP MM模块:如何查找PO采购订单配置的打印form 图6

大家可能对PO打印已有了初步了解,是的,不管是套打还是打印在A4上,都是可通过PO的message来完成的.

(1)PO header及其Item文本设置 IMG Path:Materials Management->Purchasing->Purchase Order 如图

SAP MM模块:如何查找PO采购订单配置的打印form 图7

[1]定义Header text type.

SAP MM模块:如何查找PO采购订单配置的打印form 图8

如上图,如企业需要可以增加自己的header text type,这些 text type在建立PO时可看到如图5.

[2]我们看看SAP default的header text type 06.如下图. 1表示取文本的顺序. 2表示文本能否被Fix(修理修改),空和*表示能修改,空表示修改Source object不会影响到PO text,*表示修改文本立即自动反映到PO text, N表示文本从source object自动取得不能修改.在下面将进一不描述.

SAP MM模块:如何查找PO采购订单配置的打印form 图9

[3]定义item text type.

[4]如下图,是text type 03的设置,1表示取数据顺序,Seq.为0似乎是表示不用它,特别要强调以下这个No.加前坠将会成为文本ID标识. 2.表示数据源,从图中我们能看到PO的Materiap PO text文本取数据先从物料主数据的basic data text中读取(在basic data 1视图进去维护),然后是读取Purchase order text(物料主数据专门有一个View)的数据,就是说你建立PO line text 03将自动从物料主数据将这些东西抓过来3.表示文本能否被更改.

SAP MM模块:如何查找PO采购订单配置的打印form 图10

当定义好Header 和line Text type后,在建立PO时我们就能在这些文本中填写数据.如图5,可能企业需要在PO中加入各种类型文本,并且这些文本可能被随时更改,这种情况下我想使用固定程序恐怕相当麻烦.

就需要使用相关配置,然后在程序中调用这些文本.

SAP MM模块:如何查找PO采购订单配置的打印form 图11

1根据欧美的相关合同法,PO上通常需要打印T&C(Terms*Condition),以便万一有经济纠纷时可参照当时打印出的文本条款,很明显,T&C是针对不同的Vendor是经常被修改的.另外PO上的运输方式也可能经常变更,这种复杂的业务使用文本就可解决.

2 让我们更深入了解下PO文本的保存情况,在SAP中,大多数的文本比如PO,SO,Billing等各种相关文本都保存在STXH,STXL中,我们根据一定规则将它读出来,这些规则在稍后会继续细讲,回答那个Fix 标识.N表示从source object抓出来后你不能再做修改,因此从文本STXH,STXL表中By PO item是查不到数据的,*表示文本抓出来你还能修改,当自动抓取数你去做更改后才会保存早STXH,STXL中, By PO item可以读取,这样在编程序就必须注意首先根据PO item读数据如没读到再到物料主数据中去找. 详细请看SAP文本.

(2)PO Message配置

SAP MM模块:如何查找PO采购订单配置的打印form 图12

[1]应该不会这么快就忘记建立PO header/Line text type的Seq. no.加上F前坠就是Text ID ,这步通常是不用做的除非你使用SAP标准的,因为PO将使用

SAP MM模块:如何查找PO采购订单配置的打印form 图13

[2]分配Form和相关Output程序给PO,在第[3]步讨论,因为在定义PO output type时包括了这部分的配置.

[3]打开Output control发现配置和MM/SD的定价条件相似,是的,所谓的condition技术用在在Message output,MM/SD Pricing,FI Tax IMG等,而且他们共享了很多配置表,我想SAP是因为他们逻辑上相似所以将他们组织在一起. 通常的情况下是比如要设置PO一建立好就自动打印,否则就需要想第一步更改PO哪些重要字段后会自动重打PO,兼于篇幅,在此就不讨论了,这个问题留给读者自己去考虑,在这里只讨论如何Copy出新的output type .因为用户可能需求不同的打印格式.

一.新增Output type Message .

IMG Path:Output Control->Message Types->Define Message Types for Purchase Order.

SAP MM模块:如何查找PO采购订单配置的打印form 图14

如图6.

[1]Copy All data from NEU to ZUSA.

[2]Output type可用在Print, Fax,EDI等上.

[3]Output调用的程序,默认是SAPFM06P

[4]使用的子程序,默认是ENTRY_NEU

[5]打印调用的FORM

[6]在此我加了个Smartform,很明显默认是不会认Smartform的,除非你将第3步的SAPFM06P Copy出(比如是ZSAPFM06P)再将ENTRY_NEU修改,这要费点事情,还是使用Form吧

二.Define (定义)Message Schema for Purchase Order

IMG Path:Output Control->Message Determination Schemas

SAP MM模块:如何查找PO采购订单配置的打印form 图15

[1]选定procedure RMBEF1.

[2]将ZUSA加上.

[3]特别要强调一下,关于这个requirement在MM/SD的pricing配置中将会重点介绍,这个将对应到一个子程序比如你可设置子程序返回值为True打印否则不打印.

使用Tcode VOFM>菜单Requirements->output control|OMFT|V/27可自定义requirements,简单理解就是Control message,只有需求满足才输出消息.

三.建立条件记录MN04

OK,是否现在就可使用这个output type了呢?回答是不能的,我们想象SD pricing后台配好了你要还使用VK11呀,同样,你必须使用MN04为此output type建立一条件记录.

这些基础工作都搞定了,下面来吹下如何coding …Coding是TMD世界上最无聊的工作之一,Salary有低,,哎….

To be continued .

….改天继续将所有的打印给屠宰一遍.

(3)物料主数据文本

BADI也是enhancemnet的一种,可以在SE19中建立自定义的Implementation name激活系统自带的badis,系统的badis可以在SE18中看。这个东东很好玩哟,要不要我教你玩呀?

SE75可看到所有的相关文本.

物料主数据中有很多Text(文本),比如有两个视图Purchase order text和Sales text,在basic data1视图中单击Basic data text按钮或直接点击Additional data按钮能看见Basic data text和Inspection text两tab页,在此可写入一些相关信息,这些信息没别的,就是将来可用在打印PO或SO上而已(更详细请看MM相关单据打印).

如图3.2.3-1,在purchase order text中保存了9行数据,每行使用回车键分开.

SAP MM模块:如何查找PO采购订单配置的打印form 图16

当物料保存时,SE16检查STXH和STXL, 图3.2.3-2是STXL表的结果,注意画红圈的字段,数据以binary格式保存在STXL字段CLUSTR里.

1.其实STXL就是一个所谓的簇式数据库(一个有特定结构的透明表),详情请看第一篇的第12节簇数据库和逻辑数据库.

2.注意簇数据库和簇表的区别.簇数据库(ABAP层的概念)是透明表对应一个SAP系统用的数据库的一个物理表,

SAP MM模块:如何查找PO采购订单配置的打印form 图17

 REPORT  ZMATTXT  .
data: itab_head like thead ,
     itab_line like tline occurs 0 with header line .
CALL FUNCTION ‘READ_TEXT’
 EXPORTING
***ID: 1.BSET:Purchase Order Text(
物料视图)
***    2.GRUN:Basic Data Text(
additional data按钮进去)
***    3.PRUE:Inspection Text
***    4.0001:Sales Text
   ID                           = ‘BEST’
   LANGUAGE                     = SY-LANGU
***
1.2.3Name就是mat. no.
***4sales text
对应的nameMat. no+sales org.+dist.chann.
   NAME                         = ‘SL62ABPLS49H1535’
***1.2.3
MATERIAL,4MVKE.
   OBJECT                       = ‘MATERIAL’
IMPORTING
  HEADER                        = itab_head
 TABLES
   LINES                        = itab_line
EXCEPTIONS
  ID                            = 1
  LANGUAGE                      = 2
  NAME                          = 3
  NOT_FOUND                     = 4
  OBJECT                        = 5
  REFERENCE_CHECK               = 6
  WRONG_ACCESS_TO_ARCHIVE       = 7
  OTHERS                     

相关文章

联系我们

联系我们

130-0752-1773

在线咨询:点击这里给我发消息

邮件:info@sapzx.com

工作时间:周一至周五9:00-18:00,节假日正常休息

关注微信
关注微信
分享本页
返回顶部