背景
最近MDG的项目,有个需求是通过接口传输过来的数据,修改Domain的域值(单值),需要通过ABAP代码实现
原理
通过调查和闻讯,得知函数组SDIF可以修改数据字典,包括修改域值、数据元素、结构、表&&视图、索引、搜索帮助等
我们使用到的函数如下
- DDIF_DOMA_GET:获取域值的信息
- DDIF_DOMA_PUT:修改域值的信息
- DDIF_DOMA_ACTIVATE:激活不活动的域,用于修改后使用
示例代码
*&---------------------------------------------------------------------*
*& 场景:维护域值的多个版本描述
*&----------------------------------------------------------------------
form sub_after_save.
data:ls_domain type zmdgv_domain_i,
lt_domain type table of zmdgv_domain_i,
ls_domain_head_zh type dd01v,
ls_domain_head_en type dd01v,
lt_domain_value_zh type table of dd07v,
lt_domain_value_en type table of dd07v,
ls_domain_value type dd07v.
loop at total assigning field-symbol(<fs_total>).
clear ls_domain.
ls_domain = <fs_total>.
append ls_domain to lt_domain.