论冶金企业SAP系统的二次开发技术.pdf
2 0 1 3 年第 9 期 总 第 1 6 3期 冶 金 动 力 ME T A L UJ R G I C A L P O WE R 6 7 论冶金企业 S A P系统的二次开发技术 司海霞 马钢股份公司 自动化工程公司, 安徽马鞍山2 4 3 0 1 1 【 摘要】 简要介绍企业管理软件S A P系统的概念、 功能模块 、 开发语言 A B A P及开发方法, 通过侧举项目 实施中的实例详细说明了 S A P系统二次开发的技术方法及要点。 【 关键词】 企业管理软件 ; 功能模块 ; 二次开发 【 中图分类号】 T P 3 1 【 文献标识码】B 【 文章编号] 1 0 0 6 6 7 6 4 2 0 1 3 0 9 0 0 6 7 0 3 S e c o n d a r y De v e l o p me n t Te c h n o l o g y f o r t h e S AP S y s t e m o f M e t a l l u r g i c a l Ent e r p r i s e s S I Ha i x i a Au t o ma t i o n E n n e e r i n g C o m p a n y o f Mo ans h an I r o n a n d S t e e l C o . ,L t d . ,Mo a r h a n , An h u i 2 4 3 0 1 1 ,C h i n a 【 A b s t r a c t ] T h e c o n c e p t , f u n c t io n a l m o d u l e s ,d e v e l o p m e n t l a n g u a g e A B A P a n d d e v e l o p - me n t me t h o d o f t h e ma n a g e me n t s o f t wa r e S AP s y s t e m f o r h n t e r p r i s e s a r e b r i e f l y i n t r o d u c e d . T h e t e c h n i c a l me t h o d a n d i t s e s s e n t i a l s f o r t h e s e c o n d a r y d e v e l o p me n t o f t h e S AP s y s t e m are d i s c u s s e d t h r o u g h a c t u a l p r o j e c t e x a m p l e s . 【 K e y w o r d s ] e n t e r p r i s e m a n a g e m e n t s o f tw a r e ; f u n c t i o n a l m o d u l e ; s e c o n d a r y d e v e l o p m e n t 1 前言 随着我国经济技术的发展,企业规模不断壮 大, 企业对其内部信息化的建设也 日益重视, 很多 企业实施 了 E R P系统 , 其 E R P系统多采用 S A P平 台实施 ,虽然 S A P平台功能齐全但在 E R P实施 中 仍有不少应用是通过二次开发实现的。 2 S AP系统平台 S A P S y s t e m s a p p l i c a t i o n s a n d p r o d u c t s i n d a t a p r o c e s s i n g 是国际上著名的标准应用软件公 司, 是 E R P 思想的倡导者。S A P的主打产品 R / 3 是 用于分布式客户机/ 服务器环境 的标 准 E R P软件 , 主要功能模块包括 销售和分销 、 物料管理、 生产计 划、 质量管理、 工厂维修、 人力资源 、 工业方案 、 办公 室和通信、 项 目系统 、 资产管理 、 控制、 财务会计。 3支持的生产经营类型是 按定单生产 、 批量生产 、 合同生产、 离散型、 复杂设计生产、 按库存生产、 流 程型, 其用户分布在航空航天、 汽车、 化工、 消费品、 电器设备、 电子, 食品饮料等行业。 S A P R / 3的功能涵盖 了企业管理业务 的各个 方面, 这些功能模块服务于各个不同的企业管理领 域。 在每个管理领域, R / 3 又提供进一步细分的单一 功能子模块, 例如财务会计模块包括总账、 应收账、 应付账、 财务控制、 金融投资、 报表合并、 基金管理 等子模块。 S A P R / 3 系统具有三个层次的客户端/ 服 务器结构 , 包括显示层 提供用户界面接受用户交 互 、 应用层 系统处理及开发平台 及数据库层 存 储数据及 R / 3 仓库对象 。S A P所提供的是一个有 效的标准而又全面的E R P 软件, 同时软件模块化结 构保证了数据单独处理的特殊方案需求。 目 前很多大型冶金企业的E R P管理采用的软 件也是 S A P系统 , 虽然 S A P系统功能齐全, 但在 冶金企业中使用 S A P系统就显现出国外的设计思 想与国内冶金企业的管理理念还是有出入的。国内 冶金企业, 特别是大型企业 , 组织结构较为复杂, 管 理理念有其行业特点, 个性化需求 S A P系统的标准 功能是满足不了的, 但 S A P 系统是个较为开放的系 统,它向用户提供了客户化源代码开发窗口, S A P 的开发语言是 A B A P 语言, 是一种面向特定应用的 第四代编程语言。A B A P 第一次引人了 “ 逻辑数据 库” 的概念, 它在基本的数据库层提供了更高级的 抽象, 客户可以使用 A B A P开发语言对 S A P系统进 行二次开发, 以满足用户个性化需求。S A P系统的 冶 金 动 力 MET AL LU RGI CA L P OWE R 2 0 1 3 年第9 期 总 第 1 6 3期 二次开发包括功能开发和报表开发 ,报表开发是根 据用户的需求将 S A P系统中的用户数据显示 出来 , 功能开发涉及 S A P系统的功能实现 , 是一项较为复 杂的二次开发 , 也关系到用户的业务需求能否实现。 下面谈谈在冶金企业 中如何进行 S A P系统的二次 开发满足用户个性化需求。 3 S AP系统二次开发技术 S A P系统二次开发技术灵活多样 ,本文介绍两 种在项目 实施中常用的开发技术借用标准字段的 开发及标准功能的延伸开发等。 3 . 1 借用 S AP系统标准字段的开发 冶金企业对资金的需求量大 , 银行贷款较多 , 对 每笔贷款进行 自动计算利息及还款情况等统计管理 是冶金企业不可缺少的管理流程 , S A P系统在这方 面稍为逊色,满足不 了冶金企业用户的需求 ,因为 S A P系统的财务模块是帐务处理系统 ,只能对每笔 贷款做帐务处理 ,难以实现对贷款的利率变化及利 息计算等贷款统计管理。 银行利率经常变动, 企业的 资金管理部门每月要对每笔贷款进行应提利息的计 算 , 在每笔贷款的还贷期间若遇到银行利率的变化 , 变化的利率及利率变动 日期在哪里体现 ,这些都要 通过对 S A P系统的二次开发解决。在二次开发中借 用 S A P 会计凭证中的一个字段 付款参考。这个付 款参考字段存放贷款合同号, 另外在 S A P系统中建 立一个数据库表, 关键字就是贷款合同号, 其他字段 如利率, 利率起始有效时间, 贷款名称等。通过自建 数据库表的关键字段与 S A P会计凭证中的付款参 考字段关联,在对每笔贷款做账务处理 做会计凭 证 时 , 同步更新 自建数据库表。 自建数据库表记录 了每笔贷款的第一次利率及 日期 ,若以后遇到银行 利率变动, 只要在 自建数据库表输入贷款合 同号 、 新 的利率及利率变动 日期。通过 自建数据库表的关键 字贷款合同号与贷款会计凭证的付款参考字段 关联,这样对于每笔贷款的利率变化就能一一体现 出来。企业的资金管理部门每月计算贷款利息时如 银行利率发生变动, 则按最新的利率进行利息计算, 下面举例说明企业是如何计算利息的。 利息计算公式贷款本金X 计息天数X 日利率。 计息天数应判 断起息 日是不是在选 择的 日期 区间 内, 例如输入 日期 2 0 1 3年 0 2月 0 1日⋯ 一2 0 1 3 年 0 2月 2 8日 若是在选择的 日期区间内, 计算应提 利息的天数就等于最大区间 日期 2 0 1 3 0 2 2 8 减起息 日。 若起息 日小于最小区间 2 0 1 3 0 2 0 1 , 计算应提利 息的天数就等于最大区间 日期 2 0 1 3 0 2 2 8 减最小区 间 日期 2 0 1 3 0 2 0 1 。如起息 日大于最大区间 日期 2 0 1 3 0 2 2 8 则不计算应提利息。若起息 日介于区间 日期 ,计算应提利息的天数就等于起息 日减最小区 间 日期 2 0 1 3 0 2 0 1 。 到期 日小于 2 0 1 3 0 2 0 1 则不计算 利息。到期 日介于 2 0 1 3 0 2 0 1 和 2 0 1 3 0 2 2 8 , 计算应提 利 息 的 天 数 就 等 于 到 期 日减 最 小 区 间 日期 2 0 1 3 0 2 0 1 。 在计算应提利息的天数中, 如银行利率 发生变动, 则要分别计算利息 , 若利率是在 2 0 1 3年 0 2 月 1 0日 发生变动了,计算利息时要分段计算 , 2 0 1 3 年 0 2月 1 0日以前 的利息按旧利率计算 , 2 0 1 3 年 0 2 月 1 0日以后的利息按新利率计算。 通过二次开发可以实现对每笔贷款的利息计 算 , 还款情况等进行统计。 这样不但将贷款的帐务处 理与贷款的统计管理有机地结合起来 ,而且也极大 地提高了资金管理效率。过去企业 的还款利息都是 被动地接受银行提供的数据 ,现在企业可以预算贷 款利息 , 能够合理地安排资金使用计划 , 在资金管理 中处于主动地位 , 通过在实际工作 中的运用, 受到了 企业资金管理人员很高的评价。 由此可见 , 二次开发 在项 目实施中的重要性。 上述 的 S A P系统 二次开发采用 的做法是借用 S A P系统的标准字段存放用户需要的内容,因为用 户的个性化需求在 S A P系统中得不到满足, 通过借 用 S A P系统的标准字段能很 好地解决用户的需求 在 S A P系统中得到体现 , 能够将 S A P系统的标准功 能与二次开发有机地结合起来 ,满足用户的个性化 需求, 但在开发文档中一定要注明借用字段的具体 含义 , 便于今后的开发维护。 除了借用 S A P系统 的标准字段进行二次开发 外 , 还可以采用 S A P系统标准功能延伸开发。 3 . 2 S A P系统标准功能的延伸开发 冶金企业的在建工程通常是一项较为复杂的工 程 , 涉及面广 , 专业分工较多 , 工程核算要按在建工 程的性质分类统计 , 一个在建工程的分类有 土建 、 设备 、 设备安装、 材料 、 总包、 其它等。S A P系统的标 准功能是这样处理的将在建工程以内部订单的方 式处理 ,在建工程的分类对应了不同的内部订单类 型 , 如 土建投资订单 、 设备投资订单、 设备安装投 资订单、 材料投资订单 、 总包投资订单、 其它投资订 单等。在创建一个在建工程内部订单时要同时创建 六个 内部订单 。S A P系统的标准功能一次只能创建 一 个内部订单 事务码 K O 0 1 , 多个订单要重复操 作。 但在实际工作 中用户提出 创建在建工程内部订 单时要能同时创建其他的 下转第 7 0页 7 0 冶 金 动 力 ME T ALL U RGI CA L P OWE R 2 0 1 3 年第 9 期 总 第 1 6 3期 静叶控制或反馈信号丢失时,报警信号就不用经过 D C S的程序判断而直接控制现场 的液压锁电磁阀 , 达到使液压锁快速锁定的 目的。 经过实践, 我们对静 叶伺服控制器系统的改造完全达到了生产的要求。 3 成果先进性 静叶可调轴流鼓风机在莱钢以及各大钢厂均得 到广泛应用 ,而作为电液调节静叶控制系统的保护 装置, 液压锁具备了自动切换功能、 在线处理设备故 障、 手动调节静叶等功能, 能够大大降低由于静叶控 制系统出现故障而导致高炉休风引起的巨大的经济 损失, 特别是当发生信号丢失情况时, 液压锁能迅速 锁定静叶,更是对生产的顺利进行起到了重要的作 用。 在莱钢能源动力厂热力车间的三台风机应用后 , 大大减少了高炉故障休风时间, 提高了生产率, 获得 了较高的经济效益。 4 推广应用范围和前景 此次对静叶伺服控制系统的改造 ,能够大大降 低由于静叶控制系统出现故障而导致高炉休风引起 的巨大的经济损失 ,对风机 的安全运行更是起到了 重要的作用。在工艺相同或相似的风机静叶伺服控 制系统上具有很大的推广应用价值,应用前景极为 乐 观 。 5 经济效益 1 改造 1 套系统所需资金 2 0 0 0元 , 热力车间 3 台风机共改造 3套设备 , 共需资金 2 0 0 0元 3 6 0 0 0 元 。 f 2 系统投产后 , 大大减少 了因静 叶控制系统故 障而导致的高炉减风休风时间 , 提高了产能, 每台高 炉每年可多产生经济效益 5 0万元 , 3台高炉共多产 生经济效益 5 0万元x 3 1 5 0万元。 f 3 1 3套系统经改造后所获得的经济效益为 1 5 0 万元 一 6 0 0 0 元 1 4 9 . 4万元 。 6 改造后操作 当静叶角度控制信号丢失或反馈信号丢失时 , 伺 服控制器发出报警信号同时直接控制现场的液压锁 电磁阀动作 , 微机内静叶锁联锁显示在联锁状态 , 此 时如需加减风,将静叶伺服控制器远程本地操作打 到本地操作 ,可通过静叶伺服控制器进行加减风操 作 , 待问题解决后点微机 内静叶锁联锁解除选项 , 静 叶锁联锁解除, 恢复到 D C S控制状态。 收稿 日期 2 0 1 3 ~ 0 2 1 8 作者简介 段伦俊 1 9 8 1 一 , 男, 2 0 0 5 年毕业于青岛大学热能与动力 工程专、 本科学历 . 工程师。 现从事热动技 术工作。 上接第 6 8 页 六个内部订单,避免重复劳动, 提高工作效率。 用户永远是对的, 用户的需求可以通 过二次开发实现。 在 S A P系统里有个拷屏功能f 事务 码 S HD B 1 , 它的作用就是能对 S A P系统标准功能的 操作过程进行录屏 , 并产生相关的一段代码 , 这段代 码可以植入二次开发的程序 中为开发人员所用。 开发人员利用这段代码对照用户的需求 ,将需 要同时创建的订单参数写入代码中,就能满足用户 的要求了。 以上两种方法都是需要开发人员写代码的 , 但 在 S A P系统中可 以通过后 台配置不需写代码也能 满足冶金企业用户需求的。前面我们说过大型冶金 企业组织结构较为复杂 ,一个大型冶金企业下辖几 十个二级工厂,各个工厂都有其较为独立的财务核 算, 但所有的二级工厂都是在一个账套中进行核算, 对于银行科 目,财务上要求各个工厂使用各 自的银 行科目, 不能串用。这就要求在做财务凭证时, 对银 行科 目要控制使用范围 , 在 S A P系统可以通过后台 配置在会计凭证中的确认中, 填人业务范围 各二级 工厂 和相应的银行科 目即可。 S A P系统平台不但功能齐全 ,其二次开发方式 也 是灵活 多样 的 ,除 了上述 的方法外 还有 调用 B A P I 、 S A P功能出口等多种方法 ,限于篇幅作者就 不一一作介绍了。在实际工作中具体采用何种开发 方式取决于用户的需求及开发人员对 S A P系统 的 熟悉程度。 4 结束语 任何一个软件都不可能完全满足所有用户的需 求, 二次开发, 简单的说就是在现有的软件上进行定 制修改 , 功能的扩展 , 然后达到用户想要的功能 , 一 般来说都不会改变原有系统的内核。 收 稿 日期 2 o 1 3 0 6 0 5 作者简介 司海霞 1 9 6 8 一 , 女, 大学本科学历, 工程师, 现从事自 动 化软件开发工作 。