取消使用DI API的AR发票-错误-5002

2020-08-21 05:28发布

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

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


我正在尝试通过DI-API使用以下代码取消AR发票,它会返回错误-5002(日期偏离了允许范围)。

我已确保文档设置随时允许取消的文档。


我们在9.3 PL9上。 代码如下。 任何人都可以对此发表任何看法,因为这似乎是一个未解决的常见问题。

非常感谢!

 SAPbobsCOM.Documents发票=(SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
             SAPbobsCOM.Documents cInvoice =(SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);


             Invoice.GetByKey(999);


             cInvoice = Invoice.CreateCancellationDocument();
             cInvoice.CancelDate = DateTime.Now;
             var value = cInvoice.Update();


             如果(值!= 0)
             {
                 MessageBox.Show(" Error:" + oCompany.GetLastErrorCode()+"//" + oCompany.GetLastErrorDescription());
             }其他
             {
                 MessageBox.Show(sErrMsg);
             }
 

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

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


我正在尝试通过DI-API使用以下代码取消AR发票,它会返回错误-5002(日期偏离了允许范围)。

我已确保文档设置随时允许取消的文档。


我们在9.3 PL9上。 代码如下。 任何人都可以对此发表任何看法,因为这似乎是一个未解决的常见问题。

非常感谢!

 SAPbobsCOM.Documents发票=(SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
             SAPbobsCOM.Documents cInvoice =(SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);


             Invoice.GetByKey(999);


             cInvoice = Invoice.CreateCancellationDocument();
             cInvoice.CancelDate = DateTime.Now;
             var value = cInvoice.Update();


             如果(值!= 0)
             {
                 MessageBox.Show(" Error:" + oCompany.GetLastErrorCode()+"//" + oCompany.GetLastErrorDescription());
             }其他
             {
                 MessageBox.Show(sErrMsg);
             }
 
付费偷看设置
发送
5条回答
hengyuye
1楼 · 2020-08-21 05:44.采纳回答

嗨,马丁,

对不起,我错了-这不是发票的工作方式。 像在客户端中一样,您必须在DI API中创建一个新的取消发票文档-这可以通过执行以下操作来实现:

 SAPbobsCOM.Documents发票=(SAPbobsCOM.Documents)SBO_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
             Invoice.GetByKey(InvoiceDocEntry);
             var CancelInvoice = Invoice.CreateCancellationDocument();
             如果(CancelInvoice.Add()!= 0)
             {
                 MessageBox.Show(" Error:" + SBO_Company.GetLastErrorDescription());
             }
             其他
             {
                 MessageBox.Show("成功");
             } 

这一次我确认它可以正常工作:-)

注意:在某些规则下,为了防止取消发票设置可能有所限制,在这种情况下,请在客户端尝试查看原因。

最诚挚的问候,

Maik

暮风yp
2楼-- · 2020-08-21 05:44

是的! 有效! 非常感谢,Maik!

小熊yu生菜
3楼-- · 2020-08-21 05:46

嗨,马丁,

使用更新方法代替

 cInvoice.Update();  

使用"取消":

 cInvoice.Cancel(); 

最诚挚的问候,

Maik

愤怒的猪头君
4楼-- · 2020-08-21 05:55

非常感谢您的回复 Maik Delly

我尝试了此操作,现在收到错误-2028:找到Mo匹配记录

我也通过B1if场景尝试了相同的事务,但是它也失败了(错误Exception:DI Error:(-5006)该对象不支持所请求的操作。-di调用#1失败了。) 我开始怀疑在取消我们特定环境/配置中的交易方面,DI API是否存在错误。

右键单击以取消应用程序中的文档工作正常。

Martin

d56caomao
5楼-- · 2020-08-21 05:39

作为进一步的说明,如果我尝试执行此操作(这可能是代码的另一种可能排列),它将失败,并出现与我尝试通过时相同的错误 B1if(错误:(-5006)该对象不支持请求的操作。)

 SAPbobsCOM.Documents发票=(SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
       
 Invoice.GetByKey(Convert.ToInt32(txtKey.Text));

 Invoice.CancelDate = DateTime.Now;
 var value = Invoice.Cancel();
 如果(值!= 0)
 {
       MessageBox.Show(" Error:" + oCompany.GetLastErrorCode()+"//" + oCompany.GetLastErrorDescription());
 }其他{
       MessageBox.Show(sErrMsg);
 }
 

一周热门 更多>