【问题标题】:Getting new PurchId via .NET BusinessConnector通过 .NET BusinessConnector 获取新的 PurchId
【发布时间】:2012-06-06 08:44:46
【问题描述】:

我正在尝试为以下行查找 .NET BusinessConnector 等效调用:

PurchId = NumberSeq::newGetNum(SalesParameters::numRefSalesId()).num();

我是手动将采购订单信息输入到采购订单表中,这很好,但问题在于绑定采购表(PURCHTABLE)的是PurchID,而单个采购订单行(PURCHLINE)是PURCHID 字段,保存采购订单时不会自动填充。

目前我是:

   ax.TTSBegin();
   axRecord.set_Field("ORDERACCOUNT", purchaseOrder.OrderAccount);

(等)

   axRecord.Insert();

但是,虽然这会将记录插入数据库,但它没有 purchID,必须生成。您需要一个 purchID 来链接采购行项目。我找到了 X++ 的上述代码(第二行),但有人知道可以使用 .NET BusinessConnector 调用吗?

任何帮助将不胜感激。

问候, 史蒂夫

【问题讨论】:

    标签: dynamics-ax-2009 x++ axapta business-connector


    【解决方案1】:

    我会更改PurchTable 表的insert() 方法:

    if (!purchTable.PurchId)
        purchTable.PurchId = NumberSeq::newGetNum(purchParameters::numRefPurchId()).num();
    

    放在ttsbegin 之后。

    这是为了避免复杂的 C# 代码。您可能可以使用 CallStaticClassMethod 和表兄弟单独在 C# 代码中执行此操作,但最好将业务逻辑放在 X++ 端。

    How to: Call Business Logic Using .NET Business Connector

    【讨论】:

    • 您好 Jan B,感谢您的回答 - 链接很棒。我已经设法获得了一个新的购买 ID 并做其他所有事情,但从 .NET 代码发布采购订单(因为我们目前正试图坚持使用 .NET)。关于发布 PO 的任何想法?
    • 发布采购订单是什么意思?在 AX 中,不会过帐采购订单,但会过帐装箱单和发票。
    • 嗨,对不起,你是对的。这确实回答了手头的问题。关于您的问题-据我所知,必须处理或更新采购订单,否则它不会创建与 PO 一起出现的相应日记帐交易。这就是我想要达到的目标。如果您有任何想法,那就太好了。
    • 您对哪些期刊交易感兴趣?我不认为你可以从 .Net 端做到这一点,除非你熟悉 AX 销售订单数据模型和操作。你可以提出一个新问题。
    • 您好 Jan B,感谢您一直以来的支持。实际上,我能够解决它 - 一旦我可以发布采购订单,它就会创建相应的日记帐交易,所以一切都很好。再次感谢!
    【解决方案2】:

    请务必在TTSBegin/TTSCommitblock 内执行,否则会收到错误错误消息like this one

    // ax is a reference to an "Axapta" business connector object
    var numRef = ax.CallStaticRecordMethod("SalesParameters", "numRefSalesId");
    var numSeq = (AxaptaObject)ax.CallStaticClassMethod("NumberSeq", "newGetNum", numRef);
    var purchId = numSeq.Call("num");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多