2015-09-30 4 views
1

Я отправляю в общий журнал в томе 2012. Я могу создать журнал и ввести большую часть информации о строке из кода x ++. Теперь у меня проблема с некоторыми номерами поставщиков.Установка номера поставщика в X ++ Общий журнал

Когда я использую этот код большую часть времени, он работает. Но есть несколько номеров поставщиков, которые не могут быть найдены из этой таблицы и, конечно, вызывают ошибку. Странно, если я действительно вхожу в топор и набираю номер поставщика, который он принимает, потому что он был настроен в системе, но по этому коду он не работает (для некоторых).

Просто интересно, если что-то не так с установкой номера поставщика, должным образом не связано ни с чем, или если есть другой способ правильно установить этот параметр.

Похоже, что parmledgerDimension использует RecId для поставщиков и извлекает его только из DimensionAttributeValueCombination.

Любые идеи?

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

Я думаю, что 'DimensionAttributeValueCombination' имеет только запись для измерения (в данном случае номер поставщика), если размер был использован в сделка. Поэтому проверьте, не имеют ли какие-либо транзакции поставщики, для которых этот код не работает. –

+0

Хорошо, странно, но как еще вы устанавливаете параметр parmLedgerDimension, потому что кажется, что он использует recid только из этой таблицы. Мне интересно, как если вы впервые установили идентификатор поставщика, не следует ли его обновлять в этой таблице? вы говорите, что когда есть «транзакция» с этим идентификатором поставщика, она будет в этой таблице. можете ли вы точно объяснить, что вы подразумеваете под термином транзакция в отношении того, чтобы это работало. Я новичок в томе – Sirus

+0

также эти номера поставщиков являются относительно новыми. Все старые, похоже, работают нормально. – Sirus

ответ

3

Попробуйте использовать

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

https://msdn.microsoft.com/en-us/library/dimensionstorage.getdynamicaccount.aspx

Edit: первая линия, которую я отправил было получить размер по умолчанию. Я оставлю это в случае, если вам это нужно

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

https://msdn.microsoft.com/en-us/library/ledgerjournalengine.getaccountdefaultdimension.aspx

+0

я пошел, как этот journalTrans.parmLedgerDimension (DimensionStorage :: getDynamicAccount (DataRow.get_Item («Учетная запись»), LedgerJournalACType :: Vend)); Это действительно сработало, оно установило номера поставщиков, с которыми у меня возникли проблемы с благодарностью. Почему я должен это делать и почему он не работает, когда я использовал другой способ только для некоторых номеров поставщиков. так странно? – Sirus

+0

Честно говоря, я точно не знаю. Единственная причина, по которой я могу думать, это то, что сказал Ян-Б.-Кьелдсен.Рамка атрибутов dimenssion довольно сложна, вы можете проверить код функции и посмотреть, что она делает. Я также проверял бы, если после запуска кода номера недостающих учетных записей вставляются в таблицу DimensionAttributeValueCombination. –

+1

Существует технический документ, который может быть полезен https://technet.microsoft.com/en-us/library/hh272858.aspx –

Смежные вопросы