I found out that when adding a new row, RowMod is still set to ‘A’. However when row is updated then RowMod is empty.
Question is how to check if row was updated? I found event which can tell me if whole dataset was changed but don’t know where to check if row was updated.
BTW does Kinetic supports multiple dirty rows or updating only one at the time?
Support for multiple dirty rows is not a requirement for our development team. You will find that some Services - usually the simpler Services - do support Multiple dirty rows but there is no guarantee that they do. If a Service does not support multiple dirty rows, it is not a bug as the original system design was to support a single dirty row.
When using the more complex Services, be careful with jumping to a conclusion that the Service supports a multi dirty row update as it may appear to work, but there can be edge cases (usually with child/grandchild tables) that will not work under a specific data pattern.
UpdateExt is designed to support the multiple dirty row pattern (and also a reduced data payload) and if that is not working with the multiple dirty rows, that is a bug.
Please correct me if I am wrong - but this mean then I have to program followed logic:
Capture fact that row was Changed as you wrote by using Row Changed and store this information somewhere (variable etc.)
Create another event - before Update - which will check value of my variable and do some required action.
I have also question related to “Column Changing” Data Event.
Lets assume that user is changing text in TextBox from “A” to “B”, TextBox is bind to View.ColName.
When I will call a dialog box in Column Changing event then View.ColName will show me “A”.
Question is how can I get proposed value, in that case “B”?.
I was trying to display “B” in dialog using javascript, JSON but no success. Any hint?
You may have to play with timing to get what you need, but first pass is you’ll want 3 events: DataTable > Column Changing, DataTable > Column Changed, and Event > Before > Column Changed.
That was smart :). However I need to check if adding even-cancel to ce_Before_RowChanged_PartNum will revert value from “b” back to “a”.
I was wondering if we can access the same information in Application Studio which is available during runtime in debugger.
As you can see on screenshot below “ABCCode” DataView is Red higlighted. So debugger knows that it was changed - where is that information stored?.
Debugger also know original value, oldValue, newValue - it means that this is also stored somewhere. Can we access that information in App Studio code? (two columns in dataTable > changes > modifiedRows)
I am also missing a place where I can do some “foreach” and go over all dvRows and dvColumns (or at lease all dvColums for current DataView).
I’m sure you can access those. I’ll just need to find the proper syntax. I can take a peek tomorrow morning.
Foreach is less than ideal. You have to use the dataview condition widget and do your stuff in the iteration event.
There’s a post floating around here regarding that.
When you are searching for “proper syntax” - are you digging in server files searching for examples or you are checking documentation i.e. for JavaScript JSON or anything else?
This leads to another question, %value% from your example is translated to proposed value, What is that translator and what syntax/language is used? If this is not 100% customized by Epicor then we should be able to find some documentation > for syntax / keywords / etc.
Aye. Typically the best start is to dig through Epicor’s stock stuff to see if they’ve done it already; that’s where I found the %value%.
I use the program Everything by voidtools to search the MetaUI folder on the server for keywords. For this one, I searched for the keyword ‘proposed’ which came up with a bunch of hits. I opened one of the files and saw that they were setting a variable called proposedValue to %value%. Took that info to my test and it worked. If it didn’t yield the result I was looking for, I’d keep searching different files or different keywords.
I don’t have an answer for this, but I know the new UI is based on Kendo if that helps.
Have I ever mentioned that it would be nice to use a source control system? The kind that makes searching source code easy?
If I haven’t, there’s an Epicor Idea I’d like you to look at:
Make the software more friendly for DevOps Practices for Customers, the Cloud Team, and Professional Services
DevOps is the practice of delivering quality software at a rapid pace. Epicor’s ERP product (sort of) does this but it does not include the customer, the Cloud Team, nor Professional Services. Including these groups of people in the practice will make all of them much more successful. This would require making changes friendly to Source Control (e.g. Git), so users can track changes to their system; a framework to Test their work; a standard deployment method with rollback; and a monitoring system that is cloud friendly.
Close the circle with Development and improve the experience for all.