Axapta InventJournalName中的standardJournalName方法
在InventJournalName表中有JournalNameId列和JournalType 使用:Axapta InventJournalName中的standardJournalName方法,axapta,dynamics-ax-2012,dynamics-ax-2012-r2,dynamics-ax-2012-r3,Axapta,Dynamics Ax 2012,Dynamics Ax 2012 R2,Dynamics Ax 2012 R3,在InventJournalName表中有JournalNameId列和JournalType 使用: InventJournalNameId inventJournalName; inventJournalName = InventJournalName::standardJournalName(InventJournalType::Movement); 我确实能够从InventJournalName表中获取类型为Movement的JournalNameId。简而言之,第一个 通过调试器,
InventJournalNameId inventJournalName;
inventJournalName = InventJournalName::standardJournalName(InventJournalType::Movement);
我确实能够从InventJournalName表中获取类型为Movement的JournalNameId。简而言之,第一个
通过调试器,我达到了这一点:
public static InventParameters find(boolean _forupdate = false)
{
InventParameters parameter;
if (_forupdate)
{
parameter.selectForUpdate(_forupdate);
}
select firstonly parameter
index Key
where parameter.Key == 0;
if (!parameter && !parameter.isTmp())
{
Company::createParameter(parameter);
PrintMgmt::createDefaultData(PrintMgmtHierarchyType::Invent);
}
return parameter;
}
老实说,我不能真正理解InventParameters表的作用
很明显:
select firstonly parameter
index Key
where parameter.Key == 0;
将返回我需要的,但幕后的机制是什么
上述方式与以下方式有何区别:
select firstOnly inventJournalName
where inventJournalName.JournalType ==
InventJournalType::Movement;
之所以有参数,是因为无论在
InventJournalName
表中有多少日记账名称,您都应该能够定义标准日记账名称
同一日记账类型的表中可以有多个日记账名称,只要它们不具有相同的名称
如果您有2个类型名称,请输入此代码
select firstOnly inventJournalName
where inventJournalName.JournalType ==
InventJournalType::Movement;
基本上会返回一个随机记录(如果没有订单,则无法保证哪一个将是第一个)
另一方面
select firstonly parameter
index Key
where parameter.Key == 0;
将返回参数表中的内容,并且是确定性的
如果您想知道为什么
where parameter.key==0
用于。这是因为AX的缓存机制是如何工作的。所有参数表都设置为entiretablecache=yes
,但只有在主键上选择时才能从缓存中检索记录。非常感谢,获得了它,并在库存管理>设置>库存和仓库管理参数中找到了设置这些参数的表单。