How to extend the RQRequestProcess release button - acumatica

My client has a requirement which forces me to move data between the RQRequest record to the RQRequisition record. I chose to extend the Create Requisitions' processing screen 'Release' button. I use Acumatica framework, to add the appropriate graph handlers during the Release method. I noticed the 'Release' method actually resides in the nested class 'RQRequestProcessing'. So is it possible to extend the release method? Not sure if I can create a graph extension from a FilteredProcessing type.

Related

Can I grab and populate a screen made by a programmatically triggered button push?

Am I able to grab a screen that is created by a programmatically triggered button push call and populate it with values?
My specific example is that I want to grab the new e-mail screen that is made when I execute this code:
CRCommunicationDraft graph = PXGraph.CreateInstance<CRCommunicationDraft>();
graph.AddNew.PressButton();
I want to grab the screen created after AddNew.PressButton() is executed. Is there any way to do this?
For this specific case, I think is answered here:
How can I open an editable, sendable e-mail screen with prepopoulated values?
For most cases you want to:
Override the Action Handler of the button. You can use OVERRIDE METHOD button of customization editor for that. In your case override the AddNew action event handler.
Create a new graph instance for your target screen, here it is CREmailActivityMaint.
Assign to or insert a record into the current DataView of that graph, in your case use CREmailActivityMaint.Message DataView.
Redirect to the screen, using PXRedirectHelper class.

How to update Layout in PortletLayoutListener

The goal is to implement a Tab Portlet - portlet for displaying and managing tabs containing nested portlets (similar to Nested Portlets Portlet).
One of the requirements is to remove the nested portlet references from Layout on Tab Portlet removal.
I implemented PortletLayoutListener and indeed, method onRemoveFromLayout is called on Tab Portlet removal. The listener updates the layout. While debugging the listener, I can verify that the changes were written to Liferay database (to LAYOUT table).
The Layout instance is obtained through LayoutLocalServiceUtil.getLayout(plid) method.
The update is performed with LayoutLocalServiceUtil.updateLayout method.
The problem is that the listener is called from UpdateLayoutAction, which afterwards updates the Layout itsef and overwrites my changes (it reverts them).
The question is - is it possible to update Layout in PortletLayoutListener.onRemoveFromLayout method? If not, is there other option I could use?
Hi the PortletLayoutListeners are intended to be used in relation to the portlet. So if you want to react on a change on the page in your portlet.
If you want to change the portal, I would have a look at the model listeners. Create a hook with a Layout model listener and try to make you changes in the afterUpdate method. But be careful not to affect the performance.
You may even require both of the classes one to make an indication and the second one to make a change.

How to enable/disable the features depending to result of some method on adf mobile

Firstly, I want to start a taskflow automatically when just application runs. Then, i m checking something and assigned result to a variable(i think that its scope must be applicationLevel)
And now, as i tried to describe on title, i want to manipulate application features(actually i mean that just disable/enable) up to that variable, such on this link: http://adf4beginners.blogspot.com/2013/02/adf-mobile-playing-around-with-features.html?showComment=1387060885861#c1358489250811721156
Is it possible? How can i achieve this?
in order to start a task flow when application run, you need to create a feature and go to the content tab under the created feature then create the ADF Task flow from inside the feature.
It will be automatically added to
Application Resources->Descriptors->ADF META-INF->adfmf-application.xml->Feature References
if you could see your feature there then it will start automatically when the app run.
About your second question yes it's possible:
1- create a Java class as managed bean and add it to your feature (or application if it's application scope)
2- create a variable in that class String rendered = "false";
3- right click generate accessors (make sure that notify listener check box is selected)
4- go to your component properties -> Rendered -> click on the arrow beside the textbox
5- Select your variable under the bean created under the scope of the bean.
6- run the application the component should be hidden.
7- if you changed your variable value to "true" the component will be visible again.

Alerts or Popups in MvvmCross

Does MvvmCross support a cross platform solution for displaying alerts or popups?
Searching the code I found MvxDialogActivityView but it has been commented out. Will this remain the case for now?
If there is no direct support how would you suggest this is best done? (Perhaps the ViewModel would change a property and call FirePropertyChanged so that the View would be aware of it and show an alert.)
Edit 16:04 16th June 2012
What I am trying to do for this specific case is as follows:
On the page a button is clicked, which causes a method to run in the ViewModel which does an evaluation to determine which of two messages should be shown to the customer. The message would be shown as an alert or popup (either native, or preferably totally styled by me). The message would fade after (the click of the OK button, or preferably 3 seconds).
After the message has been dismissed a new page will be navigated too (depending on which of the two messages was shown).
How to handle this definitely depends on what the situation is - there's no single best rule (IMHO)
For a general error display pattern, there's one proposal at http://slodge.blogspot.co.uk/2012/05/one-pattern-for-error-handling-in.html
I've used similar patterns for showing application level notifications - e.g. for when a long running operation completes or when a chat message arrives or...
One interesting post about how to display message boxes was: http://awkwardcoder.blogspot.co.uk/2012/03/showing-message-box-from-viewmodel-in.html - I'm not sure I'd completely follow the end solution, but there are definitely some good points there about what not to do.
For your updated scenario, I would consider using a messenger (like TinyMessenger) or using normal C# events exposed by the ViewModel and consumed by its View
On the page a button is clicked, which causes a method to run in the ViewModel
I would implement this using an ICommand bound to the button Click/Tap/TouchDown
which does an evaluation to determine which of two messages should be shown to the customer.
I would definitely implement the logic within a Service
This would be called from the ViewModel - and the result/decision would probably cause some property or private field state change.
How does the View then decide to show a message? I can think of 3 options:
The View could just respond to a Property change (normal Mvvm INPC) - this would be my preference
The ViewModel could expose a normal C# event which it triggers...
The ViewModel could send a Message
This last option (Messenging) is probably the most flexible solution here - it decouples the View and ViewModel in case you later decide to change responsibilities. To implement messenging, either:
implement your own hub (like I do for errors in http://slodge.blogspot.co.uk/2012/05/one-pattern-for-error-handling-in.html)
or use a generic solution like TinyMessenger
The message would be shown as an alert or popup (either native, or preferably totally styled by me).
This is a View concern - so would be entirely controlled by the View project. I'd use controls like: UIAlert, Toast, ToastPrompt, etc - all of which can be styled
The message would fade after (the click of the OK button, or preferably 3 seconds). After the message has been dismissed...
I'd use some form of Code Behind (or maybe a Behaviour in WP7) in the View. This would detect the click/fade/disappear and would then invoke either an ICommand (my preference) or public method on the ViewModel
a new page will be navigated too
This navigation would be requested from the ViewModel
(depending on which of the two messages was shown).
This would be easy to track through the above flow... presumably the ViewModel already knows what to show.
So that's what I'd do...
it keeps the application flow logic inside the ViewModels (and lower)
it keeps the presentation inside the Views
...but I'm sure there are other options :)
One final note... the fade out and then navigate logic can really get "messed up" by Switching/Tombstoning on WP7 and Android - this may or may not matter for your particular scenario.

WPF treeview - How do i know when a treeviewitem was added to the treeview?

I have a treeview which is bound to an observablecollection via HierarchicalDataTemplate. I cant seem to find any treeview functionality that provides me notifications that at any level a new treeviewitem was added.
I know that i can bubble item addition notification to my model's root and raise property changes which can be handled, but I'm trying to find a way doing so by my view without adding this functionality to the model/view-model.
Thanks, Oren.
You are already using an Observable Collection, which notifies when the collection is changed - so hook into this event rather than into the treeview, which is also an observer of the same collection.

Resources