@Bart_Elia By the way these methods work perfect in a Customization and they are fast, little to no session initialization (loading): which is also an option
Prototype Code, Needs a little Refactoring… but gist:
Runs BAQ via BO or Adapter as a SA_GLOBAL User… License is requested and also released properly.
public System.Data.DataSet GetBAQDataSetDataTagFromMainCompany_BO(string partNum, string partRev)
{
System.Data.DataSet results = null;
try
{
using (var newSession = new Ice.Core.Session("SA_GLOBAL", "ChrisConnPie!"))
{
removeEventhandlers(newSession);
// Declare and Initialize Variables
string BAQName = "SMI-zGetDataTagByPartRev";
Ice.BO.QueryExecutionDataSet ds = new Ice.BO.QueryExecutionDataSet();
// Add Parameter Rows
ds.ExecutionParameter.AddExecutionParameterRow("PartNum", partNum, "nvarchar", false, Guid.Empty, "A");
ds.ExecutionParameter.AddExecutionParameterRow("RevisionNum", partRev, "nvarchar", false, Guid.Empty, "A");
// Use Business Object Directly
Ice.Proxy.BO.DynamicQueryImpl dynamicQuery = Ice.Lib.Framework.WCFServiceSupport.CreateImpl<Ice.Proxy.BO.DynamicQueryImpl>(newSession, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.DynamicQuerySvcContract>.UriPath);
results = dynamicQuery.ExecuteByID(BAQName, ds);
// var mod =(Ice.Proxy.Lib.SessionModImpl)sessionx.Variable("sessionMod");
// mod.Logout();
}
}
catch (System.Exception ex)
{
ExceptionBox.Show(ex);
}
return results;
}
Adapter Version:
public System.Data.DataSet GetBAQDataSetDataTagFromMainCompany_ADAPTER(string partNum, string partRev)
{
using (var newSession = new Ice.Core.Session("SA_GLOBAL", "ChrisConnPie!"))
{
ILauncher iLnch = new ILauncher( newSession );
using (var newTransaction = new EpiTransaction(iLnch))
using (var adapterDynamicQuery = new DynamicQueryAdapter(newTransaction))
{
adapterDynamicQuery.BOConnect();
// Declare and Initialize Variables
string BAQName = "SMI-zGetDataTagByPartRev";
Ice.BO.QueryExecutionDataSet ds = new Ice.BO.QueryExecutionDataSet();
// Add Parameter Rows
ds.ExecutionParameter.AddExecutionParameterRow("PartNum", partNum, "nvarchar", false, Guid.Empty, "A");
ds.ExecutionParameter.AddExecutionParameterRow("RevisionNum", partRev, "nvarchar", false, Guid.Empty, "A");
// Call Adapter method
adapterDynamicQuery.ExecuteByID(BAQName, ds);
System.Data.DataSet results = adapterDynamicQuery.QueryResults;
return results;
}
// Cleanup Adapter Reference
//adapterDynamicQuery.Dispose();
}
return null;
}