Company Change Approaches on the Server

@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;
}