SAP VC 中 值-功能模块
2026/7/23 2:06:36 网站建设 项目流程

CT04创建特征后,对于值得选项,SAP支持四种方式。其中功能模块可以调用ABAP函数对值进行检查校验,这就对特征值的选择和输入提供了很大的拓展可能。

CT04-值-功能模块

输入需要用到的函数,以上图为例,ZPP_TEST1需要为开发设置的函数名称,及SE37能直接编辑的函数。

所有输入的值,会调用输入的函数,进行值校验,所以ZPP_TEST1这个函数是对输入值进行校验的,函数入参和出参如下:

入参

出参

其中CHARACT_NO和CHARACT是特征的特性,具体可以参照表CABN,这里不做过多阐述。

入参的VALUE为用户的输入值,出参的VALUE_EX为函数的返回值,及调用的这个函数可以对输入值进行一系列逻辑处理后,返回一个值。

为便于理解,我们举一个最简单的例子:公司默认宽是2,该特征是面积,要求用户输长。

那么ZPP_TEST1就可以写成:

FUNCTION ZPP_TEST1. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" REFERENCE(CHARACT_NO) LIKE CABN-ATINN *" REFERENCE(CHARACT) LIKE CABN-ATNAM *" REFERENCE(VALUE) LIKE CAWN-ATWRT *" EXPORTING *" REFERENCE(VALUE_EX) TYPE CAWN-ATWRT *" EXCEPTIONS *" NOT_FOUND *"---------------------------------------------------------------------- value_ex = value*2. ENDFUNCTION.

其中VALUE为输入的长,VALUE_EX为返回的面积,函数里写逻辑 面积 = 长*宽。

OK,这是校验函数。

同时,SAP在代码层面还写死了,输入的函数+'_F4'为搜索帮助函数,输入的函数+'_DC'为值描述函数。

在本例中,另外写一个函数ZPP_TEST1_F4,作为搜索帮助的函数,能够显示可以选择的函数。

入参和出参就不贴图了,直接附上代码:

FUNCTION zpp_test1_f4. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" REFERENCE(CHARACT_NO) TYPE CABN-ATINN *" REFERENCE(CHARACT) TYPE CABN-ATNAM *" VALUE(DISPLAY) DEFAULT 'X' *" REFERENCE(ADDITIONAL_VALUES) TYPE CABN-ATSON *" REFERENCE(MULTIPLE_VALUES) TYPE RCTMV-ATLIS *" REFERENCE(LANGUAGE) TYPE SY-LANGU *" REFERENCE(DISPLAY_WITH_LANGUAGE) *" EXPORTING *" REFERENCE(VALUE_EX) TYPE CAWN-ATWRT *" TABLES *" VALUES STRUCTURE RCTVALUES

再写一个函数ZPP_TEST1_DC,作为值描述的函数,能够根据输入的值,返回值的描述。

FUNCTION zpp_test1_dc . *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" REFERENCE(CHARACT_NO) TYPE CABN-ATINN *" REFERENCE(CHARACT) TYPE CABN-ATNAM *" REFERENCE(VALUE) TYPE CAWN-ATWRT *" REFERENCE(LANGUAGE) TYPE SY-LANGU *" EXPORTING *" REFERENCE(DESCRIPTION) TYPE CAWNT-ATWTB *" EXCEPTIONS *" NOT_FOUND *"----------------------------------------------------------------------

以上两个为SAP在代码层面直接写死的情况,需按规则描述,感兴趣的小伙伴可以DEBUG查一下。

对ZPP_TEST1_F4函数需要注意:因为搜索帮助的显示通常是一个表结构,双击后返回值是读表的第一个值,所以需要清空表保留需要的值或者插入把选择值写到表的第一行,这是开发层面需要考虑的问题。

参考链接:Entering a Function Module - SAP Documentation

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询