Проблема обновления производственного заказа SAP b1 с несколькими партиямиC#

Место общения программистов C#
Ответить
Anonymous
 Проблема обновления производственного заказа SAP b1 с несколькими партиями

Сообщение Anonymous »

У нас есть разработка специального надстройки, заменяющая окно распределения партий SAP b1 на нашу разработку надстройки для окна распределения пользовательских партий (control+Tab).
При выделении нескольких партий одному и тому же элементу при нажатии кнопки обновления формы производственного заказа SAP B1 после выделения партии после всплывающего окна с ошибкой в журнале системных сообщений.
пример — при вводе данных из входа в систему менеджера, даже если все подключенные клиенты, связанные с логином(ами) менеджера, отключены, еще ниже появляется ошибка

Данные изменились другим пользователем или другой операцией; чтобы продолжить, снова откройте окно «Пользовательские значения» (CSHS) (ODBC -2039) [Сообщение 131-183]

Посоветуйте мне, что нужно исправить.
код в форме системы производственного заказа
private void AddToSAP(SAPbouiCOM.BusinessObjectInfo pVal)
{
SAPbobsCOM.ProductionOrders prodOrder = null;
SAPbobsCOM.Company _company = null;
SAPbobsCOM.Recordset rs = null;
SAPbouiCOM.Form prodForm = null;

try
{
int ErrCode;
string ErrMsg = string.Empty;

if (pVal.FormTypeEx == "65211" && pVal.ActionSuccess == true && pVal.BeforeAction == false)
{

SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{F12}");

int docEntry = int.Parse(B1txtProductionOrderNo.Value);

StringBuilder _sqlStmt1 = new StringBuilder();
_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("SELECT \"DocEntry\" FROM \"OWOR\" WHERE \"DocNum\" = '" + B1txtProductionOrderNo.Value + "'");
dt1.Clear();
dt1.ExecuteQuery(_sqlStmt1.ToString());
if (!dt1.IsEmpty)
{
docEntry = int.Parse(dt1.GetValue("DocEntry", 0).ToString());
}

_company = SAPCompany.GetDICompany();
prodForm = SAPbouiCOM.Framework.Application.SBO_Application.Forms.Item(pVal.FormUID);
string errDescription = string.Empty;

if (_company.Connected)
{
prodForm.Freeze(true);
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");

prodForm.Freeze(false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(prodForm);
prodForm = null;
GC.Collect();
GC.WaitForPendingFinalizers();

//SAPbobsCOM.ProductionOrders prodOrder = (SAPbobsCOM.ProductionOrders)_company.GetBusinessObject(BoObjectTypes.oProductionOrders);
prodOrder = (SAPbobsCOM.ProductionOrders)_company.GetBusinessObject(BoObjectTypes.oProductionOrders);

rs = (SAPbobsCOM.Recordset)_company.GetBusinessObject(BoObjectTypes.BoRecordset);

if (!prodOrder.GetByKey(docEntry))
{
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar
.SetSystemMessage("Production Order not found for DocEntry " + docEntry, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
return;
}

//for (int row = 0; row < (Matrix0.RowCount - 1); row++)
//for (int row = 0; row < Matrix0.RowCount; row++)
for (int row = 0; row < Matrix0.VisualRowCount; row++)
{

//string _tmpItemCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("4").Cells.Item(row + 1).Specific).Value;
string _tmpItemCode = ((EditText)this.Matrix0.Columns.Item("4").Cells.Item(row + 1).Specific).Value;
if (_tmpItemCode.Equals(string.Empty))
{
break;
}

string _tmpWhsCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("10").Cells.Item(row + 1).Specific).Value.ToString();

string matrixCostStr = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("U_Cost").Cells.Item(row + 1).Specific).Value ?? "1";

double lineCost = 0;
double.TryParse(matrixCostStr, out lineCost);
if (row < prodOrder.Lines.Count)
{
prodOrder.Lines.SetCurrentLine(row);
//prodOrder.Lines.Warehouse = _tmpWhsCode;
//prodOrder.Lines.Warehouse = "L2";

prodOrder.Lines.UserFields.Fields.Item("U_Cost").Value = lineCost.ToString();
}

StringBuilder _sqlStmt = new StringBuilder();
_sqlStmt = new StringBuilder();
_sqlStmt.Append("SELECT * FROM \"ADDON_TBL_BATCH_SELECTION_DETAIL\" WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' AND \"ISALLOCATED\" = 1 ");
dt0.Clear();
dt0.ExecuteQuery(_sqlStmt.ToString());

if (!dt0.IsEmpty)
{
for (int i = 0; i < dt0.Rows.Count; i++)
{
string itemCode = dt0.GetValue("ITEMNO", i).ToString();
string whsCode = dt0.GetValue("WHSCODE", i).ToString();
string batchNo = dt0.GetValue("NEWBATCH", i).ToString();
double qty = double.Parse(dt0.GetValue("SELECTEDQTY", i).ToString());

//if (prodOrder.Lines.ItemNo == itemCode && prodOrder.Lines.Warehouse == whsCode)
if (_tmpItemCode.Trim() == itemCode.Trim() && _tmpWhsCode.Trim() == whsCode.Trim())
//if (_tmpItemCode.Trim() == itemCode.Trim())
{
prodOrder.Lines.BatchNumbers.BatchNumber = batchNo;
prodOrder.Lines.BatchNumbers.Quantity = qty;
prodOrder.Lines.BatchNumbers.Add();
}
}
}
}

int result = prodOrder.Update();

if (result == 0)
{

_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("UPDATE \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlStmt1.Append("SET \"DOCSTATUS\" = 'POST' ");
_sqlStmt1.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' ");
_sqlStmt1.Append("AND \"DOCSTATUS\" = 'DRAFT' ");

dt3.Clear();
dt3.ExecuteQuery(_sqlStmt1.ToString());
//SBO_Application.StatusBar.SetText(
// $"Batches from tblBatch linked to Production Order {docEntry}.",
// BoMessageTime.bmt_Short,
// BoStatusBarMessageType.smt_Success
//);
}
else
{
_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("UPDATE \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlStmt1.Append("SET \"DOCSTATUS\" = 'POST' ");
_sqlStmt1.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' ");
_sqlStmt1.Append("AND \"DOCSTATUS\" = 'DRAFT' ");

dt3.Clear();
dt3.ExecuteQuery(_sqlStmt1.ToString());
_company.GetLastError(out ErrCode, out ErrMsg);
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ErrMsg.ToString(), BoMessageTime.bmt_Long, BoStatusBarMessageType.smt_Error, "", "", "", 0);

}

}
}

}
catch (Exception ex)
{
//SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ex.Message, BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error, "", "", "", 0);
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ex.ToString() + "-" + ex.ToString(), SAPbouiCOM.BoMessageTime.bmt_Short,
SAPbouiCOM.BoStatusBarMessageType.smt_Error);
}
finally
{
if (prodOrder != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(prodOrder);
prodOrder = null;
rs = null;
}

GC.Collect();
GC.WaitForPendingFinalizers();
}
}

private void UpdateToSAP(BusinessObjectInfo pVal)
{

SAPbobsCOM.ProductionOrders prodOrder = null;
SAPbobsCOM.Company _company = null;
SAPbobsCOM.Recordset rs = null;
SAPbouiCOM.Form prodForm = null;

try
{
int ErrCode; string ErrMsg = string.Empty;

if (pVal.FormTypeEx == "65211" && pVal.ActionSuccess == true && pVal.BeforeAction == false)
{
if (pVal.FormTypeEx == "65211" && pVal.ActionSuccess == true && pVal.BeforeAction == false)
{
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{F12}");

int docEntry = int.Parse(B1txtProductionOrderNo.Value);

StringBuilder _sqlStmt1 = new StringBuilder();
_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("SELECT \"DocEntry\" FROM \"OWOR\" WHERE \"DocNum\" = '" + B1txtProductionOrderNo.Value + "'");
dt1.Clear();
dt1.ExecuteQuery(_sqlStmt1.ToString());
if (!dt1.IsEmpty)
{
docEntry = int.Parse(dt1.GetValue("DocEntry", 0).ToString());
}

prodForm = SAPbouiCOM.Framework.Application.SBO_Application.Forms.Item(pVal.FormUID);
_company = SAPCompany.GetDICompany();
string errDescription = string.Empty;

if (_company.Connected)
{
prodForm.Freeze(true);
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");
SAPbouiCOM.Framework.Application.SBO_Application.SendKeys("{ESC}");
prodForm.Freeze(false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(prodForm);
prodForm = null;
GC.Collect();
GC.WaitForPendingFinalizers();

//SAPbobsCOM.ProductionOrders prodOrder = (SAPbobsCOM.ProductionOrders)_company.GetBusinessObject(BoObjectTypes.oProductionOrders);
prodOrder = (SAPbobsCOM.ProductionOrders)_company.GetBusinessObject(BoObjectTypes.oProductionOrders);

rs = (SAPbobsCOM.Recordset)_company.GetBusinessObject(BoObjectTypes.BoRecordset);

if (!prodOrder.GetByKey(docEntry))
{
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar
.SetSystemMessage("Production Order not found for DocEntry " + docEntry, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
return;
}

//for (int row = 0; row < (Matrix0.RowCount - 1); row++)
//for (int row = 0; row < Matrix0.RowCount; row++)
for (int row = 0; row < Matrix0.VisualRowCount; row++)
{

//string _tmpItemCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("4").Cells.Item(row + 1).Specific).Value;
string _tmpItemCode = ((EditText)this.Matrix0.Columns.Item("4").Cells.Item(row + 1).Specific).Value;

if (_tmpItemCode.Equals(string.Empty))
{
break;
}

string _tmpWhsCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("10").Cells.Item(row + 1).Specific).Value.ToString();

string matrixCostStr = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("U_Cost").Cells.Item(row + 1).Specific).Value ?? "1";

double lineCost = 0;
double.TryParse(matrixCostStr, out lineCost);
if (row < prodOrder.Lines.Count)
{
prodOrder.Lines.SetCurrentLine(row);
//prodOrder.Lines.Warehouse = _tmpWhsCode;
//prodOrder.Lines.Warehouse = "L2";

prodOrder.Lines.UserFields.Fields.Item("U_Cost").Value = lineCost.ToString();
}

StringBuilder _sqlDealloc = new StringBuilder();
_sqlDealloc.Append("SELECT * FROM \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlDealloc.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' AND \"ISALLOCATED\" = 0");

dt4.Clear();
dt4.ExecuteQuery(_sqlDealloc.ToString());

if (!dt4.IsEmpty)
{
for (int i = 0; i < dt4.Rows.Count; i++)
{
string itemCode = dt4.GetValue("ITEMNO", i).ToString();
string whsCode = dt4.GetValue("WHSCODE", i).ToString();
string batchNo = dt4.GetValue("NEWBATCH", i).ToString();
double qty = double.Parse(dt4.GetValue("SELECTEDQTY", i).ToString());// 0;

if (_tmpItemCode.Trim() == itemCode.Trim() && _tmpWhsCode.Trim() == whsCode.Trim())
{
prodOrder.Lines.BatchNumbers.BatchNumber = batchNo;
//prodOrder.Lines.BatchNumbers.Quantity = 0;
prodOrder.Lines.BatchNumbers.Quantity = -qty;
prodOrder.Lines.BatchNumbers.Add();
}
}
}

StringBuilder _sqlStmt = new StringBuilder();
_sqlStmt = new StringBuilder();
//_sqlStmt.Append("SELECT * FROM \"ADDON_TBL_BATCH_SELECTION_DETAIL\" WHERE \"DOCSTATUS\" = 'DRAFT' AND \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' AND \"ISALLOCATED\" = 1 ");
_sqlStmt.Append("SELECT * FROM \"ADDON_TBL_BATCH_SELECTION_DETAIL\" WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' AND \"ISALLOCATED\" = 1 ");
dt0.Clear();
dt0.ExecuteQuery(_sqlStmt.ToString());

if (!dt0.IsEmpty)
{
for (int i = 0; i < dt0.Rows.Count; i++)
{
string itemCode = dt0.GetValue("ITEMNO", i).ToString();
string whsCode = dt0.GetValue("WHSCODE", i).ToString();
string batchNo = dt0.GetValue("NEWBATCH", i).ToString();
double qty = double.Parse(dt0.GetValue("SELECTEDQTY", i).ToString());

//if (prodOrder.Lines.ItemNo == itemCode && prodOrder.Lines.Warehouse == whsCode)
if (_tmpItemCode.Trim() == itemCode.Trim() && _tmpWhsCode.Trim() == whsCode.Trim())
//if (_tmpItemCode.Trim() == itemCode.Trim())
{
prodOrder.Lines.BatchNumbers.BatchNumber = batchNo;
prodOrder.Lines.BatchNumbers.Quantity = qty;
prodOrder.Lines.BatchNumbers.Add();
}
}
}
}

int result = prodOrder.Update();

if (result == 0)
{

_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("UPDATE \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlStmt1.Append("SET \"DOCSTATUS\" = 'POST' ");
_sqlStmt1.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' ");
_sqlStmt1.Append("AND \"DOCSTATUS\" = 'DRAFT' ");

dt3.Clear();
dt3.ExecuteQuery(_sqlStmt1.ToString());
//SBO_Application.StatusBar.SetText(
// $"Batches from tblBatch linked to Production Order {docEntry}.",
// BoMessageTime.bmt_Short,
// BoStatusBarMessageType.smt_Success
//);
}
else
{
_sqlStmt1 = new StringBuilder();
_sqlStmt1.Append("UPDATE \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlStmt1.Append("SET \"DOCSTATUS\" = 'POST' ");
_sqlStmt1.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' ");
_sqlStmt1.Append("AND \"DOCSTATUS\" = 'DRAFT' ");

dt3.Clear();
dt3.ExecuteQuery(_sqlStmt1.ToString());
_company.GetLastError(out ErrCode, out ErrMsg);
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ErrMsg.ToString(), BoMessageTime.bmt_Long, BoStatusBarMessageType.smt_Error, "", "", "", 0);

}

}
}

}
}
catch (Exception ex)
{
//SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ex.Message, BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error, "", "", "", 0);
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ex.ToString() + "-" + ex.ToString(), SAPbouiCOM.BoMessageTime.bmt_Short,
SAPbouiCOM.BoStatusBarMessageType.smt_Error);
}
finally
{
if (prodOrder != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(prodOrder);
prodOrder = null;
rs = null;
}

GC.Collect();
GC.WaitForPendingFinalizers();
}
}

private bool AddInvTrans()
{
try
{
InvTransItemList = new List();

for (int row = 0; row < (Matrix0.RowCount - 1); row++)
{

string _tmpItemCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("4").Cells.Item(row + 1).Specific).Value.ToString();
string _tmpWhsCode = ((SAPbouiCOM.EditText)Matrix0.Columns.Item("10").Cells.Item(row + 1).Specific).Value.ToString();

if (_tmpItemCode.Equals(string.Empty))
{
break;
}

StringBuilder _sqlStmt = new StringBuilder();
_sqlStmt = new StringBuilder();
_sqlStmt.Append("SELECT * FROM \"ADDON_TBL_BATCH_SELECTION_DETAIL\" WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' AND \"ISALLOCATED\" = 1 ");
dt5.Clear();
dt5.ExecuteQuery(_sqlStmt.ToString());

if (InvTransItemList == null)
{
InvTransItemList = new List();
}

if (!dt5.IsEmpty)
{
for (int i = 0; i < dt5.Rows.Count; i++)
{
string itemCode = dt5.GetValue("ITEMNO", i).ToString();
string whsCode = dt5.GetValue("WHSCODE", i).ToString();
string batchNo = dt5.GetValue("NEWBATCH", i).ToString();
decimal qty = decimal.Parse(dt5.GetValue("SELECTEDQTY", i).ToString());

if (_tmpItemCode.Trim() == itemCode.Trim() && _tmpWhsCode.Trim() != whsCode.Trim())
{
//prodOrder.Lines.BatchNumbers.BatchNumber = batchNo;
//prodOrder.Lines.BatchNumbers.Quantity = qty;
//prodOrder.Lines.BatchNumbers.Add();

string _productionOrder = B1txtProductionOrderNo.Value;

InvTransItemList.Add(new InventoryTransferItem
{
DocNo = _productionOrder,
Batch = batchNo,
ItemCode = itemCode,
FromWHSCode = whsCode,
ToWHSCode = _tmpWhsCode,
SelectedQty = qty,
});
}
}
}
}

}
catch (Exception exx)
{

}

if (InvTransItemList.Count == 0)
{
return true;
}

#region
int ErrCode;
string ErrMsg = string.Empty;
SAPbobsCOM.StockTransfer StockTranferDrft = null;
try
{

SAPbobsCOM.Company _company = SAPCompany.GetDICompany();
StockTranferDrft = (SAPbobsCOM.StockTransfer)_company.GetBusinessObject(BoObjectTypes.oStockTransfer);
SAPbobsCOM.Recordset rs = (SAPbobsCOM.Recordset)_company.GetBusinessObject(BoObjectTypes.BoRecordset);
StockTranferDrft.DocObjectCode = SAPbobsCOM.BoObjectTypes.oStockTransfer;

StockTranferDrft.UserFields.Fields.Item("U_PRODUCTION_ORDER_NO").Value = B1txtProductionOrderNo.Value;

foreach (InventoryTransferItem item in InvTransItemList)
{

StockTranferDrft.FromWarehouse = item.FromWHSCode;
StockTranferDrft.ToWarehouse = item.ToWHSCode;
StockTranferDrft.DocDate = DateTime.Now;
StockTranferDrft.Lines.ItemCode = item.ItemCode;
StockTranferDrft.Lines.FromWarehouseCode = item.FromWHSCode;
StockTranferDrft.Lines.WarehouseCode = item.ToWHSCode;
StockTranferDrft.Lines.Quantity = (double)item.SelectedQty;

StockTranferDrft.Lines.BatchNumbers.BatchNumber = item.Batch;
StockTranferDrft.Lines.BatchNumbers.Quantity = (double)item.SelectedQty;
StockTranferDrft.Lines.BatchNumbers.Add();

StockTranferDrft.Lines.Add();
}

int result = StockTranferDrft.Add();
if (result != 0)
{
_company.GetLastError(out ErrCode, out ErrMsg);
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetText("Stock Transfer failed: " + ErrMsg, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Stock Transfer Error : " + ErrMsg.ToString(), 1, "OK");

return false;
}
else
{
string objCode = "";
int lastNo;

_company.GetNewObjectCode(out objCode);
lastNo = Convert.ToInt32(objCode);
int absEntry = Convert.ToInt32(lastNo);
StockTranferDrft.GetByKey(absEntry);

SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetText("Stock Transfer created successfully ! \n DocEntry : " + absEntry, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success);

StringBuilder _sqlStmt2 = new StringBuilder();

foreach (InventoryTransferItem item in InvTransItemList)
{
_sqlStmt2 = new StringBuilder();
_sqlStmt2.Append("UPDATE \"ADDON_TBL_BATCH_SELECTION_DETAIL\" ");
_sqlStmt2.Append("SET \"WHSCODE\" = '" + item.ToWHSCode + "' ");
_sqlStmt2.Append("WHERE \"DOCNO\" = '" + B1txtProductionOrderNo.Value + "' ");
_sqlStmt2.Append("AND \"NEWBATCH\" = '" + item.Batch + "' AND \"ITEMNO\" = '" + item.ItemCode + "' ");
_sqlStmt2.Append("AND \"WHSCODE\" = '" + item.FromWHSCode + "' ");

dt6.Clear();
dt6.ExecuteQuery(_sqlStmt2.ToString());

}

return true;
}

}
catch (Exception err)
{
ErrMsg = err.Message;
SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetSystemMessage(ErrMsg.ToString(), BoMessageTime.bmt_Long, BoStatusBarMessageType.smt_Error, "", "", "", 0);
SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Stock Transfer Error : " + ErrMsg.ToString(), 1, "OK");
return false;
}
finally
{
if (StockTranferDrft != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(StockTranferDrft);
StockTranferDrft = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
#endregion
}

private void Form_DataAddAfter(ref SAPbouiCOM.BusinessObjectInfo pVal)
{
bool returnsucess = AddInvTrans();
if (returnsucess)
{
AddToSAP(pVal);
}

}

private void Form_DataUpdateAfter(ref BusinessObjectInfo pVal)
{
bool returnSucess = AddInvTrans();
if (returnSucess)
{
UpdateToSAP(pVal);
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... le-batches
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»