Axapta 在X+中设置供应商编号+;普通期刊

Axapta 在X+中设置供应商编号+;普通期刊,axapta,x++,Axapta,X++,我在2012年的一份普通杂志上发表文章。我能够从x++代码中创建日志并输入大多数行信息。现在我对一些供应商编号有问题 当我大部分时间都在使用这段代码时,它是有效的。但有一些供应商编号无法从该表中找到,当然会抛出一个错误。奇怪的是,如果我真的进入ax并输入供应商编号,它会接受它,因为它已经在系统中设置好了,但根据这段代码,它不起作用(对于某些人) 只是想知道供应商编号的设置方式是否有问题,是否与某些内容没有正确链接,或者是否有其他方法可以正确设置此参数 它看起来像是parmledgerDimens

我在2012年的一份普通杂志上发表文章。我能够从x++代码中创建日志并输入大多数行信息。现在我对一些供应商编号有问题

当我大部分时间都在使用这段代码时,它是有效的。但有一些供应商编号无法从该表中找到,当然会抛出一个错误。奇怪的是,如果我真的进入ax并输入供应商编号,它会接受它,因为它已经在系统中设置好了,但根据这段代码,它不起作用(对于某些人)

只是想知道供应商编号的设置方式是否有问题,是否与某些内容没有正确链接,或者是否有其他方法可以正确设置此参数

它看起来像是
parmledgerDimension
为供应商使用了一个
RecId
,并且只从dimensionAttributeValue组合中提取它

有什么想法吗

DimensionAttributeValueCombination  davc;
firstonly RecId from davc where davc.DisplayValue == account; //could be 010-000001
journalTrans.parmLedgerDimension(davc.RecId);
试用

DimensionStorage::getDynamicAccount(account, LedgerJournalACType::Vend);

编辑:我发布的第一行是获取默认维度。如果你需要的话,我会留下的

LedgerJournalEngine::getAccountDefaultDimension(account, curext(), LedgerJournalACType::Vend);

我认为
dimensionAttributeValueComposition
只有一个维度的记录(在本例中为供应商编号),前提是该维度已在交易中使用。因此,请检查此代码失败的供应商是否有任何事务。好吧,奇怪的是,您如何设置参数parmLedgerDimension,因为它似乎只使用该表中的recid。我想知道如果你第一次设置一个供应商id,它不应该在表中更新吗?你是说,一旦有一个供应商id的“交易”,它就会出现在该表中。你能解释一下你所说的交易是什么意思吗。我是新来的,而且这些供应商编号相对较新。。所有旧版本似乎都可以正常工作。基本上,如果供应商已在任何流程中使用,则表
dimensionAttributeValueComposition
应包含供应商的条目。我建议为供应商创建一个采购订单,并对其进行一些过账。在每个步骤之后,检查
dimensionAttributeValueComposition
是否包含供应商的记录。在确定了创建此类记录的进程之后,可以对其进行调试,并了解记录是如何创建的。然后,您可以提取相关代码,自己创建记录,而无需流程。有趣的是,我创建了一个供应商,没有使用任何交易。。就像创建任何其他供应商一样。该条目被插入到DimensionsAttributeValueComposition表中,而不做任何操作。我运行我的x++代码进行验证,它返回recid。和另外两个人在一起很奇怪为什么。。。我不知道有什么不同。。可能是一些安全问题,或者是我不知道它是如何设置的..我喜欢这样的journalTrans.parmLedgerDimension(DimensionStorage::getDynamicAccount(DataRow.get_Item(“Account”),LedgerJournalActType::Vend));这实际上起了作用,它设置了我遇到问题的供应商编号,谢谢。为什么我必须这样做,为什么当我用另一种方式只处理一些供应商编号时它不起作用。这么奇怪?老实说我不确定。我能思考的唯一原因是@Jan-B.-Kjeldsen说的话。Dimension属性框架非常复杂,您可以检查函数的代码并查看它的功能。我还要检查一下,在运行代码后,是否将缺少的帐号插入到DimensionAttributeValueComposition表中。有一份白皮书可以提供帮助