By clicking on a button, open the build project analysis form for this project

Hi,

I’m creating a Project Dashboard for my company before we implement Epicor. In my dashboard, I have the ProjectID. I want to be able to click on a button to open the ‘Build Project Analysis’ form FOR THIS PROJECT.

image

I know how to open a form:

LaunchFormOptions lfo = new LaunchFormOptions();
ProcessCaller.LaunchForm(oTrans, MENU_ID, lfo);

But not sure about filters applied to this form or any easier way to do this.

Thanks

You can assign a Hot Key through Tools | Options and then put text on your form that says, “Press F5 for Build Process Analysis”

Mark W.

Seems like I don’t have ‘Build Project Analysis’ in my command options. Also, I guess that it simple opens the form without filtering for the active project by doing so?

I won’t lie that it won’t be ideal for us since I would prefer people to see that they opened the right window with the right project selected.

BPA is only available in Project Entry in case you’re trying to run it in Project Tracker. When I press F5, it does filter the current project:

image

Well, we used a pre defined dashboard created by another company but I’m updating it to our needs. For now, I can open the form when clicking on a button but I just need the project to be added in this Filter list.

Might I suggest running a trace then calling the Build Project Analysis manually to see the desired parameters. Another option is decompiling the Build Project Analysis dll and see what the code is doing with the passed params.

1 Like

Here is what I got. Honestly, not sure what to do with that since it calls the agent. I understood the concept when I needed to call the API but it was simplier :

<tracePacket>
  <businessObject>Erp.Proxy.Proc.ProjectAnalImpl</businessObject>
  <methodName>SubmitToAgent</methodName>
  <appServerUri>net.tcp:(server)</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>11/12/2018 16:27:40:0892088 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="64" roundTrip="54" channel="0" bpm="0" other="10" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.Proc.ProjectAnalDataSet">
      <ProjectAnalDataSet xmlns="http://www.epicor.com/Ice/300/Proc/ProjectAnal/ProjectAnal">
        <ProjAnalParam>
          <ProjectList>QS180596</ProjectList>
          <SaveCopy>false</SaveCopy>
          <UpliftPrjRev>false</UpliftPrjRev>
          <AsOfDate>2018-11-12T00:00:00-05:00</AsOfDate>
          <RegenAnal>false</RegenAnal>
          <AutoReGen>false</AutoReGen>
          <LastRGDate>2018-11-12T00:00:00-05:00</LastRGDate>
          <BuildProjCommit>false</BuildProjCommit>
          <ShowCostsMakeFromJob>false</ShowCostsMakeFromJob>
          <SysRowID>00000000-0000-0000-0000-000000000000</SysRowID>
          <AutoAction></AutoAction>
          <PrinterName></PrinterName>
          <AgentSchedNum>0</AgentSchedNum>
          <AgentID>SystemTaskAgent</AgentID>
          <AgentTaskNum>0</AgentTaskNum>
          <RecurringTask>false</RecurringTask>
          <RptPageSettings></RptPageSettings>
          <RptPrinterSettings></RptPrinterSettings>
          <RptVersion></RptVersion>
          <ReportStyleNum>0</ReportStyleNum>
          <WorkstationID>QBCERPTS01 83</WorkstationID>
          <TaskNote></TaskNote>
          <ArchiveCode>0</ArchiveCode>
          <DateFormat>m/d/yyyy</DateFormat>
          <NumericFormat>,.</NumericFormat>
          <AgentCompareString>QS</AgentCompareString>
          <ProcessID></ProcessID>
          <ProcessCompany></ProcessCompany>
          <ProcessSystemCode></ProcessSystemCode>
          <ProcessTaskNum>0</ProcessTaskNum>
          <DecimalsGeneral>0</DecimalsGeneral>
          <DecimalsCost>0</DecimalsCost>
          <DecimalsPrice>0</DecimalsPrice>
          <GlbDecimalsGeneral>0</GlbDecimalsGeneral>
          <GlbDecimalsCost>0</GlbDecimalsCost>
          <GlbDecimalsPrice>0</GlbDecimalsPrice>
          <FaxSubject></FaxSubject>
          <FaxTo></FaxTo>
          <FaxNumber></FaxNumber>
          <EMailTo></EMailTo>
          <EMailCC></EMailCC>
          <EMailBCC></EMailBCC>
          <EMailBody></EMailBody>
          <AttachmentType></AttachmentType>
          <ReportCurrencyCode></ReportCurrencyCode>
          <ReportCultureCode></ReportCultureCode>
          <SSRSRenderFormat></SSRSRenderFormat>
          <UIXml></UIXml>
          <PrintReportParameters>false</PrintReportParameters>
          <SSRSEnableRouting>false</SSRSEnableRouting>
          <RowMod>A</RowMod>
        </ProjAnalParam>
      </ProjectAnalDataSet>
    </parameter>
    <parameter name="agentID" type="System.String"><![CDATA[SystemTaskAgent]]></parameter>
    <parameter name="agentSchedNum" type="System.Int64"><![CDATA[0]]></parameter>
    <parameter name="agentTaskNum" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="maintProgram" type="System.String"><![CDATA[Erp.UIProc.GenerateAnalysis]]></parameter>
    <parameter name="CallContext" type="Ice.Bpm.Context.ContextDataSet">
      <ContextDataSet xmlns="http://www.epicor.com/Ice/300/Bpm/Context">
        <BpmData>
          <SysRowID>a905fafe-b121-45c0-be13-081ea88a844b</SysRowID>
        </BpmData>
      </ContextDataSet>
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ProjectList"><![CDATA[QS180596]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="SaveCopy"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="UpliftPrjRev"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AsOfDate"><![CDATA[11/12/2018 12:00:00 AM]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RegenAnal"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AutoReGen"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="LastRGDate"><![CDATA[11/12/2018 12:00:00 AM]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="BuildProjCommit"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ShowCostsMakeFromJob"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="SysRowID"><![CDATA[00000000-0000-0000-0000-000000000000]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AutoAction"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="PrinterName"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AgentSchedNum"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AgentID"><![CDATA[SystemTaskAgent]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AgentTaskNum"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RecurringTask"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RptPageSettings"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RptPrinterSettings"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RptVersion"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ReportStyleNum"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="WorkstationID"><![CDATA[QBCERPTS01 83]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="TaskNote"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ArchiveCode"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="DateFormat"><![CDATA[m/d/yyyy]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="NumericFormat"><![CDATA[,.]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AgentCompareString"><![CDATA[QS]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ProcessID"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ProcessCompany"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ProcessSystemCode"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ProcessTaskNum"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="DecimalsGeneral"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="DecimalsCost"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="DecimalsPrice"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="GlbDecimalsGeneral"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="GlbDecimalsCost"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="GlbDecimalsPrice"><![CDATA[0]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="FaxSubject"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="FaxTo"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="FaxNumber"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="EMailTo"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="EMailCC"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="EMailBCC"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="EMailBody"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="AttachmentType"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ReportCurrencyCode"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="ReportCultureCode"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="SSRSRenderFormat"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="UIXml"><![CDATA[]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="PrintReportParameters"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="SSRSEnableRouting"><![CDATA[False]]></changedValue>
      <changedValue tableName="ProjAnalParam" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

That looks to be the call made FROM the Build Project Analysis, not from the form to open the Build Project Anaylsis window. That’s an option too though, you could bypass that window altogether if you built the call to submit yourself.

Here’s what your looking for I think:

	ProcessCaller.LaunchForm(this, "Erp.UIProc.GenerateAnalysis.dll", new LaunchFormOptions
					{
						IsModal = false,
						ValueIn = this.trans.projectID
					});
1 Like

Thanks a LOT ! I changed it to:

ProcessCaller.LaunchForm(oTrans, "Erp.UIProc.GenerateAnalysis.dll", new LaunchFormOptions
					{
						IsModal = false,
						ValueIn = projectID (a variable)
					});
1 Like