如何在方法中更改只读表参数?

时间:2019-03-01 16:58:46

标签: sap abap

我正在尝试为ME2ON事务增强类 CL_FB_MMPUR_SUBCON ,方法 USER_COMMAND ,以便控制用户更改的数据以创建交货。

问题是我无法修改导入public class CustomerModel : IValidatableObject { public bool Subscribe {get; set;} public string Email {get; set;} public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (Subscribe && !isValidEmail()) { yield return new ValidationResult("Please enter valid email address"); } } } 表,因为它只是只读 enter image description here

enter image description here

我想知道是否有一种方法可以删除此内部表的锁,以便我可以对其进行更新?

3 个答案:

答案 0 :(得分:1)

IT_OUTTAB是该方法的IMPORTING参数,因此将自动设置READ-ONLY标志,并且不能在该方法内取消设置。检查调用该方法的方法,可能是在此处修改了传递的变量,还是在其他地方修改了原始数据...

答案 1 :(得分:1)

IMPORTING参数只有在VALUE传递的情况下才能更改。

enter image description here

您需要使用CHANGING或参考参数来实现用于预期数据输入/输出的方法。

答案 2 :(得分:0)

IMPORTING参数IV_UCOMM是只读的,而CL_FB_MMPUR_SUBCON是标准类。您也正在寻找替代解决方案。如果要控制更改的数据,则可以找到BAdi或退出事务ME2ON。