一步一步跟我学函数出口增强开发图解教程.docx

上传人:b****6 文档编号:4761456 上传时间:2022-12-08 格式:DOCX 页数:10 大小:275.92KB
下载 相关 举报
一步一步跟我学函数出口增强开发图解教程.docx_第1页
第1页 / 共10页
一步一步跟我学函数出口增强开发图解教程.docx_第2页
第2页 / 共10页
一步一步跟我学函数出口增强开发图解教程.docx_第3页
第3页 / 共10页
一步一步跟我学函数出口增强开发图解教程.docx_第4页
第4页 / 共10页
一步一步跟我学函数出口增强开发图解教程.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

一步一步跟我学函数出口增强开发图解教程.docx

《一步一步跟我学函数出口增强开发图解教程.docx》由会员分享,可在线阅读,更多相关《一步一步跟我学函数出口增强开发图解教程.docx(10页珍藏版)》请在冰豆网上搜索。

一步一步跟我学函数出口增强开发图解教程.docx

一步一步跟我学函数出口增强开发图解教程

一步一步跟我学函数出口增强开发-图解教程

部门:

IT服务部作者:

肖剑锋

一、案例需求:

财务要求管控成品生产订单收货,成品生产订单收货入库数量不能大于成品生产订单报工确认数量,换句话说,报工多少数量,就只能收货入库多少数量。

二、增强背景:

从成本角度看现在成品生产报工与入库并无关联,成品仓只需根据车间开具的成品入库单就可录入系统并做发货操作,因此存在问题有三:

第一、如果车间未报工,成品入库后其生产成本无法自动计入;

第二、只能进行补报工,但成本也需人工手动投入,费时费工;

第三、是成品仓录入数据多与少无法比对(订单数量往往和生产实际数量不一致)。

若做关联,成品仓就会起到应有的复核把关监督的职能,弥补系统流程上的漏洞,减少生产报工和仓库录入的错误,促进和改善系统运行。

但就现实状况来讲对生产报工的压力增大,报工不及时或出错,会造成成品入库不及时,势必影响到订单出货。

三、增强开发的利弊分析:

利:

1.规范生产交货、仓储收货行为;

2.督促生产及时报工;

3.减少漏报工问题;

4.避免货已交客户,但生产尚未报工的现象出现;

5.减少对财务月结的影响;

弊:

在紧急情况下,销售等不及生产报工完成便要出货,那这一控制便是一个障碍,至于这个障碍时间有多长,则取决于生产报工的态度。

(针对一个生产订单的报工时间一般是几分钟便可完成,可忽略不计。

四、实现步聚:

Step1:

查找某个事务码的用户出口

1.录入事务码ZPPU018后,回车执行;

2.录入某个可能需要增强的事务码,比如生产收货事务码:

MIGO/MB31;点击执行按钮,或者直接按F8执行;

3.分析找到的函数出口名称;

Step2:

分析函数出口

1.录入事务码SMOD/CMOD,回车执行;

2.输入上面找到的函数出口名称,选取组件,并点击【显示】按钮进入下一个窗口界面;

3.双击某个出口功能模块,进入下一个窗口界面;

4.双击系统预留函数名称,并创建它;

Step3:

实现增强逻辑

1.根据实际业务需求编写自已的程序逻辑;

2.激活并测试,一定要记得激活,否则将无效。

 

五、附增强逻辑代码:

*&--------------------------------------------------------------*

*&  包括                ZXMBCU02

*&  auther:

 euler

*&  date:

 20130807

*&--------------------------------------------------------------*

data:

 lv_type type mseg-bwart,"移动类型

      lv_prefix1 type c,"生产订单编码前缀

      lv_prefix2 type c,"物料编码前缀

      lv_temp type makt-matnr,"临时变量,用于临时存储生产订单编码或者物料编码

      lv_quan type afko-igmng,"生产订单确认数量

      lv_sum1 type aufm-menge,"生产订单已入库数

      lv_sum2 type aufm-menge,"生产订单已入库数-冲销的

      lv_yxsl type aufm-menge,"可收货入库的有效数量

      lv_yxsl2 type string."可收货入库的有效数量,将负号前提

clear:

 lv_type, lv_prefix1, lv_prefix2, lv_temp, lv_quan, lv_sum1, lv_sum2, lv_yxsl, lv_yxsl2.

lv_type = I_MSEG-bwart.

clear lv_temp.

lv_temp = I_MSEG-aufnr.

shift lv_temp left deleting leading '0'.

lv_prefix1 = lv_temp+0

(1).

clear lv_temp.

lv_temp = I_MSEG-matnr.

shift lv_temp left deleting leading '0'.

lv_prefix2 = lv_temp+0

(1).

if lv_type = '101' and lv_prefix1 = '6' and lv_prefix2 = '6'.

  "取生产订单已确认数量

  select single igmng

    into (lv_quan)

    from afko

    where aufnr = I_MSEG-aufnr.

  "取生订订单已入库数量

  select sum( menge )

    into (lv_sum1)

    from aufm

    where bwart = '101' and matnr = I_MSEG-matnr and aufnr = I_MSEG-aufnr.

  "取生产订单已入库数量-冲销的

  select sum( menge )

    into (lv_sum2)

    from aufm

    where bwart = '102' and matnr = I_MSEG-matnr and aufnr = I_MSEG-aufnr.

  "可收货入库数量

  lv_yxsl = lv_quan - ( lv_sum1 - lv_sum2 ).

  lv_yxsl2 = lv_yxsl.

  if lv_yxsl < 0.

    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'

       CHANGING

       value = lv_yxsl2.

  endif.

  "收货入库数量不能大于可收货入库数量

  if I_MSEG-erfmg > lv_yxsl.

    MESSAGE ID '00' TYPE 'E' NUMBER '001' WITH '收货数量不能大于生产订单报工数量!

允许收货入库数量为:

' lv_yxsl2 I_MSEG-erfme.

    exit.

  endif.

endif.

 

六、附查找事务码用户出口程序源代码:

*****************************************************************

*  System      :

  丰彩ERP项目

*  Module      :

  PP AND QM

*  Program ID  :

  U005

*  Program     :

  查找事务码用户出口

*  Author      :

  肖剑锋

*  Date        :

  08.08.2013 16:

11:

57

*  Description :

  查找事务码用户出口

*****************************************************************

*  Modified Recorder :

*  Date         C#NO        Author                Content

*  -----------  -------    ------------------     ---------------

*  20130808

*****************************************************************

REPORT  ZFC_PP_U005.

TABLES :

 tstc, "SAP Transaction Codes(SAP 事务代码)

tadir, "Directory of Repository Objects(资源库对象的目录)

modsapt, "SAP Enhancements - Short Texts(SAP增强-短文件)

modact, "Modifications(修正)

trdir, "System table TRDIR(系统表 TRDIR)

tfdir, "Function Module(功能模块)

enlfdir, "Additional Attributes for Function Modules(功能模块的附加属性)

tstct. "Transaction Code Texts(事务代码文本)

DATA :

 jtab LIKE tadir OCCURS 0 WITH HEADER LINE.

DATA :

 field1(30).

DATA :

 v_devclass LIKE tadir-devclass.

SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP.

PARAMETERS :

 p_tcode LIKE tstc-tcode OBLIGATORY.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN END OF BLOCK a01.

START-OF-SELECTION.

  SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM tadir

    WHERE pgmid = 'R3TR'

    AND object = 'PROG'

    AND obj_name = tstc-pgmna.

    MOVE :

 tadir-devclass TO v_devclass.

    IF sy-subrc NE 0.

      SELECT SINGLE * FROM trdir

      WHERE name = tstc-pgmna.

      IF trdir-subc EQ 'F'.

        SELECT SINGLE * FROM tfdir

        WHERE pname = tstc-pgmna.

        SELECT SINGLE * FROM enlfdir

        WHERE funcname = tfdir-funcname.

        SELECT SINGLE * FROM tadir

        WHERE pgmid = 'R3TR'

        AND object = 'FUGR'

        AND obj_name = enlfdir-area.

        MOVE :

 tadir-devclass TO v_devclass.

      ENDIF.

    ENDIF.

    SELECT * FROM tadir

    INTO TABLE jtab

    WHERE pgmid = 'R3TR'

    AND object = 'SMOD'

    AND devclass = v_devclass.

    SELECT SINGLE * FROM tstct

    WHERE sprsl EQ sy-langu

    AND tcode EQ p_tcode.

    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

    WRITE:

/(12) '事务代码 - ',

    13(20) p_tcode,

    34(10) '功能 - ' ,

    45(50) tstct-ttext.

    SKIP.

    IF NOT jtab[] IS INITIAL.

      WRITE:

/(95) sy-uline.

      FORMAT COLOR COL_HEADING INTENSIFIED ON.

      WRITE:

/1 sy-vline,

      2 'Exit Name',

      21 sy-vline ,

      22 'Description',

      95 sy-vline.

      WRITE:

/(95) sy-uline.

      LOOP AT jtab.

        SELECT SINGLE * FROM modsapt

        WHERE sprsl = sy-langu AND

        name = jtab-obj_name.

        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

        WRITE:

/1 sy-vline,

        2 jtab-obj_name HOTSPOT ON,

        21 sy-vline ,

        22 modsapt-modtext,

        95 sy-vline.

      ENDLOOP.

      WRITE:

/(95) sy-uline.

      DESCRIBE TABLE jtab.

      SKIP.

      FORMAT COLOR COL_TOTAL INTENSIFIED ON.

      WRITE:

/ '用户出口数量:

' , sy-tfill.

    ELSE.

      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

      WRITE:

/(95) '此TCode没有用户出口!

'.

    ENDIF.

  ELSE.

    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

    WRITE:

/(95) '事务代码不存在!

'.

  ENDIF.

AT LINE-SELECTION.

  GET CURSOR FIELD field1.

  CHECK field1(4) EQ 'JTAB'.

  SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).

  CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1