您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > SAP ERP资料:行业别架构说明
SAP培训:一、GP5.0的程序架构,以订单为例:Axmt410=saxmt400.4gl+saxmt400_sub.4gl+saxmt400.global+axmt410.persaxmt400.4gl大多数的程序代码都放这里(确认段和采购发出除外的程序代码)saxmt400_sub.4gl只放确认段和采购发出的相关FUN(独立出来成为subroutine的原因是要可以让其它的程序也可以呼叫,日后只要saxmt400.4gl有函数是必须让其它程序呼叫共享的,一律拆出放此4gl)saxmt400.global放saxmt400.4gl所需要的全域变量(因为axmt410.4gl和saxmt400.4gl都必需用到,所以独立成一个档案,让多支程序可以呼叫使用,注意一下,请勿在saxmt400.4gl上宣告任何模块变量,需使用模块变量的话,请一律定义成全域变量在saxmt400.global上,原因以下会说明)二、GP5.0的行业别:(1)行业别的环境设定:SAP培训:有三个行业别(g_sma.sma124):00一般行业(std)01IC设计(icd)02服饰业(slk)只要在asms290,设定目前系统所要用的行业别后,再执行业别程序,便会执行所选择的行业别的程序,以订单为例:当系统设定为00一般行业(std)时,执行axmt410(exe2axmt410)的结果:SAP培训:培训:设计(icd)时,执行axmt410(exe2axmt410)的结果:SAP培训:服饰业(slk)时,执行axmt410(exe2axmt410)的结果:SAP培训:由以上的图可以看出,当系统设定为不同行业别时,订单显示的字段都不一样,但是PER檔和4GL檔只有一支,而在4GL文件上并没有用程序去控制那些字段的显示或隐藏;我们是透过p_per这支程序,来做各行业别的字段的显示或隐藏和字段的位置执行p_per,查询条件给axmt410,可以发现,p_per中有三个行业别的axmt410的资料这三笔p_per的数据,记录了各业别的axmt410的UI显示,所以当执行axmt410时,在显示画面时,便会来参照这里的设定,以下是p_per的简介:SAP培训:的数据后,可以发现r.l2axmt410会产生三个42r檔当环境设定为00一般行业时,exe2axmt410时会去linkaxmt410.42r,实际上执行axm_axmt410.42m当环境设定为01IC设计时,exe2axmt410时会去linkaxmt410_icd.42r,实际上执行axm_axmt410_icd.42m当环境设定为02服饰业时,exe2axmt410时会去linkaxmt410_slk.42r,实际上执行axm_axmt410_slk.42mSAP培训:呢?刚刚在p_per设定里面,有提到可以设定字段的输入后检查,因为单一字段,有可能在每个行业做不同的用途,所以检查的程序也会不一样,各行业的程序都透过p_per设定,而不是以4GL设定,如下图:SAP培训:以上的程序,当r.l2axmt410时,会包在axm_axmt410_icd.42m理面,所以当环境设定是01IC设计业时,r.d2+axmt410变会将那段程序包进来axmt410,下图是r.d2+axmt410的结果:SAP培训:已经事先将行业别字段的检查写好了,照下图的写法,AFTERFIELD会参照p_per的设定,其它非行业别的字段,则不会参照p_per(要参照p_per的话,要改成行业别字段的写法)SAP培训:注意一点,因为p_per会将AFTERFIELD的程序在axmt410.4gl包成一个cl_validate_fun01(),但是我们是在saxmt400.4gl来呼叫使用它,且从刚刚p_per的检查程序中,可以发现有使用原本是定义在saxmt400.4gl的模块变量,例如:g_oeb_t.oebida001和g_oeb[l_ac].oebida001,所以不得不将原本的模块变量,改放在saxmt400.global成为全域变量(因为两支程序都要用),然后在axmt410.4gl和saxmt400.4glinclude进来,这样程序编译才不会有问题,如图:Axmt410.4gl:SAP培训:培训:以上的作法(全域变数放在.global),只要是S开头的程序(ex:saxmt600.4gl,sapmt540.4gl…),都要做这样的处理,如果将某变量定义成模块变量在saxmt400.4gl上的话,则此变量便无法在p_per上使用,所以,请以后全部都宣告为全域变量在saxmt400.global上(后续开发其它行业别的程序可能会用到那些变量)刚刚在p_per有提到,可以动态设定字段查询和输入时的顺序,要达到这功能,程序必须先做调整,在OPTIONS中加入FIELDORDERFORM,如此一来,4gl上construct或input单头的顺序会失效,就只听从p_per设定的顺序:如果OPTIONS中没加FIELDORDERFORM,则会和以前一样,Construct和Input的顺序就是4GL写的顺序,p_per怎设都没用SAP培训:所以,有套用行业别架构的程序,都已预先埋好了字段开窗和字段检查和字段输入顺序的程序代码,只要在p_per去勾选为”显示”在调整字段位置便可以使用,然后再设定开窗所需的p_qry和字段检查的程序,所以都不需要动到现有的PER檔和4GL檔,而每个行业别单头单身各加了60个字段,以供未来使用:industry行业别字段个数,型态预设ida001,..,ida020varchar(255)#文字id后一码=a20(个)idb001,..,idb010date#日期id后一码=b10(个)idc001,..,idc010number(15,3)#数量id后一码=c10(个)idd001,..,idd005number(20,6)#金额,单价id后一码=d5(个)ide001,..,ide005number(10,0)#整数id后一码=e5(个)idf001,..,idf005number(16,8)#单位用量,换算率id后一码=f5(个)idg001,..,idg005number(20,10)#汇率id后一码=g5(个)P_per动态使开窗和字段检查,只会针对行业别程序的字段,旧有的字段,开窗和字段检查,都还是写在4GL上SAP培训:设定字段开窗,如下图,将oebida001此字段开窗设为q_ima01_icd,目前开窗只支持回传一个变量,此外透过这里的设定,也可以将字段设定为Checkbox或Combobox(包含设定Item)SAP培训:必须先埋设程序代码,来参照p_per的设定,如下,此为查询时的开窗;若没有像行业别字段这么写的话,是不会参照p_per的设定的,非行业别字段即使p_per有设定,但4GL没作相对应的程序处理也没作用SAP培训:(2)行业别的程序的清单:3.AXM(销售)系统主檔:axmi250客户申请维护作业axmi221客户基本数据维护作业axmi121产品主文件维护作业(料件基本数据-销售)交易:axmt310估价单数据维护作业axmt360报价单数据维护作业axmt400客户合约维护作业axmt410一般订单维护作业axmt810多角贸易订单维护作业axmt800订单变更单维护作业axmt610出货通知单维护作业axmt850多角贸易出货通知单维护作业axmt620出货单维护作业axmt820多角贸易出货单维护作业axmt821代买多角贸易出货单维护作业axmt650无订单出货单维护作业axmt630包装单维护作业axmt500INVOICE维护作业axmt700销退单维护作业axmt840多角贸易销退维护(多营运中心)axmt710客诉单数据记录维护作业4.AIM(料件)系统主檔:aimi110料件分群基本数据维护作业-基本/库存SAP培训:(库存)系统交易:aimt301仓库杂项发料作业aimt311WIP杂项发料作业aimt302仓库杂项收料作业aimt312WIP杂项收料作业aimt303库存杂项报废作业aimt313WIP杂项报废作业aimt324仓库间直接调拨作业(多行)6.APM(采购)系统主檔:apmi610供货商申请作业apmi600供应厂商基本数据维护作业交易:apmt420请购单维护作业apmt540采购单维护作业apmt570已发出采购单维护作业apmt590委外采购单维护作业apmt910采购变更单维护作业apmt110采购收货作业apmt200委外收货作业apmt300多角贸易采购收货作业apmt721采购验退异动维护作业SAP培训:(生产)系统主檔:abmi109测试料件-数据维护作业abmi100工程BOM仿真维护作业abmi600产品结构数据维护作业交易:asfi301工单维护作业asfi511工单成套发料单维护作业asfi512工单超领发料单维护作业asfi513工单欠料补料单维护作业asfi514工单领料维护作业asfi526工单成套退料单维护作业asfi527工单超领退料单维护作业asfi528工单一般退料单维护作业asfi529工单领退料维护作业asri210发料单维护作业asri220退料单维护作业asri230领料单维护作业asft700生产日报维护作业asft300工单生产报工维护作业asrt300生产报工维护作业SAP培训:拆件式工单完工入库维护作业(3)行业别架构未来GP5.1版需做的变更:由上述所说的行业别架构,会存在一个问题,就是一个PER档会有一笔所属的p_per数据,以sapmt540为例,会使用到的per档有三个,apmt540.perapmt570.perapmt590.per,有三笔p_per会使后续的行业别维护复杂,所以会将三个per档合并,和现在的订单(axmt410)一样,saxmt400只使用一个per檔,如此祇要维护一笔p_per就好了,但一笔p_per的数据,必须提供给多程序使用,以订单为例:axmt410.per给axmt400axmt410axmt810使用,但p_per祇有axmt410有,也就是目前只有axmt410有行业别架构而以,未来另外
本文标题:SAP ERP资料:行业别架构说明
链接地址:https://www.777doc.com/doc-3409341 .html