06.04.2010, 18:52 | #1 |
Участник
|
Проблема с ParmId
[AX 4.0 (4.0.2503), MS SQL]
В измененной версии Аксапты, в классе purchFormLetter, закомментировано создание ParmId. (Почему именно, разбираться времени нет — тем более, что клиенты говорят, что до сих пор это не мешало.) Но поскольку ParmId все же нужен, то я его создаю сам: X++: formLetter = new PurchFormLetter_InvoiceAuditCT(); formLetter.transDate(systemdateget()); formLetter.specQty(PurchUpdate::All); // manually obtaining ParmId, because it is disabled in PurchFormLetter numSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(ParmId)))); parmId = numSeq.num(); formLetter.parmId(parmId); formLetter.sumBy(AccountOrder::Account); formLetter.createParmUpdate(); X++: recordListPurchParmLine.first(purchParmLine);
while (purchParmLine)
{
{ Если посмотреть, как формируется recordListPurchParmLine, то видно, что запрос имеет примерно такой вид: X++: SELECT * FROM PurchParmLine WHERE ((ParmId = N'21100019165')) AND ((TableRefId = N'21100019168')) Подскажите, в каком хотя бы направлении думать? Последний раз редактировалось Shannon; 06.04.2010 в 19:00. |
|
06.04.2010, 19:23 | #2 |
Участник
|
|
|
06.04.2010, 20:26 | #3 |
Участник
|
Но, по идее, вначале все равно должен быть создан ParmId, и дальше во всех Parm-таблицах должен прописываться именно он. То есть система должна подхватывать ParmId, созданный и переданный экземпляру класса PurchFormLetter. Или нет?
|
|
06.04.2010, 22:07 | #4 |
Участник
|
Могу посоветовать только поставить breakpoint в insert PurchParmLine и искать откуда система берёт второй ParmId
|
|
Теги |
ax4.0, invoice, parm tables, posting, purchase, purchase order |
|
|