|
![]() |
#1 |
Участник
|
![]()
Всем спасибо, за отклики!
Все-таки решил сделать через Управление запасами -> Перенос. Для этого: 1) Выгружаю остатки по центральному складу. Список номенклатур с остатками будет формироваться в Excel-е. 2) Затем кладовщик прописывает по каждой номенклатуре местоположение. Количество номенклатур ориентировочно будет около 4-х тысяч. 3) Отредактированный список номенклатур, обратно загружаю в Axapta. Для этого программно создаю журнал переноса и дальше разноска в стандартном режиме. Перед этим модифицируется существующие группы аналитики, т.к. требуется добавить аналитику Местоположение и дополнительно других параметров. Об этом тоже подробно напишу, т.к. сделано малой кровью... То есть для новых условий, не были созданы новые группы аналитики, а лишь модернизировали существующие группы аналитики. Результаты позже напишу... |
|
![]() |
#2 |
Участник
|
А пробовал создать тестовый журнал переноса. Хотя бы с одной строкой? И разнести его. Что-то есть такое подозрение, что без плясок с бубном не получится.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
![]() |
#3 |
Участник
|
Создание Журнал переноса через Business Connector
Код: // Запуск специального класса для формирования журнала перемещения, в данном случае класс называется "ALA_CreateTransferJournal" using (bc.AxaptaObject axClass = ax.CreateAxaptaObject("ALA_CreateTransferJournal", con)) { // Запускаем метод класса "CoCreate" object axJournalId = axClass.Call("CoCreate"); // Проверяем возвратное значение метода. При успешной создании, метод возвращает номер журнала // Если значение не пустое, то обновляем локальную базу веб приложения if (axJournalId != null && axJournalId.ToString().Length > 0) { using (var cmd = cnn.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = "UPDATE dbo.InventJournalTable SET axJournalId = @axJournalId, axDescription = @axDescription "; cmd.CommandText += "WHERE (JournalId = @JournalId)"; cmd.Parameters.Add("@axJournalId", SqlDbType.NVarChar, 20).Value = axJournalId; cmd.Parameters.Add("@axDescription", SqlDbType.NVarChar, 200).Value = axDescription; cmd.Parameters.Add("@JournalId", SqlDbType.Int).Value = journalId; cmd.ExecuteNonQuery(); result = string.Format("1 Журнал: {0} {1}", axJournalId, axDescription); } } } } // Закрываем соединение ax.Logoff(); X++: public JournalId CoCreate() { InventJournalTrans inventJournalTrans; NumberSeq numberSeq; // ---------------------- InventLocationId inventLocationIdFrom, inventLocationIdTo; ALA_InventPIC inventPicFrom, inventPicTo; ItemId itemId; Qty qty; InventDimGroupId dimGroupId; InventJournalId axJournalId; JournalNumOfLines numOfLines = 0; str dimension1, dimension2, dimension5, dimension3, dimension7; str 100 userName; str 1000 sLine; List hList = new List(Types::String); List list = new List(Types::String); ListIterator iterator, itemIterator; Container packedList, itemList; int i; ; if (conLen(con) > 0) { ttsBegin; sLine = conPeek(con, 1); hList = Global::strSplit(sLine, '|'); if (hList.elements() > 0) { iterator = new ListIterator(hList); while (iterator.more()) { packedList += iterator.value(); iterator.next(); } transDate = str2date(conPeek(packedList, 1), 213); inventLocationIdFrom = conPeek(packedList, 2); inventPicFrom = conPeek(packedList, 3); inventLocationIdTo = conPeek(packedList, 4); inventPicTo = conPeek(packedList, 5); userName = conPeek(packedList, 6); dimension2 = conPeek(packedList, 7); dimension1 = conPeek(packedList, 8); dimension5 = conPeek(packedList, 9); dimension3 = conPeek(packedList, 10); dimension7 = conPeek(packedList, 11); axJournalId = conPeek(packedList, 12); // проверка на повторный запуск if (axJournalId) { if (InventJournalTable::find(axJournalId).RecId) return ""; } inventJournalTable.clear(); numberSeq = new NumberSeq(); numberSeq = NumberSeq::newGetNum(InventParameters::numRefInventJournalId()); // ** Init value InventJournalTable inventJournalTable.initValue(); inventJournalTable.JournalId = numberSeq.num(); inventJournalTable.JournalNameId = "Перенос"; inventJournalTable.TPF_Dimension[1] = dimension1; inventJournalTable.TPF_Dimension[2] = dimension2; inventJournalTable.TPF_Dimension[5] = dimension5; inventJournalTable.TPF_Dimension[3] = dimension3; inventJournalTable.TPF_Dimension[7] = dimension7; inventJournalTable.initFromInventJournalName(InventJournalName::find(InventParameters::find().TransferJournalNameId)); inventJournalTable.Description = strFmt("%1 => %2, МОЛ-(%3) от %4", inventLocationIdFrom, inventLocationIdTo, inventPicTo, transDate); inventJournalTable.SystemBlocked = true; inventJournalTable.insert(); journalId = inventJournalTable.JournalId; for (i = 2; i <= conLen(con); i += 1) { sLine = conPeek(con, i); list = Global::strSplit(sLine, '|'); if (list.elements() > 0) { itemIterator = new ListIterator(list); while (itemIterator.more()) { itemList += itemIterator.value(); itemIterator.next(); } itemId = conPeek(itemList, 1); qty = str2num(conPeek(itemList, 2)); dimGroupId = InventTable::find(itemId).DimGroupId; if (ALA_DimGroupId::find(dimGroupId).DimGroupId) { if (ALA_DimGroupId::find(dimGroupId).AnalyticsType == ALA_GroupAnalytics::NewAnalytics) this.CreateInventJournalTrans(journalId, transDate, inventLocationIdFrom, inventLocationIdTo, inventPicTo, itemId, qty, dimension1, dimension2, dimension5, dimension3, dimension7, inventJournalTable); else this.CreateOldInventJournalTrans(journalId, transDate, inventLocationIdFrom, inventLocationIdTo, inventPicTo, itemId, qty, inventJournalTable); } else { this.CreateOldInventJournalTrans(journalId, transDate, inventLocationIdFrom, inventLocationIdTo, inventPicTo, itemId, qty, inventJournalTable); } itemList = conDel(itemList, 1, conLen(itemList)); } } inventJournalTable.SystemBlocked = false; inventJournalTable.update(); select count(RecId) from inventJournalTrans where inventJournalTrans.JournalId == journalId; numOfLines = str2int(int642str(inventJournalTrans.RecId)); inventJournalTable.NumOfLines = numOfLines; inventJournalTable.update(); } ttsCommit; } return journalId; } |
|
![]() |
#4 |
Участник
|
Создается, это понятно. Разносится? Остатки получаются в ячейке?
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
![]() |
#5 |
Участник
|
И в разноске тоже нет проблем. И остатки пересчитывается нормально.
|
|
|
![]() |
||||
Тема | Ответов | |||
Местоположение (InventDim.wMSLocationId) | 10 | |||
Ячейки = Местоположение? | 10 | |||
Site в складской аналитике. Как лучше перевести? | 73 | |||
ОС и местоположение | 1 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|