点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
在我的用户定义文件" U_WID_Test"中,我已经创建了3个有效值,例如示例
- 值说明
- 1 A
- 2 B
- 3 C
现在。 我正在尝试更新第4个有效值,因为value为4,Description为D。
- 4 D
在这种情况下,我用最后一个值更新了我的有效值,这意味着用3-D代替了3-C,但是实际上,我正在像下面那样照顾更新有效值O/P
- 值说明
- 1 A
- 2 B
- 3 C
- 4 D
以下提到UDF创建和更新代码
public void AddUdf(字符串表名,字符串udfname,字符串描述,BoFieldTypes fieldType,BoFldSubTypes子类型,整数大小,字典字典,字符串defaultvalue) { GC.Collect(); var SboCompany = ServiceLocator.SboCompany; var udfs = new List (); var rs =(Recordset)SboCompany.GetBusinessObject(BoObjectTypes.BoRecordset); rs.DoQuery(string.Format(" SELECT FieldID,来自CUFD的AliasID,TableID ='{0}'或TableID ='@ {0}'",表名))); 同时(!rs.EoF) { udfs.Add(new Udf((int)rs.Fields.Item(" FieldId")。Value,(string)rs.Fields.Item(" AliasID")。Value))); rs.MoveNext(); } 元帅.ReleaseComObject(rs); var sboUdf =(UserFieldsMD)SboCompany.GetBusinessObject(BoObjectTypes.oUserFields); var ud = udfs.SingleOrDefault(x => x.Name.Equals(udfname)); 如果(ud!= null) { 如果(!sboUdf.GetByKey(表名,ud.Id)) { sboUdf.GetByKey(" @" +表名,ud.Id); } } 其他 { sboUdf.TableName =表名; sboUdf.Name = udfname; } var vv = sboUdf.ValidValues; sboUdf.Description =摘录; sboUdf.EditSize = size; sboUdf.Type = fieldType; sboUdf.SubType = subType; 如果(字典!=空) { var valids = new List (); 对于(int i = 0; i
嗨,
您可以尝试删除该UDF并再次添加它吗? 那么它应该具有有效值。
亲切的问候,
ANKIT CHAUHAN
SAP SME支持
Hi Ankit,
感谢您的及时重播,
我认为这不是正确的方法,因为,如果我删除UDF并再次添加它,那么以前与数据相关的UDF会如何处理
我的UDF相关表中有一些旧数据,如果我删除UDF,我将丢失所有以前的数据相关UDF。
即使我已经尝试过相同的方法,也要删除UDF并再次添加它,但是正如我上面提到的那样,在这种情况下,我会丢失所有先前的数据。
您能建议我其他任何一种更新有效值的方法吗?
谢谢!
珍娜。
您好Chenna,
如果您的方案要求您以编程方式添加值,那么我认为必须定期添加和/或更新新值。
在这种情况下,您应该创建一个用户定义的表,并将该表链接到UDF。 现在,您可以简单地在用户定义表中添加,删除和更新记录。 您甚至不一定需要使用DI API。 它将使您的代码更简单,生活也更轻松。
此致
Johan
嗨,Chenna,
请记住,链接表仅包含所有可能的选择。 UDF保存实际选择的值。
您可以使用格式搜索在第二个UDF中显示所需的值,或者,如有必要,可以使应用程序在第二个UDF中填写该值。 作为UDF,您甚至可以使用直接SQL插入值。
此致
Johan
一周热门 更多>