我正在尝试为以下行找到.NET BusinessConnector等效调用:
PurchId = NumberSeq::newGetNum(SalesParameters::numRefSalesId()).num();
我手动将采购订单信息输入到采购订单表中,这很好,但问题在于PurchID与购买表(PURCHTABLE)和个别采购订单行(PURCHLINE)相关联的事实是PURCHID字段,在保存采购订单时不会自动填充。
目前我:
ax.TTSBegin();
axRecord.set_Field("ORDERACCOUNT", purchaseOrder.OrderAccount);
(等)
axRecord.Insert();
但是,虽然这会将记录插入数据库,但它没有必须生成的purchID。您需要一个purchID来链接购买行项目。我找到了上面的代码(第二行)用于X ++,但有没有人知道可以使用的.NET BusinessConnector调用呢?
非常感谢任何协助。
此致 史蒂夫
答案 0 :(得分:2)
我会在insert()
表的PurchTable
方法中进行更改:
if (!purchTable.PurchId)
purchTable.PurchId = NumberSeq::newGetNum(purchParameters::numRefPurchId()).num();
放在ttsbegin
。
这可以避免复杂的C#代码。您可能只能使用CallStaticClassMethod
和cousins在C#代码中执行此操作,但最好将商务逻辑放在X ++端。
请参阅How to: Call Business Logic Using .NET Business Connector。
答案 1 :(得分:0)
请务必在TTSBegin
/ TTSCommit
块内执行,否则您将收到错误错误消息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");