今天程序创建资产时,发生dump,如下:
SM13中信息如下:
经调试发现,xanlu_ins的最后一个字段有异常。
自己将调试时的值拉出来,更新数据库,ok;
最后一个字段为金额字段,调试时显示为0,每次将0删掉,再输入0就更新ok。
原来是ANLU资产主数据的增强结构CI_ANLU,增强字段总长度达到了1132,而系统BAPI(
BAPI_FIXEDASSET_CREATE1)允许的最大extension长度为960(=240*4)。程序代码中还保留之前的增强总长度895。
将结构CI_ANLU增强字段总长度降低至960以下,系统ok。
果然是坑爹无极限!!!
提一个小知识点:
各种BAPI的扩张结构字段中,最好不要包含金额类型字段(CURR),改为CHAR类型。如果必须是金额类型的字段,我们可以用
CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C来转换为字符串,再截取,塞入到extension的多个字段传输。