...SAP集中开发_概要设计说明书_发票校验时修改统驭科目_V2.
SAP集中研发部
设计组
功能规格说明书规范V1.0
中电装备ERP项目
FICO模块
发票校验时修改统驭科目
第一部分:文档信息
记录号
FICO-035
日期
2011-8-17
开发类型
Report  Form  Interface  Enhancement  Conversion  Others
使用单位
所有单位
模块
FICO
编号
FICO-035
名称
发票校验时修改统驭科目
事务代码
业务负责人
陈磊
功能设计者
陈磊、张鹏飞
报表开发者 / 程序员
张鹏飞
第二部分:维护记录
请求提出者
时间
修改内容
审批人
张鹏飞
2011-8-20
添加了概要设计内容
设计顾问签名
姓名:…………………………………
日期:
第三部分:业务流程                           
3.1业务流程图
3.2功能分解
第四部分:    功能设计                       
4.1必须填写部分
SAP透明表格以及字段:
相关的取数及处理逻辑:
4.2增强填写部分
业务逻辑描述
如图所示是事物代码MIRO的界面,在此界面需要增加一个字段“总账科目” 如红圈所示。用户在此字段输入
数据时弹出一个选择框,从选择框可以选择以下数据:
2202010000
应付账款-应付物资款
2202020000
应付账款-应付商品款
2202050000
应付账款-应付委托运行维护费
2202060000
应付账款-应付工程款
2202070000
应付账款-应付质保金
2202080000
应付账款-应付劳务款
2202980000
应付账款-其他
2241980000
其他应付款-其他
然后做一个替代步骤,当事物代码为MIRO,并且总账科目不为空时,用输入的科目替换原来科目。
第五部分:概要设计
5.1增强填写部分
增强类型
1.发票校验屏幕增强的BADI为BADI_FDCB_SUBBAS04;科目替代采用FI替代校验的行项目替代
2.BADI用到的事务代码SE19、SE18、SE80;FI替代用到的事务代码SE38、GGB1、GCX2、OBBH
增强逻辑:
步骤一:增强标准表字段
采用附加结构的方式新增字段ZZ69FHKONT(参照数据元素Z69EHKONT,域Z69DHKONT)到结构INVFO和ACMM_VENDOR_COMP、表VBKP、视图VBKP_V。
步骤二:创建增强屏幕
复制BADI_EXAMPLE_FDCB_BAS到自开发函数组ZFI69_FDCB
绘制0100屏幕,添加INVFO-ZZ69FHKONT字段到屏幕中。
更改逻辑流以及INCLUDE程序代码
逻辑流:
PROCESS BEFORE OUTPUT.
  MODULE STATUS_0100.
  MODULE receive_data.
*
PROCESS AFTER INPUT.
* get again actual data from main screen
  MODULE receive_actual_data.
*
* implement from here on customer coding
* enumerate ALL fields on the screen because of field transportation
* with or within a module
  FIELD:
   invfo-zz69fhkont.
* send data back to main screen
  MODULE USER_COMMAND_0100.
程序LZFI69_FDCBTOP
FUNCTION-POOL ZFI69_FDCB.        "MESSAGE-ID ..
tablesinvfo.
datao_badi_fdcb_subbas04  type ref to if_ex_badi_fdcb_subbas04.
constants:
      exit_name_fdcb_subbas04   type exit_def
                                value 'BADI_FDCB_SUBBAS04'.
程序LZFI69_FDCBO01
*----------------------------------------------------------------------*
***INCLUDE LBADI_EXAMPLE_FDCB_BASO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  receive_data  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE receive_data OUTPUT.
  IF o_badi_fdcb_subbas04 IS INITIAL.
    CALL METHOD cl_exithandler=>get_instance_for_subscreens
      CHANGING
        instance                      o_badi_fdcb_subbas04
      EXCEPTIONS
        no_reference                  1
        no_interface_reference        2
        no_exit_interface             3
        data_incons_in_exit_managem   4
        class_not_implement_interface 5
        OTHERS                        6.
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
* object created  ?
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.
* get data from main screen
  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo invfo.
ENDMODULE.                 " receive_data  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
   perform screen_modify.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  SCREEN_MODIFY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SCREEN_MODIFY .
  LOOP AT SCREEN.
    if screen-name 'INVFO-ZZ69FHKONT' AND SY-TCODE 'MIR4'.
*   field should not be changed!
      screen-input 0.
    endif.
    MODIFY SCREEN.
  ENDLOOP.
ENDFORM.                    " SCREEN_MODIFY
程序LZFI69_FDCBI01
*----------------------------------------------------------------------*

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。