动态调用功能模块的系统及方法技术方案

技术编号:6558064 阅读:340 留言:0更新日期:2012-04-11 18:40
一种动态调用功能模块的方法,该方法包括步骤:根据传入的被调用功能模块信息,获得被调用功能模块参数信息,并生成变量定义代码;根据被调用功能模块信息,生成输入赋值代码;根据被调用功能模块信息、被调用功能模块参数信息及定义的变量,生成功能模块调用代码;根据被调用功能模块参数信息,生成输出赋值代码;执行变量定义代码,定义输入变量及输出变量;执行输入赋值代码,为定义的输入变量赋值;执行功能模块调用代码,得到被调用功能模块返回的参数值;及执行输出赋值代码,传出被调用功能模块返回的参数值。本发明专利技术还提供一种动态调用功能模块的系统。本发明专利技术实现了各种功能模块的动态调用,有助于系统全局整合架构的实现。

【技术实现步骤摘要】

本专利技术涉及一种程序设计系统及方法,特别是关于一种
技术介绍
在SAP系统中,功能模块数目庞大、功能强大,所有的系统操作基本上都可以通过调用 功能模块来实现。 一般情况下,调用功能模块之前必须知道该功能模块的参数的数量、类型 和结构,调用时正确地匹配参数。然而,在某些特定的系统需求中,在设计编程的时候并不 知道所要调用的功能模块,只有在运行的时候才能确切知道所要调用的功能模块。功能模块 的不确定导致了其参数数量、类型和结构的不确定,给功能模块的调用带来了极大的困难。
技术实现思路
鉴于以上内容,有必要提供一种动态调用功能模块的系统。 此外,还有必要提供一种动态调用功能模块的方法。一种动态调用功能模块的系统,该系统包括变量定义代码生成模块,用于根据传入的 被调用功能模块信息,获得被调用功能模块参数信息,并生成变量定义代码,所述变量定义 代码用于定义被调用功能模块参数相对应的变量,所述变量包括输入变量和输出变量;输入 赋值代码生成模块,用于根据被调用功能模块信息,生成输入赋值代码,该输入赋值代码用 于为输入变量赋值;调用代码生成模块,用于根据被调用功能模块信息、被调用功能模块参 数信息及定义的变量,生成功能模块调用代码;输出赋值代码生成模块,用于根据被调用功 能模块参数信息,生成输出赋值代码,该输出赋值代码用于传出被调用功能模块通过输出变 量返回的参数值;及代码执行模块,用于依次执行生成的变量定义代码、输入赋值代码、功 能模块调用代码及输出赋值代码,以完成功能模块的调用。一种动态调用功能模块的方法,该方法包括步骤根据传入的被调用功能模块信息,获 得被调用功能模块参数信息,并生成变量定义代码,所述变量定义代码用于定义被调用功能 模块参数相对应的变量,所述变量包括输入变量和输出变量;根据被调用功能模块信息,生 成输入赋值代码,该输入赋值代码用于为输入变量赋值;根据被调用功能模块信息、被调用 功能模块参数信息及定义的变量,生成功能模块调用代码;根据被调用功能模块参数信息, 生成输出赋值代码,该输出赋值代码用于传出被调用功能模块通过输出变量返回的参数值;4执行变量定义代码,定义被调用功能模块相对应的变量,所述变量包括输入变量及输出变量 ;执行输入赋值代码,为定义的输入变量赋值;执行功能模块调用代码,得到被调用功能模 块通过输出变量返回的参数值;及执行输出赋值代码,传出被调用功能模块通过输出变量返 回的参数值。本专利技术实现了各种功能模块的动态调用,有助于系统全局整合架构的实现。 附图说明图l为本专利技术动态调用功能模块的系统的功能模块图。图2为FLIST参数的结构示意图。图3为F頂P0RT参数的结构示意图。图4为FTABLES参数的结构示意图。图5为本专利技术动态调用功能模块的方法流程图。具体实施例方式下述实施例以SAP系统为例进行说明。为便于理解,对相关技术作如下解释。功能模块参数类型功能模块的参数有importing、 exporting、 changing和tables四种 类型,其中,importing参数是单纯的输入参数,exporting参数是单纯的输出参数, changing参数既是输入又是输出参数,其值在传入后能够被功能模块所修改,tables参数既 是输入又是输出参数,用来传递多行结构相同的数据。参阅图2所示,为一个名为FLIST的tables参数,该tables参数有三个栏位,第一个栏位 名为SEQNO,第二个栏位名为FNAME,第三个栏位名为FINDIC。 tables参数的某一位置可以用 行和栏位表示,例如,FLIST的第一行SEQNO栏位值为l,第二行FNAME栏位值为Func2,第三 行FINDIC栏位值为S。 tables参数的某一位置还可以用行和列表示,例如,FLIST的第一行 SEQNO栏位也就是FLIST的第一行第一列。功能模块有五种被调用方式同步、异步、事务、队列和平行。包含程序(include programs):包含程序能够将代码模块化,并能够被其他程式所引 用,包含程序中的代码也就是该其他程序的一部分。参阅图1所示,是本专利技术动态调用功能模块的系统10的功能模块图。该动态调用功能模 块的系统10包括变量定义代码生成模块100、输入赋值代码生成模块101、调用代码生成模块 102、输出赋值代码生成模块103、代码执行模块104。所述变量定义代码生成模块100用于根据从统一接口传入的被调用功能模块信息,获得 被调用功能模块参数信息,并生成变量定义代码。所述变量定义代码用于定义被调用功能模块参数相对应的变量,所述变量包括输入变量和输出变量。在本实施例中,所述被调用功能 模块信息包括被调用功能模块的名称、被调用方式及被调用功能模块的参数值。被调用功能 模块可以是一个,也可以是多个。例如,被调用功能模块为Funcl、 Func2和Func3。在本实 施例中,所述统一接口包括三个tables参数FLIST、 F頂PORT和FTABLES。 FLIST用来传送被 调用功能模块的名称及被调用方式,参阅图2所示,其中SEQNO表示被调用功能模块编号, FNAME表示被调用功能模块名称,FINDIC表示被调用方式。F頂PORT用来传送被调用功能模块 的importing参数、exporting参数和changing参数,参阅图3所示,其中PA應TYPE表示参数 类型,I和E分别表示importing类型和exporting类型,PARA丽AME表示参数名称, PARAMVALUE表示参数值。FTABLES用来传送被调用功能模块的tables参数,参阅图4所示,其 中TBLNAME表示该tables参数的名称,TBLROW表示该tables参数的某行,TBLCOL表示该 tables参数的某列,FLDNAME表示该tables参数的栏位名,FLDVALUE表示该tables参数某一 位置(即某行某列)相对应的数值。参阅图4所示,本实施例由TBLROW和FLDNAME确定该 tables参数的某一位置,TBLC0L取为0。所述变量定义代码生成模块100根据传入的被调用功能模块的名称获得被调用功能模块 参数信息。例如,在SAP系统中,通过系统透明表FUPARAREF获得被调用功能模块参数信息。 所述被调用功能模块参数信息包括参数的类型、tables参数的结构等。所述变量定义代码生成模块100根据被调用功能模块参数信息,生成变量定义代码。所 述变量定义代码为每个被调用功能模块的参数定义一个相同类型的变量。对于tables参数, 相对应的tables变量与该tables参数的结构相同。如前所述,importing参数是输入参数, exporting参数是输出参数,changing参数和tables参数既是输入又是输出参数。为便于说 明,将输入参数对应的变量称为输入变量,将输出参数对应的变量称为输出变量,因此,定 义的importing变量是输入变量,定义的exporting变量是输出变量,定义的changing变量和 tables变量既是输入又是输出变量。例如,被调用功能模块有两个importing参数KUNAG和 KUNNR,有一个exporting参数BSTKD,有一个tables参数REPAIR本文档来自技高网...

【技术保护点】
一种动态调用功能模块的系统,其特征在于,该系统包括: 变量定义代码生成模块,用于根据传入的被调用功能模块信息,获得被调用功能模块参数信息,并生成变量定义代码,所述变量定义代码用于定义被调用功能模块参数相对应的变量,所述变量包括输入变量 和输出变量; 输入赋值代码生成模块,用于根据被调用功能模块信息,生成输入赋值代码,该输入赋值代码用于为输入变量赋值; 调用代码生成模块,用于根据被调用功能模块信息、被调用功能模块参数信息及定义的变量,生成功能模块调用代码;   输出赋值代码生成模块,用于根据被调用功能模块参数信息,生成输出赋值代码,该输出赋值代码用于传出被调用功能模块通过输出变量返回的参数值;及 代码执行模块,用于依次执行生成的变量定义代码、输入赋值代码、功能模块调用代码及输出赋值代码,以 完成功能模块的调用。

【技术特征摘要】
1.一种动态调用功能模块的系统,其特征在于,该系统包括变量定义代码生成模块,用于根据传入的被调用功能模块信息,获得被调用功能模块参数信息,并生成变量定义代码,所述变量定义代码用于定义被调用功能模块参数相对应的变量,所述变量包括输入变量和输出变量;输入赋值代码生成模块,用于根据被调用功能模块信息,生成输入赋值代码,该输入赋值代码用于为输入变量赋值;调用代码生成模块,用于根据被调用功能模块信息、被调用功能模块参数信息及定义的变量,生成功能模块调用代码;输出赋值代码生成模块,用于根据被调用功能模块参数信息,生成输出赋值代码,该输出赋值代码用于传出被调用功能模块通过输出变量返回的参数值;及代码执行模块,用于依次执行生成的变量定义代码、输入赋值代码、功能模块调用代码及输出赋值代码,以完成功能模块的调用。2.如权利要求l所述的动态调用功能模块的系统,其特征在于,所述 被调用功能模块信息通过统一接口传入。3.如权利要求2所述的动态调用功能模块的系统,其特征在于,所述 被调用功能模块通过输出变量返回的参数值通过所述统一接口传出。4.如权利要求l所述的动态调用功能模块的系统,其特征在于,该系 统应用于SAP系统。5. 一种动态调用功...

【专利技术属性】
技术研发人员:方长根刘锋刘博
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:94[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1