问题解决之 图标表最大长度限制

2021-10-29 23:03发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

点击蓝字 关注我们

前言

无意中发现有人在一个群里提问:怎么突破表的最大限制. 有人答复拆分成多个表.这个看似可行的方案讲给后续的开发带来一些麻烦. 看来这个小问题还是困扰了一些开发.希望本文能够解决你的这个疑问.


问题发现

当自定义表时,或者通过增强的方式给标准表添加自定义字段时,如果所有字段的长度总计超过了4030,系统会报错阻止表的创建或调整 报错消息 D0 519.

当然,如果是增强单据抬头或明细表字段, 因为BAPI传递的长度最大960(局限于结构BAPIPAREX. 如果增强字段总长度超过了960,通过BAPI传递会有部分字段丢失. 此时就需要调整BAPI传递字段的方式了. 因为与本文主题无关,就不赘诉了. 


问题的查找

通过消息号查询NOTE ,可以找到SAP给出的原因及解决办法


NOTES原文如下

During the activation of a transparent table, activation error D0 519 occurs because the width of the table exceeds 4030 "bytes".

Other Terms

D0519, D0 519

Reason and Prerequisites

Because SAP supports various database platforms, you must make sure that tables are defined in the ABAP Dictionary so that they can be created on all platforms. In each case, the minimum required database platforms for an R/3 release are taken into account for this.Before SAP Basis 6.20 Support Package 25, the limit was 1962. When the limit was increased to 4030, the restriction of 1962 in lower releases became invalid. It can be increased to 4030 there, too.

In the display, the unit "byte" is used for the table width. This essentially corresponds to the work area width for a non-Unicode configuration. For other system configurations, the value should be seen rather as a virtual unit and a distinction should be made from the width in real bytes.

Solution

To increase each limit above 4030 (1962), the value of the constant TABLEN in the program RADTBCON must be changed accordingly. This is a modification of the SAP standard system. It must then be retained in the modification adjustment of upgrades, too.The following paragraph applies only to Basis releases below 610:If you have changed the constant in RADTBCON, this change must also be made for RESULT_WA in the include LSDFCTOP. Otherwise, "SAPSQL_SELECT_WA_TOO_SMALL" terminations would occur if a table beyond the formerly valid limit were used as a check table in a foreign key relationship.



问题的解决

SAP为了兼容各种数据库,限制了表的最大长度. 目前时4030个字符.超过长度就会报错. 如果确保你的数据库系统支持超过4030个字符(目前的主流数据库都没有这个限制了). 可以通过修改程序RADTBCON中的变量 TABLEN VIEWLEN

版本差异

SPRING

NOTE中提到的必须跟着修改INCLUDE 程序LSDFCTOP 中的变量长度RESULT_WA  .这个根据版本不同,有点差别. HANA 1709版本已经不需要这个长度限制了 .


总结

很多问题其实都可以在SAP NOTES上找到答案. 但是因为种种原因,很多开发没有登陆SAP NOTES的账号. 所以也没有培养这个查询NOTES的习惯. 貌似bing或google检索也能搜索到SAP NOTES 中的内容. 只是查看详细内容时还是需要跳转登陆.


约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)



公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077


请扫码加入公众号群,提问或参与话题讨论

赞赏支持