Update comportamento invio di REDIS x NESTING

This commit is contained in:
Samuele E. Locatelli
2019-08-23 16:54:49 +02:00
parent 59769f4c4e
commit 87e92998f8
7 changed files with 102 additions and 108 deletions
+1
View File
@@ -86,6 +86,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>DS_App.xsd</DependentUpon>
</Compile>
<Compile Include="List.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
+81 -95
View File
@@ -15,6 +15,14 @@ namespace AppData
public class ComLib
{
#region conf posizioni redis
protected static string redOutPath = "NKC:SERV:BREQ";
protected static string redMsgCount = "NKC:SERV:BREQ:MCount";
protected static string redMsgList = "NKC:SERV:BREQ:MList";
#endregion
#region definizione classi impiegate con PROD
@@ -384,113 +392,91 @@ namespace AppData
memLayer.ML.setRSV(redKey, redVal);
return answ;
}
/// <summary>
/// Restituisce il prossimo codice di envelope per comunicare con sistemi esterni
/// </summary>
/// <param name="BatchID">Batch contenuto nell'envelope</param>
/// <param name="note">note opzionali (motivo envelope)</param>
/// <returns></returns>
public static string getNextEnv(int BatchID, string note)
{
// incremento counter
long nextIndex = memLayer.ML.setRCntI(redMsgCount);
// salvo contenuto della busta
string answ = $"Z{nextIndex:000000000000}";
Dictionary<string, string> lista = new Dictionary<string, string>();
lista.Add(answ, $"{BatchID}|{note}");
memLayer.ML.redSaveHashDict(redMsgList, lista);
// ritorno
return answ;
}
/// <summary>
/// Invia una richiesta di esecuzione di Nesting x un Batch
/// </summary>
/// <param name="BatchID"></param>
/// <param name="BatchID">Batch di cui si chiede processing</param>
/// <param name="note">note opzionali</param>
/// <returns></returns>
public static bool sendBatchReq(int BatchID)
public static bool sendBatchReq(int BatchID, string note)
{
bool answ = false;
// in base allo stato del BATCH corrente determino il tempo e le opzioni da inviare...
var batch = DataLayer.man.taBL.getByKey(BatchID);
int mTime = 1;
int pType = 1;
if (batch[0].STATUS < (int)BatchStatus.EstimationDone)
// per prima cosa mi serve una "nuova busta" per inviare i messaggi
string nextEnv = getNextEnv(BatchID, note);
// preparo il contenuto della busta ed invio i messaggi...
try
{
mTime = memLayer.ML.cdvi("estimMaxTime");
}
else
{
mTime = memLayer.ML.cdvi("nestMaxTime");
pType = 2;
}
// leggo tab ORDINI da DB
var tblOrd = DataLayer.man.taOL.getByBatch(BatchID);
// serializzo
string redVal = JsonConvert.SerializeObject(tblOrd);
// salvo
string redKey = $"NKC:SERV:BREQ:{BatchID}:TAB:ORDERS";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
var tblItm = DataLayer.man.taIL.getByBatch(BatchID);
// serializzo
redVal = JsonConvert.SerializeObject(tblItm);
// salvo
redKey = $"NKC:SERV:BREQ:{BatchID}:TAB:ITEMS";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
// ora versione gerarchica
var currBatch = new Batch()
{
BatchId = BatchID,
maxTime = mTime,
procType = pType
};
// serializzo
redVal = JsonConvert.SerializeObject(currBatch);
// salvo
redKey = $"NKC:SERV:BREQ:{BatchID}:TAB:DATA";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
#if false
Parte currPart;
Ordine currOrder;
List<Parte> ItemList = new List<Parte>();
List<Ordine> OrderList = new List<Ordine>();
foreach (var ordine in tblOrd)
{
ItemList = new List<Parte>();
// carico items dell'ordine
var tblHItm = DataLayer.man.taIL.getByOrder(ordine.OrdCod);
// serializzo
foreach (var parte in tblHItm)
// in base allo stato del BATCH corrente determino il tempo e le opzioni da inviare...
var batch = DataLayer.man.taBL.getByKey(BatchID);
int mTime = 1;
int pType = 1;
if (batch[0].STATUS < (int)BatchStatus.EstimationDone)
{
currPart = new Parte()
{
PartId = parte.ItemID,
CadFilePath = parte.CadFilePath,
DataMatrix = parte.Item_Dtmx,
Description = parte.ItemDesc,
ExtCode = parte.ItemExtCode,
Qty = parte.ItemQty
};
ItemList.Add(currPart);
mTime = memLayer.ML.cdvi("estimMaxTime");
}
// carico ordine
currOrder = new Ordine()
else
{
OrdCod = ordine.OrdCod,
DestPlant = ordine.DestPlant,
DataMatrix = ordine.OrdCod_Dtmx,
ExtCode = ordine.OrderExtCode,
Model = ordine.FamilyCode,
Qty = ordine.OrderQty,
Items = ItemList
mTime = memLayer.ML.cdvi("nestMaxTime");
pType = 2;
}
// leggo tab ORDINI da DB
var tblOrd = DataLayer.man.taOL.getByBatch(BatchID);
// serializzo
string redVal = JsonConvert.SerializeObject(tblOrd);
// salvo
string redKey = $"{redOutPath}:{nextEnv}:ORDERS";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
var tblItm = DataLayer.man.taIL.getByBatch(BatchID);
// serializzo
redVal = JsonConvert.SerializeObject(tblItm);
// salvo
redKey = $"{redOutPath}:{nextEnv}:ITEMS";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
// ora versione gerarchica
var currBatch = new Batch()
{
BatchId = BatchID,
maxTime = mTime,
procType = pType
};
// aggiungo a lista
OrderList.Add(currOrder);
// serializzo
redVal = JsonConvert.SerializeObject(currBatch);
// salvo
redKey = $"{redOutPath}:{nextEnv}:DATA";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
// invio notifica che c'è una busta da processare
redKey = $"{redOutPath}:CURR";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, nextEnv);
answ = true;
}
// ora versione gerarchica
var currBatch = new Batch()
{
BatchId = BatchID,
maxTime = mTime,
procType = pType
Orders = OrderList
};
// serializzo
redVal = JsonConvert.SerializeObject(currBatch);
// salvo
redKey = $"NKC:SERV:BREQ:{BatchID}:HDATA";
// scrivo su REDIS
memLayer.ML.setRSV(redKey, redVal);
#endif
catch
{ }
// restituisco ok
return answ;
}
+1 -1
View File
@@ -3501,7 +3501,7 @@ namespace AppData.DS_AppTableAdapters {
this._commandCollection = new global::System.Data.SqlClient.SqlCommand[5];
this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[0].Connection = this.Connection;
this._commandCollection[0].CommandText = "SELECT *\r\nFROM dbo.v_BatchList";
this._commandCollection[0].CommandText = "SELECT *\r\nFROM v_BatchList";
this._commandCollection[0].CommandType = global::System.Data.CommandType.Text;
this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[1].Connection = this.Connection;
+10 -10
View File
@@ -10,11 +10,11 @@
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="BatchListTableAdapter" GeneratorDataComponentClassName="BatchListTableAdapter" Name="BatchList" UserDataComponentName="BatchListTableAdapter">
<MainSource>
<DbSource ConnectionRef="Sauder_NKCConnectionString1 (Settings)" DbObjectName="Sauder_NKC.dbo.v_BatchList" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<DbSource ConnectionRef="Sauder_NKCConnectionString1 (Settings)" DbObjectName="Sauder_NKC.dbo.v_BatchList" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT *
FROM dbo.v_BatchList</CommandText>
FROM v_BatchList</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
@@ -452,7 +452,7 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
<xs:element name="DS_App" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS_App" msprop:Generator_UserDSName="DS_App">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="BatchList" msprop:Generator_TableClassName="BatchListDataTable" msprop:Generator_TableVarName="tableBatchList" msprop:Generator_TablePropName="BatchList" msprop:Generator_RowDeletingName="BatchListRowDeleting" msprop:Generator_RowChangingName="BatchListRowChanging" msprop:Generator_RowEvHandlerName="BatchListRowChangeEventHandler" msprop:Generator_RowDeletedName="BatchListRowDeleted" msprop:Generator_UserTableName="BatchList" msprop:Generator_RowChangedName="BatchListRowChanged" msprop:Generator_RowEvArgName="BatchListRowChangeEvent" msprop:Generator_RowClassName="BatchListRow">
<xs:element name="BatchList" msprop:Generator_TableClassName="BatchListDataTable" msprop:Generator_TableVarName="tableBatchList" msprop:Generator_RowChangedName="BatchListRowChanged" msprop:Generator_TablePropName="BatchList" msprop:Generator_RowDeletingName="BatchListRowDeleting" msprop:Generator_RowChangingName="BatchListRowChanging" msprop:Generator_RowEvHandlerName="BatchListRowChangeEventHandler" msprop:Generator_RowDeletedName="BatchListRowDeleted" msprop:Generator_RowClassName="BatchListRow" msprop:Generator_UserTableName="BatchList" msprop:Generator_RowEvArgName="BatchListRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="BatchID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnBatchID" msprop:Generator_ColumnPropNameInRow="BatchID" msprop:Generator_ColumnPropNameInTable="BatchIDColumn" msprop:Generator_UserColumnName="BatchID" type="xs:int" />
@@ -481,7 +481,7 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Materials" msprop:Generator_TableClassName="MaterialsDataTable" msprop:Generator_TableVarName="tableMaterials" msprop:Generator_TablePropName="Materials" msprop:Generator_RowDeletingName="MaterialsRowDeleting" msprop:Generator_RowChangingName="MaterialsRowChanging" msprop:Generator_RowEvHandlerName="MaterialsRowChangeEventHandler" msprop:Generator_RowDeletedName="MaterialsRowDeleted" msprop:Generator_UserTableName="Materials" msprop:Generator_RowChangedName="MaterialsRowChanged" msprop:Generator_RowEvArgName="MaterialsRowChangeEvent" msprop:Generator_RowClassName="MaterialsRow">
<xs:element name="Materials" msprop:Generator_TableClassName="MaterialsDataTable" msprop:Generator_TableVarName="tableMaterials" msprop:Generator_RowChangedName="MaterialsRowChanged" msprop:Generator_TablePropName="Materials" msprop:Generator_RowDeletingName="MaterialsRowDeleting" msprop:Generator_RowChangingName="MaterialsRowChanging" msprop:Generator_RowEvHandlerName="MaterialsRowChangeEventHandler" msprop:Generator_RowDeletedName="MaterialsRowDeleted" msprop:Generator_RowClassName="MaterialsRow" msprop:Generator_UserTableName="Materials" msprop:Generator_RowEvArgName="MaterialsRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="MatID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnMatID" msprop:Generator_ColumnPropNameInRow="MatID" msprop:Generator_ColumnPropNameInTable="MatIDColumn" msprop:Generator_UserColumnName="MatID" type="xs:int" />
@@ -513,7 +513,7 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ItemList" msprop:Generator_TableClassName="ItemListDataTable" msprop:Generator_TableVarName="tableItemList" msprop:Generator_TablePropName="ItemList" msprop:Generator_RowDeletingName="ItemListRowDeleting" msprop:Generator_RowChangingName="ItemListRowChanging" msprop:Generator_RowEvHandlerName="ItemListRowChangeEventHandler" msprop:Generator_RowDeletedName="ItemListRowDeleted" msprop:Generator_UserTableName="ItemList" msprop:Generator_RowChangedName="ItemListRowChanged" msprop:Generator_RowEvArgName="ItemListRowChangeEvent" msprop:Generator_RowClassName="ItemListRow">
<xs:element name="ItemList" msprop:Generator_TableClassName="ItemListDataTable" msprop:Generator_TableVarName="tableItemList" msprop:Generator_RowChangedName="ItemListRowChanged" msprop:Generator_TablePropName="ItemList" msprop:Generator_RowDeletingName="ItemListRowDeleting" msprop:Generator_RowChangingName="ItemListRowChanging" msprop:Generator_RowEvHandlerName="ItemListRowChangeEventHandler" msprop:Generator_RowDeletedName="ItemListRowDeleted" msprop:Generator_RowClassName="ItemListRow" msprop:Generator_UserTableName="ItemList" msprop:Generator_RowEvArgName="ItemListRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="ItemID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnItemID" msprop:Generator_ColumnPropNameInRow="ItemID" msprop:Generator_ColumnPropNameInTable="ItemIDColumn" msprop:Generator_UserColumnName="ItemID" type="xs:int" />
@@ -580,7 +580,7 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OrderList" msprop:Generator_TableClassName="OrderListDataTable" msprop:Generator_TableVarName="tableOrderList" msprop:Generator_TablePropName="OrderList" msprop:Generator_RowDeletingName="OrderListRowDeleting" msprop:Generator_RowChangingName="OrderListRowChanging" msprop:Generator_RowEvHandlerName="OrderListRowChangeEventHandler" msprop:Generator_RowDeletedName="OrderListRowDeleted" msprop:Generator_UserTableName="OrderList" msprop:Generator_RowChangedName="OrderListRowChanged" msprop:Generator_RowEvArgName="OrderListRowChangeEvent" msprop:Generator_RowClassName="OrderListRow">
<xs:element name="OrderList" msprop:Generator_TableClassName="OrderListDataTable" msprop:Generator_TableVarName="tableOrderList" msprop:Generator_RowChangedName="OrderListRowChanged" msprop:Generator_TablePropName="OrderList" msprop:Generator_RowDeletingName="OrderListRowDeleting" msprop:Generator_RowChangingName="OrderListRowChanging" msprop:Generator_RowEvHandlerName="OrderListRowChangeEventHandler" msprop:Generator_RowDeletedName="OrderListRowDeleted" msprop:Generator_RowClassName="OrderListRow" msprop:Generator_UserTableName="OrderList" msprop:Generator_RowEvArgName="OrderListRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="OrdCod" msprop:Generator_ColumnVarNameInTable="columnOrdCod" msprop:Generator_ColumnPropNameInRow="OrdCod" msprop:Generator_ColumnPropNameInTable="OrdCodColumn" msprop:Generator_UserColumnName="OrdCod">
@@ -658,7 +658,7 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BatchReqList" msprop:Generator_TableClassName="BatchReqListDataTable" msprop:Generator_TableVarName="tableBatchReqList" msprop:Generator_TablePropName="BatchReqList" msprop:Generator_RowDeletingName="BatchReqListRowDeleting" msprop:Generator_RowChangingName="BatchReqListRowChanging" msprop:Generator_RowEvHandlerName="BatchReqListRowChangeEventHandler" msprop:Generator_RowDeletedName="BatchReqListRowDeleted" msprop:Generator_UserTableName="BatchReqList" msprop:Generator_RowChangedName="BatchReqListRowChanged" msprop:Generator_RowEvArgName="BatchReqListRowChangeEvent" msprop:Generator_RowClassName="BatchReqListRow">
<xs:element name="BatchReqList" msprop:Generator_TableClassName="BatchReqListDataTable" msprop:Generator_TableVarName="tableBatchReqList" msprop:Generator_RowChangedName="BatchReqListRowChanged" msprop:Generator_TablePropName="BatchReqList" msprop:Generator_RowDeletingName="BatchReqListRowDeleting" msprop:Generator_RowChangingName="BatchReqListRowChanging" msprop:Generator_RowEvHandlerName="BatchReqListRowChangeEventHandler" msprop:Generator_RowDeletedName="BatchReqListRowDeleted" msprop:Generator_RowClassName="BatchReqListRow" msprop:Generator_UserTableName="BatchReqList" msprop:Generator_RowEvArgName="BatchReqListRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="BatchID" msprop:Generator_ColumnVarNameInTable="columnBatchID" msprop:Generator_ColumnPropNameInRow="BatchID" msprop:Generator_ColumnPropNameInTable="BatchIDColumn" msprop:Generator_UserColumnName="BatchID" type="xs:int" />
@@ -698,9 +698,9 @@ SELECT BatchID, OrdCod FROM BatchReqList WHERE (BatchID = @BatchID) AND (OrdCod
</xs:element>
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="FK_ItemList_Materials1" msdata:parent="Materials" msdata:child="ItemList" msdata:parentkey="MatID" msdata:childkey="MatID" msprop:Generator_UserChildTable="ItemList" msprop:Generator_ChildPropName="GetItemListRows" msprop:Generator_UserRelationName="FK_ItemList_Materials1" msprop:Generator_ParentPropName="MaterialsRow" msprop:Generator_RelationVarName="relationFK_ItemList_Materials1" msprop:Generator_UserParentTable="Materials" />
<msdata:Relationship name="FK_ItemList_OrderList1" msdata:parent="OrderList" msdata:child="ItemList" msdata:parentkey="OrdCod" msdata:childkey="OrdCod" msprop:Generator_UserChildTable="ItemList" msprop:Generator_ChildPropName="GetItemListRows" msprop:Generator_UserRelationName="FK_ItemList_OrderList1" msprop:Generator_RelationVarName="relationFK_ItemList_OrderList1" msprop:Generator_UserParentTable="OrderList" msprop:Generator_ParentPropName="OrderListRow" />
<msdata:Relationship name="FK_BatchReqList_OrderList" msdata:parent="OrderList" msdata:child="BatchReqList" msdata:parentkey="OrdCod" msdata:childkey="OrdCod" msprop:Generator_UserChildTable="BatchReqList" msprop:Generator_ChildPropName="GetBatchReqListRows" msprop:Generator_UserRelationName="FK_BatchReqList_OrderList" msprop:Generator_ParentPropName="OrderListRow" msprop:Generator_RelationVarName="relationFK_BatchReqList_OrderList" msprop:Generator_UserParentTable="OrderList" />
<msdata:Relationship name="FK_ItemList_Materials1" msdata:parent="Materials" msdata:child="ItemList" msdata:parentkey="MatID" msdata:childkey="MatID" msprop:Generator_UserChildTable="ItemList" msprop:Generator_ChildPropName="GetItemListRows" msprop:Generator_UserRelationName="FK_ItemList_Materials1" msprop:Generator_RelationVarName="relationFK_ItemList_Materials1" msprop:Generator_UserParentTable="Materials" msprop:Generator_ParentPropName="MaterialsRow" />
<msdata:Relationship name="FK_ItemList_OrderList1" msdata:parent="OrderList" msdata:child="ItemList" msdata:parentkey="OrdCod" msdata:childkey="OrdCod" msprop:Generator_UserChildTable="ItemList" msprop:Generator_ChildPropName="GetItemListRows" msprop:Generator_UserRelationName="FK_ItemList_OrderList1" msprop:Generator_ParentPropName="OrderListRow" msprop:Generator_RelationVarName="relationFK_ItemList_OrderList1" msprop:Generator_UserParentTable="OrderList" />
<msdata:Relationship name="FK_BatchReqList_OrderList" msdata:parent="OrderList" msdata:child="BatchReqList" msdata:parentkey="OrdCod" msdata:childkey="OrdCod" msprop:Generator_UserChildTable="BatchReqList" msprop:Generator_ChildPropName="GetBatchReqListRows" msprop:Generator_UserRelationName="FK_BatchReqList_OrderList" msprop:Generator_RelationVarName="relationFK_BatchReqList_OrderList" msprop:Generator_UserParentTable="OrderList" msprop:Generator_ParentPropName="OrderListRow" />
</xs:appinfo>
</xs:annotation>
</xs:schema>
+6
View File
@@ -0,0 +1,6 @@
namespace AppData
{
internal class List<T1, T2>
{
}
}
+1
View File
@@ -36,6 +36,7 @@
<!--Configurazioni generali-->
<add key="intUpdatePagina_ms" value="120000" />
<add key="appName" value="NKC" />
<add key="CodModulo" value="NKC" />
<add key="copyRight" value="Egaltech &amp; Steamware " />
<!--area logger-->
<add key="_logDir" value="~/logs/" />
@@ -75,7 +75,7 @@ namespace NKC_WF.WebUserControls
{
// invia a redis a a richiesta...
ComLib.sendMaterials();
ComLib.sendBatchReq(BatchId);
ComLib.sendBatchReq(BatchId, "Estimation");
// registro su DB nesting iniziato...
DataLayer.man.taBL.updateStatus(BatchId, (int)ComLib.BatchStatus.EstimationRequested);
@@ -94,7 +94,7 @@ namespace NKC_WF.WebUserControls
{
// invia a redis a a richiesta...
ComLib.sendMaterials();
ComLib.sendBatchReq(BatchId);
ComLib.sendBatchReq(BatchId,"Nesting");
// registro su DB nesting iniziato...
DataLayer.man.taBL.updateStatus(BatchId, (int)ComLib.BatchStatus.NestRequested);