当行来自基础文档时未设置UDF值

2020-09-08 01:19发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图通过在行中指定基本文档密钥...

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

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


我试图通过在行中指定基本文档密钥来创建目标文档

例如:

 TargetDoc.Lines.BaseEntry = SourceDoc.Lies.DocEntry

 TargetDoc.Lines.BaseType = SourceDoc.Lies.ObjType

 TargetDoc.Lines.BaseLine = SourceDoc.Lies.LineNum 

设置完这些信息后,我试图在Header和line中设置一些UDF值。 发现未在此处设置UDF值。

目标文档是PO,基础文档是SO。 创建的文档没有错误,但是缺少UDF值。

10条回答
天桥码农
2020-09-08 01:41

亲爱的 Sinoj George

感谢您的更新。 很抱歉给您带来不便,因为我没有看到您在此处提供的第二条评论。 设置UDF的方式是正确的。 考虑下面的代码;

 SAPbobsCOM.Documents oDelivery;
             oDelivery =(((SAPbobsCOM.Documents)(Menu.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDeliveryNotes)));;
             oDelivery.GetByKey(int.Parse(maxEntryAf));


             SAPbobsCOM.Documents oInvoice;
             oInvoice =(((SAPbobsCOM.Documents)(Menu.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices))));
            
             oInvoice.CardCode = oDelivery.CardCode;
             oInvoice.CardName = oDelivery.CardName;
             oInvoice.DocDate = oDelivery.DocDate;
             oInvoice.DocDueDate = oDelivery.DocDueDate;
             oInvoice.TaxDate = oDelivery.TaxDate;
             oInvoice.Comments = oDelivery.Comments;
             oInvoice.UserFields.Fields.Item(" U_BLT")。Value =" Y";
             oInvoice.DocTotal = oDelivery.DocTotal;
             oInvoice.ContactPersonCode = oDelivery.ContactPersonCode;
         


             int行= oDelivery.Lines.Count;


             for(int i = 0; i <行; i ++)
             {
                 oDelivery.Lines.SetCurrentLine(i);
                 oInvoice.Lines.ItemCode = oDelivery.Lines.ItemCode;
                 oInvoice.Lines.Quantity = oDelivery.Lines.Quantity;
                 oInvoice.Lines.UnitPrice = oDelivery.Lines.UnitPrice;
                 oInvoice.Lines.LineTotal = oDelivery.Lines.LineTotal;
           
                 oInvoice.Lines.Add();
                
             }


             int ok = oInvoice.Add();


             如果(确定!= 0)
             {
                 字符串错误= Menu.oCompany.GetLastErrorDescription();
                 Application.SBO_Application.MessageBox(error.ToString(),1," OK","","");
             }
             其他
             {
                 Application.SBO_Application.MessageBox("已添加基于销售的销售发票:" + maxEntryAf);


             }
         }
 

这样,您可以手动设置每个字段而不是整个行。 它应该可以正常工作。 现在,如果要将整行设置为基线,请考虑在复制这些行之后移动UDF的设置。 (有一种执行此方法的方法; oInv.setDocumentLines(oDeliveryLines);但是在工作流的javascript中有效。)通过将字段一一设置为等于基础文档,不会对您造成任何麻烦,因为它经过了测试和 工作正常。 让我们知道您是否需要更多帮助或问题已解决!

此致

Varnavas Eleftheriou

一周热门 更多>