E10 - Print BAQReport from C#

Hello all,

I’m trying to add a button to generate a print preview of a BAQReport to a dashboard assembly. The code compiles and it appears that the job is submitted to the SystemAgent (it’s in the list) but it shows the following error:

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: Root element is missing.

here is the main part of the code that is generating the report parameters:

		using (var svcBAQRpt = WCFServiceSupport.CreateImpl<Ice.Proxy.Rpt.BAQReportImpl> (otSession, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.BAQReportSvcContract>.UriPath))
		{
	
			// GET DEFAULT REPORT PARAMETERS
			var dsBAQReport = svcBAQRpt.GetNewParameters();				
			
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["BAQRptID"] = "JobSchedule";
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["ReportID"] = "JobSchedule";
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["BAQID"] = "JobSchedule";
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["AutoAction"] = "SSRSPREVIEW";
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["AgentID"] = agentID;
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["ReportStyleNum"] = 1;
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["WorkstationID"] = workStation;
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["SSRSRenderFormat"] = "PDF";
			dsBAQReport.Tables["BAQReportParam"].Rows[0]["TaskNote"] = string.Format("JPK", 2);

			svcBAQRpt.SubmitToAgent(dsBAQReport, agentID, 0, 0, "Epicor.Mfg.UIRpt.BAQReport");

			MessageBox.Show("Report Submitted to System Agent");
		}

=======================================================================================

Has anyone seen this and can point me in the right direction?

Thank you in advance,
Josh

BAQReports need a filter (XML) with the filters to be supplied. Like this

var rptDs = dynamicReport.GetByID("EDI870EXPORT");
		var baqRptDS = baqR.GetNewBAQReportParam("EDI870EXPORT");
		baqRptDS.BAQReportParam[0].Option01 = guid.ToString();
		baqRptDS.BAQReportParam[0].AutoAction="SSRSGenerate";
		baqRptDS.BAQReportParam[0].SSRSRenderFormat = "CSV";
		baqRptDS.BAQReportParam[0].Character01=guid.ToString();
		baqRptDS.BAQReportParam[0].Character02=flag;
		baqRptDS.BAQReportParam[0].BAQRptID="EDI870EXPORT";
		baqRptDS.BAQReportParam[0].ReportID="EDI870EXPORT";
		baqRptDS.BAQReportParam[0].Summary = false;
		baqRptDS.BAQReportParam[0].ReportStyleNum = 1002;
		baqRptDS.BAQReportParam[0].BAQID="FAM-EDI870-DASHBOARD";
		baqRptDS.BAQReportParam[0].ReportTitle = "EDI 870 Export";
		baqRptDS.BAQReportParam[0].TaskNote = guid.ToString();
		rptDs.BAQRptOptionFld[0].FieldValue = guid.ToString();
	
		rptDs.AcceptChanges();
		StringWriter writer = new StringWriter();
		rptDs.WriteXml(writer);
		baqRptDS.BAQReportParam[0].Filter1 = writer.ToString();
2 Likes

Hello Jose. I wonder if the other newbies who post hope you are the one that jumps in to help, just like I was? :slight_smile: Having folks like you around is invaluable to those of use who are novices to C# and Epicor programming.

In any event, this helped a lot. I saw a similar set of code on github but didn’t know that this method was required for BAQReports so I stayed on the path of a standard print generation I used in the general forms. With the code you supplied and some additional assemblies I was able to get a print to generate. However, I was hoping to preview the report, not just generate it and i want it to go through the agent.

So when i went in and changed SSRSGenerate to SSRSPreview, and added in the submit to agent bit and it looks to complete correctly. However, nothing ever ends up under the reports tab and/or launches the PDF program to display. Is there another trick to get this outcome?

Thanks,
Josh

The issue there is generally the Workstation, in order for the report to print or generate properly you must pass a valid workstation ID.
What are you passing in to that value?

I’m pulling that in from the session…

			Session otSession = (Session)oTrans.Session;		
			string workStation = Ice.Lib.Report.EpiReportFunctions.GetWorkStationID(otSession);

This appears to be my computer name + 1 (ie: DESKTOP187 1)

Nevermind that last bit! You were 100% correct.

I suppose it would help if i had added the workstation parameter back in after i copied the code you provided in!

Thank you very much for your assistance today!

1 Like

It is not always Workstatin + 1, use the function as shown :slight_smile:

Hi Team

Trying to do something similar as above but getting errors. Any help would be much appreciate. This is the first time we have attempting any custom code

using (var svcBAQRpt = WCFServiceSupport.CreateImpl<Ice.Proxy.Rpt.BAQReportImpl> (otSession, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.BAQReportSvcContract>.UriPath))
{

  	// GET DEFAULT REPORT PARAMETERS
  	var dsBAQReport = svcBAQRpt.GetNewParameters();				
  	
  dsBAQReport.Tables["BAQReportParam"].Rows[0]["BAQRptID"] = "TankLabelPrint";
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["ReportID"] = "TankLabelPrint";
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["BAQID"] = "TankLabelPrint";
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["AutoAction"] = "SSRSPREVIEW";
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["AgentID"] = agentID;
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["ReportStyleNum"] = 1;
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["WorkstationID"] = workStation;
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["SSRSRenderFormat"] = "PDF";
  	dsBAQReport.Tables["BAQReportParam"].Rows[0]["TaskNote"] = string.Format("JPK", 2);

var rptDs = dynamicReport.GetByID(“TankLabelPrint”);
var baqRptDS = baqR.GetNewBAQReportParam(“TankLabelPrint”);
baqRptDS.BAQReportParam[0].Option01 = guid.ToString();
baqRptDS.BAQReportParam[0].AutoAction=“SSRSGenerate”;
baqRptDS.BAQReportParam[0].SSRSRenderFormat = “PDF”;
baqRptDS.BAQReportParam[0].Character01=guid.ToString();
baqRptDS.BAQReportParam[0].Character02=flag;
baqRptDS.BAQReportParam[0].BAQRptID=“TankLabelPrint”;
baqRptDS.BAQReportParam[0].ReportID=“TankLabelPrint”;
baqRptDS.BAQReportParam[0].Summary = false;
baqRptDS.BAQReportParam[0].ReportStyleNum = 1002;
baqRptDS.BAQReportParam[0].BAQID=“TankLabelPrint”;
baqRptDS.BAQReportParam[0].ReportTitle = “TankLabelPrint”;
baqRptDS.BAQReportParam[0].TaskNote = guid.ToString();
rptDs.BAQRptOptionFld[0].FieldValue = guid.ToString();

  rptDs.AcceptChanges();
  StringWriter writer = new StringWriter();
  rptDs.WriteXml(writer);
  baqRptDS.BAQReportParam[0].Filter1 = writer.ToString();


  	svcBAQRpt.SubmitToAgent(dsBAQReport, agentID, 0, 0, "Epicor.Mfg.UIRpt.TankLabelPrint");

  	MessageBox.Show("Report Submitted to System Agent");
  }

Here is the error message I am getting:

Server Side Exception

There is at least one compilation error.

Exception caught in: Epicor.ServiceModel

Error Detail

Description: There is at least one compilation error.
Details:
Error CS0103: The name ‘WCFServiceSupport’ does not exist in the current context [PostTran.TankLabelPaint.cs(115,36)]
Error CS0234: The type or namespace name ‘Rpt’ does not exist in the namespace ‘Ice.Proxy’ (are you missing an assembly reference?) [PostTran.TankLabelPaint.cs(115,75)]
Error CS0103: The name ‘otSession’ does not exist in the current context [PostTran.TankLabelPaint.cs(115,95)]
Error CS0234: The type or namespace name ‘BAQReportSvcContract’ does not exist in the namespace ‘Ice.Contracts’ (are you missing an assembly reference?) [PostTran.TankLabelPaint.cs(115,158)]
Error CS0103: The name ‘agentID’ does not exist in the current context [PostTran.TankLabelPaint.cs(125,62)]
Error CS0103: The name ‘workStation’ does not exist in the current context [PostTran.TankLabelPaint.cs(127,68)]
Error CS0103: The name ‘dynamicReport’ does not exist in the current context [PostTran.TankLabelPaint.cs(131,13)]
Error CS0103: The name ‘baqR’ does not exist in the current context [PostTran.TankLabelPaint.cs(132,18)]
Error CS0103: The name ‘guid’ does not exist in the current context [PostTran.TankLabelPaint.cs(133,41)]
Error CS0103: The name ‘guid’ does not exist in the current context [PostTran.TankLabelPaint.cs(136,42)]
Error CS0103: The name ‘flag’ does not exist in the current context [PostTran.TankLabelPaint.cs(137,42)]
Error CS0103: The name ‘guid’ does not exist in the current context [PostTran.TankLabelPaint.cs(144,41)]
Error CS0103: The name ‘guid’ does not exist in the current context [PostTran.TankLabelPaint.cs(145,41)]
Error CS0246: The type or namespace name ‘StringWriter’ could not be found (are you missing a using directive or an assembly reference?) [PostTran.TankLabelPaint.cs(148,3)]
Error CS0246: The type or namespace name ‘StringWriter’ could not be found (are you missing a using directive or an assembly reference?) [PostTran.TankLabelPaint.cs(148,29)]
Error CS0103: The name ‘agentID’ does not exist in the current context [PostTran.TankLabelPaint.cs(153,41)]
Error CS0103: The name ‘MessageBox’ does not exist in the current context [PostTran.TankLabelPaint.cs(155,4)]
Program: Epicor.Customization.dll
Method: PrepareException
Line Number: 99
Column Number: 13
Server Trace Stack: at Epicor.Customization.Standard.CustomizationCompiler.PrepareException(CompilerErrorCollection errors) in c:_Releases\ICE\3.1.400.33\Source\Framework\Epicor.Customization\Standard\CustomizationCompiler.cs:line 99
at Epicor.Customization.Standard.CustomizationCompiler.Compile(BuildEnvironment input, String outputAssembly) in c:_Releases\ICE\3.1.400.33\Source\Framework\Epicor.Customization\Standard\CustomizationCompiler.cs:line 29
at Epicor.Customization.Standard.CustomizationBuilder.Process(CustomizationProject project) in c:_Releases\ICE\3.1.400.33\Source\Framework\Epicor.Customization\Standard\CustomizationBuilder.cs:line 78
at Ice.Services.BO.BpMethodSvc.AfterUpdate() in c:_Releases\ICE\3.1.400.33\Source\Server\Services\BO\BpMethod\BpMethod.Events.cs:line 85
at Ice.Services.Trace.TablesetProfilingCollector.DoTablesetEventTrace(String tablesetName, String methodName, Action action) in c:_Releases\ICE\3.1.400.33\Source\Framework\Epicor.Ice\Services\TablesetProfilingCollector.cs:line 200
at Ice.TablesetBound3.InnerUpdate(IceDataContext dataContext, TFullTableset tableset) in c:\_Releases\ICE\3.1.400.33\Source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 813 at Ice.Services.BO.BpMethodSvc.Update(BpMethodTableset& ds) in c:\_Releases\ICE\3.1.400.33\Source\Server\Services\BO\BpMethod\BpMethod.Designer.cs:line 835 at Ice.Services.BO.BpMethodSvcFacade.Update(BpMethodTableset& ds) in c:\_Releases\ICE\3.1.400.33\Source\Server\Services\BO\BpMethod\BpMethodSvcFacade.cs:line 224 at SyncInvokeUpdate(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func2 func) in c:_Releases\ICE\3.1.400.33\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in c:\_Releases\ICE\3.1.400.33\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 28 at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) in c:\_Releases\ICE\3.1.400.33\Source\Framework\Epicor.System\Hosting\Wcf\EpiOperationInvoker.cs:line 23 at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result) at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.SecurityChannelListener1.ReceiveItemAndVerifySecurityAsyncResult`2.InnerTryReceiveCompletedCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object state)
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Security.NegotiateStream.ProcessFrameBody(Int32 readBytes, Byte buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest asyncRequest)
at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result)
at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object state)
at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

Client Stack Trace

at Epicor.ServiceModel.Channels.ImplBase1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets) at Ice.Proxy.BO.BpMethodImpl.Update(BpMethodDataSet ds) at Ice.Adapters.BpMethodAdapter.OnUpdate() at Ice.Lib.Framework.EpiBaseAdapter.Update() at Ice.UI.App.BpTriggerEntry.Transactions.MainTransaction.adapterUpdate() at Ice.Lib.Framework.EpiMultiViewTransaction.Update(IEnumerable1 dataSets)

@josecgomez @JKage

I am getting this error when trying from a button launch. This is my code so far,

private void epiButtonC1_Click(object sender, System.EventArgs args)
{
	Ice.Core.Session otSession = (Ice.Core.Session)oTrans.Session;
	var svcBAQRpt =  WCFServiceSupport.CreateImpl<Ice.Proxy.Rpt.BAQReportImpl> (otSession, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.BAQReportSvcContract>.UriPath);

	
}

I am trying to print a BAQ SSRS Report on a button click.

Any ideas?

Blockquote
Error: CS0234 - line 62 (162) - The type or namespace name ‘Rpt’ does not exist in the namespace ‘Ice.Proxy’ (are you missing an assembly reference?)
Error: CS0234 - line 62 (162) - The type or namespace name ‘BAQReportSvcContract’ does not exist in the namespace ‘Ice.Contracts’ (are you missing an assembly reference?)

Blockquote

@JKage Would you post your code including assembly references?

To clarify, you are trying to print a BAQ Report via a button press in a customization, not within a BPM… correct?

1 Like

@JKage That is exactly what I am trying to do!

I am trying to print it to print a BAQ Report (SSRS) from a customizaiton.

The report has parameters and I want to print it to a specific printer.

If I could just get it to print that would make my day.

I’ve worked this into my code which is doing a bunch of other stuff now so I’m not entirely sure what using statements need to be in here. So here are all of them…

using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Ice.BO;
using Ice.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
using Ice.Core;

using Erp.BO;
using Erp.UI;
using Erp.Adapters;

using System.Drawing;
using Infragistics.Win.UltraWinToolbars;
using System.Threading;
using System.IO;

Under “Tools” → “Assembly Reference Manager”, i added the following custom assemblies in.

image

here is the code for my button press that sends the report to the system agent:

================================================================================
private void epiBtnPrintPrevRPT_Click(object sender, System.EventArgs args)
{
// ** Place Event Handling Code Here **

	string agentID = "";

	try
	{
		Session otSession = (Session)oTrans.Session;		

		//Set the workstationID
		string workStation = Ice.Lib.Report.EpiReportFunctions.GetWorkStationID(otSession);
		
		//Get or Set the AgentID
		using (var aSA = new SysAgentAdapter(oTrans))
		{
			oTrans.PushStatusText("Get System Agent Info", true);

			aSA.BOConnect();
			aSA.GetDefaultTaskAgentID(out agentID);
			if (!string.IsNullOrEmpty(agentID)) { agentID = "SystemTaskAgent"; }
		}

			//MessageBox.Show(agentID + ", " + workStation);

		{
	   	 var baqR = WCFServiceSupport.CreateImpl<Ice.Proxy.Rpt.BAQReportImpl>((Session)oTrans.Session, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.BAQReportSvcContract>.UriPath);
			var dynamicReport = WCFServiceSupport.CreateImpl<Ice.Proxy.BO.DynamicReportImpl>((Session)oTrans.Session, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.DynamicReportSvcContract>.UriPath);
			var rptMonitor = WCFServiceSupport.CreateImpl<Ice.Proxy.BO.ReportMonitorImpl>((Session)oTrans.Session, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.ReportMonitorSvcContract>.UriPath);

		
	
			// GET DEFAULT REPORT PARAMETERS
			var rptDs = dynamicReport.GetByID("XXXnameofBAQ-RPTxxx");
			var baqRptDS = baqR.GetNewBAQReportParam("XXXnameofBAQ-RPTxxx");
				//baqRptDS.BAQReportParam[0].Option01 = guid.ToString();
				baqRptDS.BAQReportParam[0].AutoAction="SSRSPREVIEW";
				baqRptDS.BAQReportParam[0].WorkstationID=workStation;
				baqRptDS.BAQReportParam[0].SSRSRenderFormat = "PDF";
				baqRptDS.BAQReportParam[0].Character01="PrintPrev";
				//baqRptDS.BAQReportParam[0].Character02=flag;
				baqRptDS.BAQReportParam[0].BAQRptID="XXXnameofBAQ-RPTxxx";
				baqRptDS.BAQReportParam[0].ReportID="XXXnameofBAQ-RPTxxx";
				baqRptDS.BAQReportParam[0].Summary = false;
				baqRptDS.BAQReportParam[0].ReportStyleNum = 1;
				baqRptDS.BAQReportParam[0].BAQID="XXXnameofBAQusedinBAQ-Rpt";
				baqRptDS.BAQReportParam[0].ReportTitle = "Title of Report";
				//baqRptDS.BAQReportParam[0].TaskNote = guid.ToString();
				//rptDs.BAQRptOptionFld[0].FieldValue = guid.ToString();
			
				rptDs.AcceptChanges();
				StringWriter writer = new StringWriter();
			rptDs.WriteXml(writer);
			baqRptDS.BAQReportParam[0].Filter1 = writer.ToString();

			//baqR.RunDirect(baqRptDS);
			baqR.SubmitToAgent(baqRptDS, agentID, 0, 0, "Epicor.Mfg.UIRpt.BAQReport");

			MessageBox.Show("Report Submitted to System Agent for processing.");
		}

	}
	catch (Exception ex)
	{
		MessageBox.Show("An error occured trying to print report." + ex.Message);
	
	}

}

==================================================================================

@JKage So if I am in my test environment and use that session, it will not affect or submit the task to the Live agent right?

Thank you so much for the code.

No problem. No point in struggling if someone else has already went through the trouble!

It shouldn’t submit to the live task agent. It will submit it to whatever task agent is associated with the currently running instance of Epicor.

Thanks,
Josh

When I see “XXXnameofBAQ-RPTxxx” in the code, is that my BAQReport ID?

@JKage

you are awesome, thank you so much and have a fantastic weekend!

Yes. Update those entries with your info. The first several are all the name of the BAQ Report that you created within “BAQ Report Designer”. The one entry is asking for the actual BAQ name that the BAQ Report uses, which is also listed in the BAQ Report Designer screen.

@JKage and if I have parameter fields I would just add a line like

baqRptDS.BAQReportParam[0].Field1 = “Buddy Label”;

Hmm… not sure it works that way. The BAQReportParams are what get pushed to the SSRS Reporting DB in a separate parameter table along side each print job. I think they are a defined set of fields that get sent in, not your own custom fields or fields from the regular tables. I never attempted to send info into the report that way so I may be wrong! I’ll list the fields that i think are available for use at the end of the reply.

To pass data into my report, I used the line “baqRptDS.BAQReportParam[0].Character01=” to set that field to a variable containing data that i needed to use to filter the report on withing SSRS.

Hope this makes sense.

RptLanguageID
AgentCompareString
ArchiveCode
AttachmentType
AutoAction
BAQID
BAQRptID
Character01
Character02
Character03
Character04
Character05
Check01
Check02
Check03
Check04
Check05
Check06
Check07
Check08
Check09
Check10
Cur-Comp
CUR-LangID
Cur-Plant
Cur-TaskClientID
Cur-WorkStationID
Date01
Date02
Date03
Date04
Date05
DateFormat
DCD-UserID
DecimalsCost
DecimalsGeneral
DecimalsPrice
EMailBCC
EMailBody
EMailCC
EMailTo
FaxNumber
FaxSubject
FaxTo
GlbDecimalsCost
GlbDecimalsGeneral
GlbDecimalsPrice
Number01
Number02
Number03
Number04
Number05
NumericFormat
PrinterName
PrintReportParameters
ProcessCompany
ProcessID
ProcessSystemCode
ProcessTaskNum
RecurringTask
ReportCultureCode
ReportCurrencyCode
ReportID
ReportStyleNum
ReportTitle
RptFileType
RptPageSettings
RptPrinterSettings
RptVersion
SortBy
SortFields
SSRSEnableRouting
SSRSRenderFormat
Summary
TaskNote
UIXml
UserID
WorkstationID
Option01
Option02
Option03
Option04
Option05
Option06
Option07
Option08
Option09
Option10