Solved

Error When Creating Opportunity through Customization

  • 23 August 2022
  • 2 replies
  • 73 views

Userlevel 4
Badge +1

Hello,

I am currently trying to add a button to Cases where I can create an opportunity. See below for graph initiation and insert. Note that this is proof of concept.

    #region Actions

public PXAction<PX.Objects.CR.CRCase> CreateOpportunity;

[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Create Opportunity")]
protected void createOpportunity()
{
CRCase cCase = Base.Case.Current;

OpportunityMaint graph = PXGraph.CreateInstance<OpportunityMaint>();

CROpportunity opty = new CROpportunity
{
BAccountID = cCase.CustomerID,
ContactID = cCase.ContactID,
//Status = "N",
//ClassID = "SERVICE",
//StageID = "L",
Subject = cCase.Subject
};

graph.Opportunity.Insert(opty);

if (graph != null)
{
PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.NewWindow);
}
}

#endregion

However, I’m getting an odd error when I try to execute. See below for snip.

Any help regarding this error would be greatly appreciated.

icon

Best answer by Naveen Boga 23 August 2022, 10:35

View original

2 replies

Userlevel 4
Badge +1

@Naveen Boga - that did it. I modified it a little bit, but I no longer get the error.

You are the best, I appreciate the time you spend into this and all my other questions!

Userlevel 7
Badge +17

Hi @rhooper91  Please use the below code, I have verified it from my end and it is working as expected.

 

 public class CRCaseMaintExt : PXGraphExtension<CRCaseMaint>
{
public PXAction<PX.Objects.CR.CRCase> CreateOpportunity;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Create Opportunity")]
protected IEnumerable createOpportunity(PXAdapter adapter)
{

CRCase cCase = Base.Case.Current;
PXLongOperation.StartOperation(Base, delegate ()
{
OpportunityMaint graph = PXGraph.CreateInstance<OpportunityMaint>();
if (cCase != null)
{

CROpportunity objcROpportunity = new CROpportunity
{
Status = "L",
StageID = "P"
};

objcROpportunity.Subject = "Test Subject";
// objcROpportunity.BAccountID = cCase.CustomerID;
graph.Opportunity.Cache.Insert(objcROpportunity);
CRContact objCrContact = graph.Opportunity_Contact.Select();
objCrContact.Email = "Test@Test.com";
objCrContact.FirstName = "Naveen";
graph.Opportunity_Contact.Cache.Update(objCrContact);
graph.Actions.PressSave();

objcROpportunity.BAccountID = cCase.CustomerID;
graph.Opportunity.Cache.Update(objcROpportunity);
graph.Actions.PressSave();
PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.Same);


}
});
return adapter.Get();
}
}

 

 

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved