使用DI API更新日记帐分录的成本中心

2020-09-03 19:16发布

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

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


你好 我正在尝试使用DI API更新现有日记帐分录的成本中心(ProfitCode)。

我不断收到以下错误:

无效现金流量主要项目[الرسالة3741-3]。

即使条目被标记为"现金流量相关",也将保持不变。 解决此问题的方法是,如果分配了一个代码(来自OCFW的CFWId),我将在代码中包括使用主表单项更新日记帐分录行。

现在,到目前为止,每个日记帐分录都在更新中,只有少数日记分录会出现相同的错误。 我发现他们的共同点是他们的交易类型(TransType = 46,供应商付款)。

此外,如果我通过SAP手动更新这些分录的成本中心,然后擦除成本中心,再次运行相同的代码,它们将正确更新。

我当前的代码如下:

 int i,k;
 int s;
 SAPbobsCOM.JournalEntries je;
 SAPbobsCOM.Recordset rs;
 je = Connection.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
 rs = Connection.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
 字符串JEquery =(@" SELECT * FROM -theSQLView-");
 rs.DoQuery(JEquery);
 int lretcode = 1;
 字符串ErrorMessage ="";
 i = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
 je.GetByKey(i);
 同时(!rs.EoF)
 {
     尝试
     {
         s = Convert.ToInt32(rs.Fields.Item(" Line_ID")。Value);
         je.Lines.SetCurrentLine(s);
         je.Lines.CostingCode = rs.Fields.Item(" CostCenter")。Value;
        //检查主表单项是否需要值
         int现金流量= rs.Fields.Item(" CFWId")。Value;
         如果(!string.IsNullOrEmpty(cashflow.ToString())|(现金流!= 0))
         {
                 je.Lines.PrimaryFormItems.CashFlowLineItemID =现金流量;
         }
         rs.MoveNext();
        //更新是否即将到达文件末尾
         如果(rs.EoF)
         {
             lretcode = je.Update();
             如果(lretcode!= 0)
             {
                 Connection.oCompany.GetLastError(out lretcode,out ErrorMessage);
                 LogFile.WriteLog(strLogFileName," EoF更新中的错误:" + ErrorMessage);
                 Console.WriteLine("更新TransId时出错:" + i);
                 Console.WriteLine(lretcode +"" + ErrorMessage);
                 Console.ReadLine();
             }
             其他
             {
                 Console.WriteLine("更新完成。");
                 LogFile.WriteLog(strLogFileName,"更新完成");
                 Console.ReadLine();
             }
         }
         其他
         {
            //更新是否要更改日记帐分录
             k = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
             如果(i!= k)
             {
                 lretcode = je.Update();
                 如果(lretcode!= 0)
                 {
                     Connection.oCompany.GetLastError(out lretcode,out ErrorMessage);
                     LogFile.WriteLog(strLogFileName,"更新TransId时出错:" + i);
                     LogFile.WriteLog(strLogFileName,"更新错误:" + ErrorMessage);
                     Console.WriteLine("更新TransId时出错:" + i);
                     Console.WriteLine(lretcode +"" + ErrorMessage);
                 }
                 其他
                 {
                     Console.WriteLine("更新的成本中心。");
                 }
                 i = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
                 je.GetByKey(i);
             }
         }
     }
     抓住(前例外)
     {
         Console.WriteLine(" error:" + ex);
         LogFile.WriteLog(strLogFileName," error:" + ex);
         Console.ReadLine();
     }
 }
 

在此先感谢您的帮助。

致谢

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

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


你好 我正在尝试使用DI API更新现有日记帐分录的成本中心(ProfitCode)。

我不断收到以下错误:

无效现金流量主要项目[الرسالة3741-3]。

即使条目被标记为"现金流量相关",也将保持不变。 解决此问题的方法是,如果分配了一个代码(来自OCFW的CFWId),我将在代码中包括使用主表单项更新日记帐分录行。

现在,到目前为止,每个日记帐分录都在更新中,只有少数日记分录会出现相同的错误。 我发现他们的共同点是他们的交易类型(TransType = 46,供应商付款)。

此外,如果我通过SAP手动更新这些分录的成本中心,然后擦除成本中心,再次运行相同的代码,它们将正确更新。

我当前的代码如下:

 int i,k;
 int s;
 SAPbobsCOM.JournalEntries je;
 SAPbobsCOM.Recordset rs;
 je = Connection.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
 rs = Connection.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
 字符串JEquery =(@" SELECT * FROM -theSQLView-");
 rs.DoQuery(JEquery);
 int lretcode = 1;
 字符串ErrorMessage ="";
 i = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
 je.GetByKey(i);
 同时(!rs.EoF)
 {
     尝试
     {
         s = Convert.ToInt32(rs.Fields.Item(" Line_ID")。Value);
         je.Lines.SetCurrentLine(s);
         je.Lines.CostingCode = rs.Fields.Item(" CostCenter")。Value;
        //检查主表单项是否需要值
         int现金流量= rs.Fields.Item(" CFWId")。Value;
         如果(!string.IsNullOrEmpty(cashflow.ToString())|(现金流!= 0))
         {
                 je.Lines.PrimaryFormItems.CashFlowLineItemID =现金流量;
         }
         rs.MoveNext();
        //更新是否即将到达文件末尾
         如果(rs.EoF)
         {
             lretcode = je.Update();
             如果(lretcode!= 0)
             {
                 Connection.oCompany.GetLastError(out lretcode,out ErrorMessage);
                 LogFile.WriteLog(strLogFileName," EoF更新中的错误:" + ErrorMessage);
                 Console.WriteLine("更新TransId时出错:" + i);
                 Console.WriteLine(lretcode +"" + ErrorMessage);
                 Console.ReadLine();
             }
             其他
             {
                 Console.WriteLine("更新完成。");
                 LogFile.WriteLog(strLogFileName,"更新完成");
                 Console.ReadLine();
             }
         }
         其他
         {
            //更新是否要更改日记帐分录
             k = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
             如果(i!= k)
             {
                 lretcode = je.Update();
                 如果(lretcode!= 0)
                 {
                     Connection.oCompany.GetLastError(out lretcode,out ErrorMessage);
                     LogFile.WriteLog(strLogFileName,"更新TransId时出错:" + i);
                     LogFile.WriteLog(strLogFileName,"更新错误:" + ErrorMessage);
                     Console.WriteLine("更新TransId时出错:" + i);
                     Console.WriteLine(lretcode +"" + ErrorMessage);
                 }
                 其他
                 {
                     Console.WriteLine("更新的成本中心。");
                 }
                 i = Convert.ToInt32(rs.Fields.Item(" TransId")。Value);
                 je.GetByKey(i);
             }
         }
     }
     抓住(前例外)
     {
         Console.WriteLine(" error:" + ex);
         LogFile.WriteLog(strLogFileName," error:" + ex);
         Console.ReadLine();
     }
 }
 

在此先感谢您的帮助。

致谢

付费偷看设置
发送
2条回答
CJones
1楼 · 2020-09-03 19:48.采纳回答

您好 Vironas Pashalidis

能否请您帮忙确认SAP

您遇到此问题的企业版吗?

还可以帮助将公司数据库升级到最新的可用版本和补丁并在那里进行测试吗?

此问题 可以与SAP注释 2777982 相关。

< em>亲切的问候

ANKIT CHAUHAN

SAP Business One支持

d56caomao
2楼-- · 2020-09-03 19:56

谢谢您的答复。

我们正在使用SAP B1 9.3 PL06。 看来该问题与此SAP Note有关。

亲切的问候,维罗纳斯

一周热门 更多>