If the customer specific logic is too complex to be covered by the embedded formula in calculated field editor in AET, for example there are some ABAP coding involved, we can try custom behavior logic provided by AET:
(1) Create a new entry in table AXT_BEHAVIOR
(2) Your custom behavior could be implemented in class ZCL_AXT_CUSTOM_BEHAVIOR, which inherites from class CL_AXT_ABST_BEHAVIOR_HDLR.
Source code for ZCL_AXT_CUSTOM_BEHAVIOR:
class ZCL_AXT_CUSTOM_BEHAVIOR definition
public
inheriting from CL_AXT_ABST_BEHAVIOR_HDLR
final
create public
shared memory enabled .
public section.
methods IF_AXT_BEHAVIOR_HANDLER~GET_BEHAVIOR_TYPE
redefinition .
methods IF_AXT_BEHAVIOR_HANDLER~GET_COMPATIBLE_DATATYPES
redefinition .
methods IF_AXT_BEHAVIOR_HANDLER~IS_SUPPORTED
redefinition .
methods IF_AXT_DATATYPE_HANDLER~ADJUST_GET_P
redefinition .
methods IF_AXT_DATATYPE_HANDLER~ADJUST_SET
redefinition .
protected section.
PRIVATE SECTION.
*"* private components of class ZCL_AXT_CUSTOM_BEHAVIOR
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_AXT_CUSTOM_BEHAVIOR IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AXT_CUSTOM_BEHAVIOR->IF_AXT_BEHAVIOR_HANDLER~GET_BEHAVIOR_TYPE
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RV_BEHAVIOR_TYPE TYPE AXT_FIELD_BEHAVIOR_TYPE
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD IF_AXT_BEHAVIOR_HANDLER~GET_BEHAVIOR_TYPE.
rv_behavior_type = 'ZAXT_BEHAVIOR'.
ENDMETHOD. "IF_AXT_BEHAVIOR_HANDLER~GET_BEHAVIOR_TYPE
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AXT_CUSTOM_BEHAVIOR->IF_AXT_BEHAVIOR_HANDLER~GET_COMPATIBLE_DATATYPES
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RT_DATATYPES TYPE AXTT_FIELD_DATA_TYPE
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD IF_AXT_BEHAVIOR_HANDLER~GET_COMPATIBLE_DATATYPES.
APPEND 'CHAR' TO rt_datatypes.
APPEND 'STRING' TO rt_datatypes.
ENDMETHOD. "IF_AXT_BEHAVIOR_HANDLER~GET_COMPATIBLE_DATATYPES
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AXT_CUSTOM_BEHAVIOR->IF_AXT_BEHAVIOR_HANDLER~IS_SUPPORTED
* +-------------------------------------------------------------------------------------------------+
* | [--->] IT_BO_PART TYPE AXTT_EXT_BO_PART(optional)
* | [--->] IT_SUPPORTED_UI_FRAMEWORKS TYPE AXTT_UI_FRAMEWORK(optional)
* | [--->] IV_EXTENSION_TYPE TYPE AXT_EXTENSION_TYPE
* | [--->] IV_BOL_REGISTERED TYPE AXT_BOOLEAN (default =ABAP_TRUE)
* | [--->] IV_RENDERING_TABLE_ONLY TYPE AXT_BOOLEAN (default =ABAP_FALSE)
* | [--->] IV_RENDERING_TABLE_POSSIBLE TYPE AXT_BOOLEAN (default =ABAP_TRUE)
* | [--->] IV_TRANSIENT_CALCULATE_SET TYPE AXT_BOOLEAN (default =ABAP_FALSE)
* | [--->] IV_MANUAL_DATA_ELEMENT_SET TYPE AXT_BOOLEAN (default =ABAP_FALSE)
* | [<-()] RV_SUPPORTED TYPE AXT_BOOLEAN
* +--------------------------------------------------------------------------------------</SIGNATURE>
method IF_AXT_BEHAVIOR_HANDLER~IS_SUPPORTED.
RV_SUPPORTED = abap_true.
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AXT_CUSTOM_BEHAVIOR->IF_AXT_DATATYPE_HANDLER~ADJUST_GET_P
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_FIELD TYPE AXTS_RUNTIME_EXT_FIELD
* | [--->] IV_COMPONENT TYPE STRING
* | [--->] IO_CURRENT TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS(optional)
* | [--->] IV_PROPERTY TYPE STRING
* | [--->] IV_DISPLAY_MODE TYPE ABAP_BOOL
* | [--->] IV_ORIGINAL_VALUE TYPE STRING
* | [--->] IV_IS_TABLE TYPE ABAP_BOOL (default =ABAP_FALSE)
* | [--->] IV_IS_SEARCH TYPE ABAP_BOOL (default =ABAP_FALSE)
* | [<-()] RV_VALUE TYPE STRING
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD IF_AXT_DATATYPE_HANDLER~ADJUST_GET_P.
CASE iv_property.
WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype.
IF iv_is_table = abap_true OR iv_is_search = abap_true.
rv_value = cl_bsp_dlc_view_descriptor=>field_type_input.
ELSE.
rv_value = cl_bsp_dlc_view_descriptor=>field_type_textarea.
ENDIF.
WHEN if_bsp_wd_model_setter_getter=>fp_textarea_rows.
rv_value = 10.
WHEN OTHERS.
rv_value = super->if_axt_datatype_handler~adjust_get_p(
is_field = is_field
iv_component = iv_component
io_current = io_current
iv_property = iv_property
iv_display_mode = iv_display_mode
iv_original_value = iv_original_value ).
ENDCASE.
ENDMETHOD. "IF_AXT_DATATYPE_HANDLER~ADJUST_GET_P
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AXT_CUSTOM_BEHAVIOR->IF_AXT_DATATYPE_HANDLER~ADJUST_SET
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_FIELD TYPE AXTS_RUNTIME_EXT_FIELD
* | [--->] IV_ATTRIBUTE_PATH TYPE STRING
* | [--->] IV_COMPONENT TYPE STRING
* | [--->] IO_CURRENT TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS
* | [--->] IV_UI_VALUE TYPE STRING
* | [--->] IT_FORM_FIELDS TYPE TIHTTPNVP(optional)
* | [<-->] CV_VALUE TYPE ANY
* +--------------------------------------------------------------------------------------</SIGNATURE>
method IF_AXT_DATATYPE_HANDLER~ADJUST_SET.
DATA: tsl TYPE timestampl,
lv_zone type TZONREF-TZONE value 'UTC',
lv_time TYPE string.
GET TIME STAMP FIELD tsl.
lv_time = | Edited by: { tsl TIMESTAMP = ISO
TIMEZONE = lv_zone }|.
CONCATENATE cv_value lv_time INTO cv_value SEPARATED BY cl_abap_char_utilities=>cr_lf.
endmethod.
ENDCLASS.
When you create extension field, choose "Not defined" as Field type, and choose the entry maintained in step1 as "Render/Validate As":
Click Enable Expert Mode and assign one data element to this extension field:
Generate the extension field and make it visible in WebUI. After I maintain some value for this field and click save:
the ADJUST_SET method of handler class is called and the timestamp is appended:
相关推荐
- **数据结构选择**: 在C#中,可以使用`LinkedList`类作为AET的基础,自定义`Edge`类存储边的信息。 - **排序与查找**: 利用`LinkedList`的特性,结合`OrderBy`或`Sort`方法进行排序和查找。 - **边的插入与删除**: ...
此外,为了在屏幕上显示结果,你可能需要与Windows API或OpenGL接口进行交互,创建窗口,设置绘图上下文,然后调用自定义的绘制函数,该函数会调用扫描线算法填充多边形。VS2005提供了方便的调试工具,可以帮助你在...
使用AET边表法对任意多边形填充,多边形没给出,可自行设计几个文档数据,以验证成功
为了更好地利用这个工具,用户需要对Python编程有一定的了解,并且熟悉基本的测试概念,如测试驱动开发(TDD)和行为驱动开发(BDD)。 要解压并访问"AET.tar.gz"中的文件,用户需要在命令行环境中使用`tar`和`gzip...
标题中的"aet.zip_.net编程_The Business_aet"表明这是一个与.NET编程相关的项目,具体可能是一个业务管理系统,其中"The Business"可能是指电信行业的商业运营。这个压缩包包含了一系列的PBL(Progress数据库对象)...
Brutus program actived
超级网络解密之王—Brutus ,Brutus可以说是能够破解任何认证系统的密码,像一般的认证系统如Telnet、FTP、POP3等基于明文的密码...不过话说回来,如果认证系统是使用了SSL之类的加密系统,那么Brutus就无用武之地了。
AET被设计为一种灵活的系统,可以根据给定项目的回归要求进行调整和定制。 该工具的开发旨在帮助前端客户端对网站或投资组合进行布局回归测试,从本质上评估网站从一个快照到下一个快照的影响或变化。AET背后的哲学...
本文档介绍的是TI公司的TMS28F008AET芯片,这是一款高性能、低功耗的闪存存储器。该芯片具有多种组织结构,包括1048576位(1MB)的8位宽组织、524288位(512KB)的16位宽组织等,适用于不同的数据存储需求。 阵列...
AET系统通过自动化测试来解决这个问题,它能够模拟用户行为,捕获页面的不同状态,并对比不同时间点的页面截图,找出任何可能的视觉差异。这对于保持用户体验的一致性和避免潜在错误至关重要。 Java在这里主要作为...
标题中的"PyPI 官网下载 | aet-0.1.3-py3-none-any.whl"指的是一款名为AET的Python库,版本号为0.1.3,该库已打包成`.whl`格式的文件,可以在Python的包索引平台PyPI(Python Package Index)上找到并下载。...
高级逃逸技术(AET)的分析 高级逃逸技术(AET)是指一类可以躲避检测系统的技术,这类技术可以对企业的信息安全系统构成严峻的挑战。随着信息科技的发展,计算机的应用范围已经遍及世界各个角落,企业都纷纷依靠IT...
AeT计算器道格拉斯·沃森(Douglas Watson),2020年5月麻省理工学院执照这是一个基于浏览器的工具,可以计算在GPS手表上记录的活动期间心率漂移时的心率漂移。 此指标用于确定您的有氧阈值(由上坡运动员定义): :...
aet_1123_形码和物流包装技术.pptx
标题"AET"可能指的是"Advanced Encryption Technology",这是一种高级加密技术,通常用于保护数据安全,尤其是在数字通信和存储中。AET可能涉及到多种与信息安全相关的概念和技术,包括但不限于密码学、对称加密、非...
Office_HomeDataset数据集,参考参考http://hemanthdv.org/OfficeHome-Dataset/,只有Aet、Clipart、Product,只能1GB,Real World另外传
aet%tzlu创建检调对接工作机制有效化解矛盾纠纷.doc
aet_ISO9001:2000实施范例0.doc 本资源为一份ISO9001:2000质量管理体系实施范例,旨在帮助企业建立和实施质量管理体系,提高产品质量和服务水平。本文档包括质量手册、质量管理体系结构图、质量管理体系过程职责...