SEPCERP试点阶段技术书FICOZFIE0006 子资产主数据批量维护v10.docx
《SEPCERP试点阶段技术书FICOZFIE0006 子资产主数据批量维护v10.docx》由会员分享,可在线阅读,更多相关《SEPCERP试点阶段技术书FICOZFIE0006 子资产主数据批量维护v10.docx(41页珍藏版)》请在冰豆网上搜索。
SEPCERP试点阶段技术书FICOZFIE0006子资产主数据批量维护v10
四川省电力公司
企业资源管理(ERP)系统实施项目
技术设计说明书
第一部分:
基本信息
(生成新的版本后,以下内容要相应改动)
开发类型
增强接口单据报表
技术工具
EnhancementUserExitBAdI
DialogInteractivelist
ABAPOOFunctiongroup
RFCBAPIfunctionExecutiveProgram
BDCTableContentsModification
ServerfileLocalfile
SAPScriptSmartformsOutput-onlyList
模块
FICO
开发机及集团
D19
(1)/client110
事务代码
ZFIE0006
程序ID
ZFIE0006
程序名称
子资产主数据批量维护
功能设计者
秦子川
技术设计者
徐博
ABAP程序员
徐博
第二部分:
设计书维护记录
更新日期
更新人员
简要说明
第三部分:
技术方案描述
3.1业务需求描述
批量创建子资产卡片。
Ø需支持导入格式EXCEL下载和上传。
Ø批处理过程中出现错误信息,需及时返回。
第一列显示处理状态(黄、绿、红)。
Ø作利润中心权限检查(根据资产主数据中的成本中心找到其对应的利润中心,若用户授权对象Z_PRCTR无该利润中心,则返回无权限错误信息。
)
3.2技术解决方案
开发DIALOG程序
3.3系统简单架构图
第四部分:
程序逻辑描述—将主要代码功能描述清楚,
第五部分:
源程序----复杂性功能实现可贴主要功能代码部分
TYPES:
BEGIN OF ST_MAIN,
MNO(5) TYPE N, "序号
TXT50 LIKE ANLA-TXT50, "子资产卡片名称
ANLN1 LIKE ANLA-ANLN1, "SAP资产编号
MENGE LIKE ANLA-MENGE, "数量
MEINS LIKE ANLA-MEINS, "计量单位
ZFIZCJZ LIKE ANLU-ZFIZCJZ, "增加子资产价值
SERNR LIKE ANLA-SERNR, "序列号(原系统资产编号)
ORD41 LIKE ANLA-ORD41, "电压等级
ORD42 LIKE ANLA-ORD42, "资产状态
ORD43 LIKE ANLA-ORD43, "使用性质
ORD44 LIKE ANLA-ORD44, "增加方式
GDLGRP LIKE ANLA-GDLGRP, "资金来源
ANLUE LIKE ANLA-ANLUE, "资产特级号(资产明细分类)
ZFILYGC LIKE PRPS-POSID, "来源工程
ZFIGGXH LIKE ANLU-ZFIGGXH, "规格型号
ZFIDXGG LIKE ANLU-ZFIDXGG, "导线规格
ZFIJZMJ LIKE ANLU-ZFIJZMJ, "建筑面积
ZFISPBZ LIKE ANLU-ZFISPBZ, "输配标志
ZFICCRQ LIKE ANLU-ZFICCRQ, "出厂(竣工)日期
ZFISZDD LIKE ANLU-ZFISZDD, "所在地点
ZFIBZ LIKE ANLU-ZFIBZ, "备注
BUKRS LIKE ANLA-BUKRS, "公司代码
BOX TYPE C,
DO TYPE C, "已处理标志
FLG TYPE C,
DEL TYPE C,
END OF ST_MAIN.
TYPES:
BEGIN OF ST_ZOLD,
MNO(5) TYPE N, "序号
ANLN1 LIKE ANLA-ANLN1, "SAP资产编号
AFASL LIKE ANLB-AFASL, "折旧码
AFABG LIKE ANLB-AFABG, "折旧开始日期
NDJAR LIKE ANLB-NDJAR, "使用年限
NDABJ LIKE ANLC-NDABJ, "到期年数
NDABP LIKE ANLC-NDABP, "到期月份数
SCHRW LIKE ANLB-SCHRW, "残值
BUKRS LIKE ANLA-BUKRS, "公司代码
BOX TYPE C,
DO TYPE C,
FLG TYPE C,
DEL TYPE C,
END OF ST_ZOLD.
TYPES:
BEGIN OF TY_MSG.
TYPES:
NO(5) TYPE N. "序号
INCLUDE STRUCTURE BDCMSGCOLL.
TYPES:
END OF TY_MSG.
DATA:
IT_ZOLD TYPE STANDARD TABLE OF ST_ZOLD,
WA_ZOLD TYPE ST_ZOLD,
IT_MAIN TYPE STANDARD TABLE OF ST_MAIN,
WA_MAIN TYPE ST_MAIN,
G_TC_WA1 LIKE LINE OF IT_MAIN,
G_TC_WA2 LIKE LINE OF IT_ZOLD.
DATA:
W_FLG
(1) TYPE C,
Z_ST TYPE ICONS,
M_ST TYPE ICONS,
IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA,
IT_MESSTAB TYPE STANDARD TABLE OF BDCMSGCOLL,
WA_MESSTAB TYPE BDCMSGCOLL,
G_TC_LINES LIKE SY-LOOPC,
IT_MSG TYPE STANDARD TABLE OF TY_MSG,
WA_MSG TYPE TY_MSG,
OK_CODE LIKE SY-UCOMM.
TYPE-POOLS:
ABAP.
CONTROLS:
MAINT TYPE TABLEVIEW USING SCREEN 0100.
CONTROLS:
ZOLDT TYPE TABLEVIEW USING SCREEN 0200.
*----------------------------------------------------------------------*
*START-OF-SELECTION.
* CALL SCREEN 100.
*----------------------------------------------------------------------*
* ZFIE0004_MODULE .
*----------------------------------------------------------------------*
*&SPWIZARD:
DECLARATION OF TABLECONTROL 'MAINT' ITSELF
*&SPWIZARD:
OUTPUT MODULE FOR TC 'MAINT'. DO NOT CHANGE THIS LINE!
*&SPWIZARD:
UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE MAINT_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE IT_MAIN LINES MAINT-LINES.
ENDMODULE. "MAINT_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD:
INPUT MODULE FOR TC 'MAINT'. DO NOT CHANGE THIS LINE!
*&SPWIZARD:
MODIFY TABLE
MODULE MAINT_MODIFY INPUT.
MODIFY IT_MAIN
INDEX MAINT-CURRENT_LINE
FROM WA_MAIN.
ENDMODULE. "MAINT_MODIFY INPUT
*&SPWIZARD:
DECLARATION OF TABLECONTROL 'ZOLDT' ITSELF
*&SPWIZARD:
OUTPUT MODULE FOR TC 'ZOLDT'. DO NOT CHANGE THIS LINE!
*&SPWIZARD:
UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE ZOLDT_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE IT_ZOLD LINES ZOLDT-LINES.
ENDMODULE. "ZOLDT_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD:
INPUT MODULE FOR TC 'ZOLDT'. DO NOT CHANGE THIS LINE!
*&SPWIZARD:
MODIFY TABLE
MODULE ZOLDT_MODIFY INPUT.
MODIFY IT_ZOLD
INDEX ZOLDT-CURRENT_LINE
FROM WA_ZOLD.
ENDMODULE. "ZOLDT_MODIFY INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZFIE0006_1'.
SET TITLEBAR 'ZFIE0006_1'.
ENDMODULE. " STATUS_0100 OUTPUT
*----------------------------------------------------------------------*
* MODULE USER_COMMAND_0100 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CLEAR:
OK_CODE.
OK_CODE = SY-UCOMM.
CLEAR:
SY-UCOMM.
CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
WHEN '%EX' OR 'RW'.
LEAVE PROGRAM.
* WHEN 'DOWN'.
* PERFORM FRM_DOWNLOAD_EXCEL_TEMPLATE.
* WHEN 'EXEC'.
* PERFORM FRM_EXEC_ABUMN.
* WHEN 'CIMP'. "导入模板
* PERFORM FRM_GET_XLSDATA.
* WHEN 'PICK'. "双击事件
* PERFORM FRM_DISPLAY_MSG.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module TC_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TC_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
CLEAR:
SY-UCOMM.
CASE OK_CODE.
WHEN 'DOWN'.
PERFORM FRM_DOWNLOAD_EXCEL_TEMPLATE.
WHEN 'EXEC'.
PERFORM FRM_MAIN_EDIT.
WHEN 'CIMP'. "导入模板
PERFORM FRM_GET_XLSDATA.
WHEN 'PICK'. "双击事件
PERFORM FRM_DISPLAY_MSG.
WHEN 'DEL'.
PERFORM FRM_DELETE_ROW.
WHEN OTHERS.
ENDCASE.
PERFORM USER_OK_TC USING 'TC'
'IT_MAIN'
'BOX'
CHANGING OK_CODE.
ENDMODULE. " TC_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZFIE0004_2'.
SET TITLEBAR 'ZFIE0004_2'.
ENDMODULE. " STATUS_0100 OUTPUT
*----------------------------------------------------------------------*
* MODULE USER_COMMAND_0200 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CLEAR:
OK_CODE.
OK_CODE = SY-UCOMM.
CLEAR:
SY-UCOMM.
CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
WHEN '%EX' OR 'RW'.
LEAVE PROGRAM.
* WHEN 'DOWN'.
* PERFORM FRM_DOWNLOAD_EXCEL_TEMPLATE.
* WHEN 'EXEC'.
* PERFORM FRM_EXEC_ABUMN.
* WHEN 'CIMP'. "导入模板
* PERFORM FRM_GET_XLSDATA.
* WHEN 'PICK'. "双击事件
* PERFORM FRM_DISPLAY_MSG.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& Module TC_USER_COMMAND2 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TC_USER_COMMAND2 INPUT.
OK_CODE = SY-UCOMM.
CLEAR:
SY-UCOMM.
CASE OK_CODE.
WHEN 'DOWN'. "下载模板
PERFORM FRM_DOWNLOAD_EXCEL_TEMPLATE2.
WHEN 'EXEC'.
PERFORM FRM_ZOLD_EDIT.
WHEN 'CIMP'. "导入模板
PERFORM FRM_GET_XLSDATA2.
WHEN 'PICK'. "双击事件
PERFORM FRM_DISPLAY_MSG2.
WHEN 'DEL'.
PERFORM FRM_DELETE_ROW2.
WHEN OTHERS.
ENDCASE.
PERFORM USER_OK_TC2 USING 'TC'
'IT_ZOLD'
'BOX'
CHANGING OK_CODE.
ENDMODULE. " TC_USER_COMMAND2 INPUT
*----------------------------------------------------------------------*
* MODULE TC_MARK INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE TC_MARK INPUT.
IF MAINT-LINE_SEL_MODE = 1
AND WA_MAIN-BOX = 'X'.
LOOP AT IT_MAIN INTO G_TC_WA1 WHERE BOX = 'X'.
G_TC_WA2-BOX = ''.
MODIFY IT_MAIN FROM G_TC_WA1 TRANSPORTING BOX.
ENDLOOP.
ENDIF.
MODIFY IT_MAIN FROM WA_MAIN INDEX MAINT-CURRENT_LINE TRANSPORTING BOX.
EN