Hi,
My application releases payment via this event
Is there opportunity to return Checks and Payments item status from “Closed” to “Balanced” ?
Hi,
My application releases payment via this event
Is there opportunity to return Checks and Payments item status from “Closed” to “Balanced” ?
Hi
.
Hi
.
Hi
If I make it void once, will be it possible to to close it after void ?
Hi
You can reverse the applications that closed the check to bring it back to an OPEN state but you cannot get it back to a BALANCED state.
BALANCED → OPEN for AR/AP Documents involves posting to the GL at that point you would need to void(or create a canceling document) instead of deleting or changing the document.
Voiding a check will move it to the voided status.
Hi
now it looks real it implement, I checked void option, all data is saved after void action
Firstly it makes “Hold” status
After that I can remove it from hold
is it possible to call Void and remove Hold status programmatically ?
Yes, it is possible.
you can invoke form Base graph like below.
Base.putonhold.Press();
Base.ReleaseFromHold.Press();
You can reverse the applications that closed the check to bring it back to an OPEN state but you cannot get it back to a BALANCED state.
BALANCED → OPEN for AR/AP Documents involves posting to the GL at that point you would need to void(or create a canceling document) instead of deleting or changing the document.
Voiding a check will move it to the voided status.
Hi
It looks good. Is it possible to call Void and bring item back to OPEN state programmatically ?
I have code that is executed according to automation schedule, that will open folder and checks files which will have list of Checks and Payment Items that must be returned to Open status.
Yes, it is possible.
you can invoke form Base graph like below.
Base.putonhold.Press();
Base.ReleaseFromHold.Press();
In previous comment where I replied to markusray17 I described that I need it to call from code that is called by Acumatica Automation Schedule that will open folder and check files which will have list of Checks and Payment Items that must be returned to Open status. I think it will not be available to call Base graph and there should be list of parameters for Void methods where I define which Item to process ( For example send ReferenceNbr to parameters in method)
Void will void the check and it creates a Voided Check document to cancel out the original check.
Via the APPaymentEntry graph the action is called ReverseApplication so yes you can invoke it programmatically. It creates an inverted application against the check that will move it from closed → open once released. You can invoke actions on graphs by using iGraph(Instance)].eAction].Press().
Edit: if you are making a process screen you will likely want to use PXGraph.CreateInstance to get an instance of the APPaymentEntry graph. You can then set the current document to whatever APPayment you are handling and invoke the necessary actions.
Void will void the check and it creates a Voided Check document to cancel out the original check.
Via the APPaymentEntry graph the action is called ReverseApplication so yes you can invoke it programmatically. It creates an inverted application against the check that will move it from closed → open once released. You can invoke actions on graphs by using iGraph(Instance)].eAction].Press().
Edit: if you are making a process screen you will likely want to use PXGraph.CreateInstance to get an instance of the APPaymentEntry graph. You can then set the current document to whatever APPayment you are handling and invoke the necessary actions.
Hi
Can you provide help with this part :
“if you are making a process screen you will likely want to use PXGraph.CreateInstance to get an instance of the APPaymentEntry graph. You can then set the current document to whatever APPayment you are handling and invoke the necessary actions. ”
I wrote the following way, where I send to graph instance ReferenceNbr of item that must be Voided
string referenceNbr = "023675";
APInvoiceEntry graph = PXGraph.CreateInstance<APInvoiceEntry>();
graph.Document.Current = graph.Document.Search<APInvoice.refNbr>(referenceNbr);
graph.ReverseApplication();
That is how it should be done, firstly I send reference Nbe to instance and after that I call the action, right ?
That looks mostly correct but that is the wrong graph if you are trying to reverse an application.
ReverseApplication is an action on the APPaymentEntry graph. You will typically call an action as
APPaymentEntry.reverseApplication.Press(adapter)
The adapter is optional you can also just call Press(). The case does matter as reverseApplication is the PXAction and ReverseApplication is the handler(you can call this directly but it is generally advisable to use the action, and calling it directly you will have to supply an adapter).
That looks mostly correct but that is the wrong graph if you are trying to reverse an application.
ReverseApplication is an action on the APPaymentEntry graph. You will typically call an action as
APPaymentEntry.reverseApplication.Press(adapter)
The adapter is optional you can also just call Press(). The case does matter as reverseApplication is the PXAction and ReverseApplication is the handler(you can call this directly but it is generally advisable to use the action, and calling it directly you will have to supply an adapter).
I changed type of graph as you mentioned
Will such code make this item “Void” ?
string referenceNbr = "001571";
APPaymentEntry graph = PXGraph.CreateInstance<APPaymentEntry>();
graph.Document.Current = graph.Document.Search<APInvoice.refNbr>(referenceNbr);
graph.reverseApplication.Press();
ReverseApplication just reverses the currently selected application which is the adjustment that applies x amount from the check to a document(usually an AP Invoice).
If you are trying to void a check there is a voidCheck action that you can call in the same way.
You are also not searching for APInvoice.refNbr you should be searching for APPayment.refNbr.
ReverseApplication just reverses the currently selected application which is the adjustment that applies x amount from the check to a document(usually an AP Invoice).
If you are trying to void a check there is a voidCheck action that you can call in the same way.
You are also not searching for APInvoice.refNbr you should be searching for APPayment.refNbr.
Hi
I need to clarify one moment. My goal is to return “closed” item to “Open” state. The requirement is to return payment to previous state in case if User made the mistake and payment was not performed for definite item, so in that case Checks and Payments item must be returned and be available until the payment will be performed.
Firstly I thought it should be done via voidCheck, but now due to your response I think ReverseApplication is what should be used. Suggest, please, which approach will be better for my aim
It sounds like ReverseApplication is what you are looking for. Voiding will void(cancel) the payment.
It sounds like ReverseApplication is what you are looking for. Voiding will void(cancel) the payment.
There must be something that I am missing
After that code was executed, the payment remains being closed
You need to set the current adjustment that is going to be reversed. I believe Acumatica just changed the naming but in 2021 R2 the view is called APPost. Its the view under the Application History tab.
If the method doesn’t find a current application it doesn’t do anything.
You need to set the current adjustment that is going to be reversed. I believe Acumatica just changed the naming but in 2021 R2 the view is called APPost. Its the view under the Application History tab.
If the method doesn’t find a current application it doesn’t do anything.
The version of Acumatica is 2020R2
Can you please clarify what adjustment should be taken and where to set it ?
I did not see such parameter at Checks and Payments item fields values
For the reverse application action to work you have to first select an application to reverse. Under the Application History tab is where you can see all the released applications. In the UI you would click one of the application rows and then click the Reverse Application button.
To accomplish this via code you would need to set the current record of the application history view to the application you want to reverse before calling reverseApplication. I don’t know the name of the view in 2020R2 but it should be easy to inspect the grid to get the view name.
For the reverse application action to work you have to first select an application to reverse. Under the Application History tab is where you can see all the released applications. In the UI you would click one of the application rows and then click the Reverse Application button.
To accomplish this via code you would need to set the current record of the application history view to the application you want to reverse before calling reverseApplication. I don’t know the name of the view in 2020R2 but it should be easy to inspect the grid to get the view name.
At Acumatica 2020R1 I can check ReverseApplication
but at 2020R2 I receive exception when I try to check name of this Action via Customization tab
How can I troubleshoot it ?
According to your response : “To accomplish this via code you would need to set the current record of the application history view to the application you want to reverse before calling reverseApplication”
Setting current record it means transferring ReeferenceNbr of item that I need to reverse ?
What should be putted to my code from that place ?
no setting the current record on a view means
>GRAPH NAME]..VIEW NAME].Current = Record]
That is what you are doing with the Document view when you
graph.Document.Current = graph.Document.Search<APPayment.refNbr>(referenceNbr);
So assuming the view name is APPost you would need something like(this would just select the first record of the view).
graph.APPost.Current = graph.APPost.SelectSingle();
If you are getting an error when trying to inspect the action/grid then you have something else going on. I would check the trace(there should be more detailed error messages there) and look through your customizations to find which one is causing the issue.
no setting the current record on a view means
>GRAPH NAME]..VIEW NAME].Current = Record]
That is what you are doing with the Document view when you
graph.Document.Current = graph.Document.Search<APPayment.refNbr>(referenceNbr);
So assuming the view name is APPost you would need something like(this would just select the first record of the view).
graph.APPost.Current = graph.APPost.SelectSingle();
If you are getting an error when trying to inspect the action/grid then you have something else going on. I would check the trace(there should be more detailed error messages there) and look through your customizations to find which one is causing the issue.
Thanks for provided code
can you help with this error , I checked it at stack trace as you have suggested
Unfortunately that error doesn’t give much information, just that something that the method was trying to reference was null. It’s not an error I’ve come across before. You can unpublish your customizations and then republish one by one to figure out which one is causing it though.
Unfortunately that error doesn’t give much information, just that something that the method was trying to reference was null. It’s not an error I’ve come across before. You can unpublish your customizations and then republish one by one to figure out which one is causing it though.
I cancelled all customization projects but it did not help
Is there any chance to reload this button in endpoint ?
Unfortunately that error doesn’t give much information, just that something that the method was trying to reference was null. It’s not an error I’ve come across before. You can unpublish your customizations and then republish one by one to figure out which one is causing it though.
Hi
we updated Acumatica from 2020R2 to 2021R2
Now I am able to use code that You suggested in previous message
I have added this part
graph.APPost.Current = graph.APPost.SelectSingle();
but now I am getting Object reference
Before I did not added I did not receive any errors
please, suggest what I should fix
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.