SE16N缓存
比如SE11改了字段长度,SE16N没有变化,需要清缓存
/$SYNC
查看表对应的文本表
直接se16n输入表名,就能看到文本表了,比如ska1
数据元素
描述:在表dd04t中
修改记录
在数据元素勾更改文档,表修改记录就会存放在表CDHDR和CDPOS中,可以运行程序RSSCD100直接查询
程序RSTBCOUNT可以按时间查看表的变更日志条目数据,能看到占用资源最多的表
查看表的变更可以用SCU3看
NULL
- NULL表示未知的值,称为空值(NULL VALUE),空值不是空字符串,而是一个特殊的值,空值表示该列的值未知
修改自定义表数据
使用FM SE16N_INTERFACE,输入 I_TAB(表名),I_EDIT = 'X',I_SAPEDIT = 'X'
取域值
*取域值(状态描述、订单类型描述)
perform domain_text_get using 'ZD_YBZ' mara-zzybz changing gs_des-zzybz.
form domain_text_get using uv_domain_name
uv_value
changing cv_text.
data lt_dd07v type table of dd07v with header line."描述
call function 'DD_DOMVALUES_GET'
exporting
domname = uv_domain_name
text = 'X' "TEXT 参数必填,否则默认只取域值不取文本
tables
dd07v_tab = lt_dd07v.
read table lt_dd07v with key domvalue_l = uv_value.
if sy-subrc = 0.
cv_text = lt_dd07v-ddtext.
endif.
endform.
域值作为F4搜索帮助
使用函数 HR_BEN_GET_F4_DOMVAL_AND_TEXT:可以返回域值和文本
查找表字段
SE11中显示的字段标签可能和字段描述不一样,和双击进去查看到的细节中的字段描述也不一样,所以在查找字段时,可以双击根据细节中的字段描述查找
域值范围
有固定值的字段可以查看对应的域的值范围和描述,域值可以做成搜索帮助,下拉框,做成下拉框时可以立即触发FCODE
转换例程
- 可以在定义域时填写转换例程,转换例程是输入输出时的自动转换,例如PC->ST->PC,在SE16N,输入输出都会自动转换,在SE11中,输入会转换,输出不会转换。如果用户参数配置了考虑转换出口,双击SE16N未转换的值也会转换
- 转换例程固定命名格式:CONVERSION_EXIT_例程名_INPUT和CONVERSION_EXIT_例程名_OUTPUT。其中函数名为CONVERSION_EXIT_例程名_INPUT,填写例程时只需要填写例程名,例程名长度不能超过5。
- 转换例程的输入输出参数名是固定的,分别为INPUT和OUTPUT。
- 附:WRITE出来的数据默认使用了转换例程。
- 如果自建表的字段中有转换例程,向自建表保存数据就需要转换之后再存进去,否则取数时会出现问题。
SE11 创建透明表
- 当修改字段长度时,原透明表的数据不会丢,在SE14中调整并激活后,就可以在SE11中激活
- 创建透明表字段时,可以使用数据元素和数据类型,使用数据类型时,创建了表维护生成器后进入维护界面,显示的字段描述是 '+',
- 如果字段有前导零,一定要参考数据元素,且数据元素参考的域需要填写转换例程,否则SE11和SE16查询时需要输入前导零
SE14调整并激活表
如果se14激活表导致数据丢失,可以从临时表中获取
Step 1. Transaction SE14 - Table: MARA - select "Unlock table"
Step 2. Using FM DB_RENAME_TABLE - Pass in Parameter TABNAME_NEW = MARA and TABNAME_OLD = QCMMARA
Step 3. Transaction SE14 - Table: MARA - Select menu Table > Reconstruct
Step 4. (Since you said you've fixed the ZZ-fields error) Go to SE11 and reactivate MARA.
代码方式
DATA itab TYPE TABLE OF zmara WITH HEADER LINE.
EXEC SQL PERFORMING appenditab.
select * into :itab from QCMMARA
ENDEXEC.
INSERT zmara CLIENT SPECIFIED FROM TABLE itab .
COMMIT WORK.
BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form appenditab
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM appenditab.
APPEND itab.
ENDFORM. "appenditab
如果报错数据库对象不一致,需要用DDIC用户登陆重建表(不然重建按钮是灰的)
重建完如果报标签不一致不用管,se14继续调整即可
note 1248769
SM30表维护
- SM30表维护中显示的表字段文本为对应的数据元素长文本(仅有短文本依旧显示 '+')
所以在需要使用表维护的时候用数据元素好一点,输入自定义数据元素名,双击,输入自定义域,双击创建,分别激活
要删除已有的表维护时,进入SE11--实用程序--表维护生成器,会进入显示界面,按 ESC(取消) 即可看到修改和删除界面(F3无效),生产表维护对话TCODE SE56
- 在SE11中生成表维护生成器,如果之前选择了两步维护么然后修改成一步维护,SM30中使用的依旧是两个屏幕,所以需要删除了重新建立一个
- 如果自建表需要传输到别的系统,则需要在表维护生成器中选择记录例程为 标准记录例程。记录例程就是传输表改变数据的意思,SM30只传输改变的行,不是传输所有数据
- 如果创建了表维护,就不能再SE11编辑透明表数据了,如果没有创建则可以
- 如果不想使用SM30维护,可以直接在SE37使用FUNCTION VIEW_MAINTENCE_CALL
- sm30字段最大长度是250,如果超了这个长度定义长度会变成40(而不是250),此时保存数据就会截断(截断位置在40个字符)
- 表维护如果勾选了标准记录例程,修改时就会产生请求,在scc4配置了不允许修改的系统中会报错“客户 XX 有不可修改的状态”
SM30 变更日志
如果表技术设置开启了日志更改,sm30查不到变更日志,查一下rz10是不是只配了一个客户端
TCODE: RZ10
修改参数
rec/client = 800 client代表要启用日志记录的客户端
rec/client = all 代表所有客户端启用
rec/client = off (do not log)
重启系统
SE11里面对表激活、删除的LOG表:
DDPRH
DDPRS
视图簇维护
SE54创建
SM34维护