Участник
|
Создание Журнал переноса через 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;
} Создается без проблем...
|