UD Column change in UD Table not triggering SysRevID change

Good morning all,

Has anyone else run across this ? I have several UD columns on UD01. When someone updates one of these fields, the SysRevID field for that record in the UD01 does not change. If I change one of the ‘stock’ fields i.e. Character01, the SysRevID will change.

As a double check, I went to the Erp.Part table ( which has UD columns defined and used) and edited one of the UD fields and viola!, the SysRevID for the Part table changes.

I am checking if the SysRevID changes by running a simple BAQ to see the records. If I remember correctly, the UD fields records actually reside in the Erp.Tablename_UD and through EpiMagic, they are available through the BAQ.

How I ran across this is in the development of a project was the dreaded’ last one who saves wins’ scenario. I was expecting the Epicor message that we all love to see …‘Record was updated by another user’. In this case I was depending on that message to appear.

As an overview, a Manager assigns tasks relating to an ECO( through a dashboard that has an updateable dashboard in it). Users then respond to these tasks via a separate updateable dashboard for these tasks( mainly just selecting a Date Completed).

I have reproduced the not updating the SysRevID issue by running a few updates directly through the BAQ Designer and running the updateable BAQ.

I am not using any Custom Methods on the UD01 updateable dashboard. One would expect the UD tables would behave like the Erp tables…

Any thoughts ???

Thanks in advance

Dean

Most like won’t see a change in UD01 as the record didn’t actually change. Only the record in UD01_UD was changed.

edit

when you select table in BAQ editor, it really inserts a view, like

SELECT * 
FROM Erp.Customer
LEFT JOIN Erp.Customer_UD
ON Erp.Customer.SysRowID = Erp.Customer_UD.ForeignSysRowID

That’s my thought too, but he then goes on to say

which kind of throws a wrench in the theory.

1 Like

Hmmm … might be something else in his test with the Part table.

I did something similar on the Customer table.

Initial SQL result

for

SELECT CustID, Customer.SysRowID, Customer_UD.ForeignSysRowID, Customer_UD.UD_SysRevID
FROM Erp.Customer
LEFT JOIN Erp.Customer_UD
ON Erp.Customer.SysRowID = Erp.Customer_UD.ForeignSysRowID
Where Erp.Customer.CustID = 'ZZZ999'

Then I changed the UD field on that customer, and re-ran the same SQL query

The Customer.SysRowID nad Customer_UD.ForeignSysRowID never changed. Only the UD_SysRevID (and the JE_CustNum field that I changed to initiate the update).

Hi again Calvin,

Yes Views,small part of the EpiMagic. Do you agree that the UD tables should change SysRevID’s ?

Dean

Assuming “the UD tables” means UD001, UD002, etc… and not UD01_UD, then I don’t agree.

The record in UD01 is unchanged when the related record in UD01_UD changes.

Just like my test showed that the record in Customer is unchanged when the related record in Customer_UD changes.

EDIT

I was looking at the wrong things.

Updating a filed in Customer_UD, did cause an update to Customer.SysRevID

Before the update to Customer_UD

After the update (changes highlighted)

Working with UD01. In the Customization I am ( using code from this site) Populating Key01 with the ECO and Auto numbering Key05 to serve as a Task Number ( within the ECO) .

Just so I’m clear, you have ud fields for the UD table? Like UD01.YourCol_c.

Or are you only using the UD01’s built-in columns Key1,…,Key5, Number01,…,Number20, Date01, …, Date20, etc…

Correct, using 2 Keys, non of the Char01, date01 etc and 4 Mycol_c’s

Keys (Key1-Key5) in UD## and UD###A tables can never be updated, only added or deleted. I’ve always got an error trying to update the keys but maybe something has changed. So changing a key will not update the SysRevID.

Hi Mark,

Not changing the Key01 and Key05. Those are populated on adding new record, serves as an index. Editing 4 MyCol_c fields.

Instead of just checking for a change to just UD01.SysRevID, can you check if that OR the UD01_UDSysRevID change?

I am not that up to speed on coding in Epicor. Was hoping to leverage the built in ‘User has modified the row’ validation.

A hack would be to have the UD columns also copied to the unused built-in columns in UD01
UD01_UD.MyCol1_c -> UD01.Number01, UD01_UD.MyCol2_c -> UD01.Character01, etc…

That way the UD table is forced to update.

Mmmm, Interesting. I suppose I could do that in a data directive, that way both of the dashboards I am using would trigger the directive. I would still like to go to Epicor with it and ask why the Part table _c colums will force an update and UD tables _c columns do not. If they have a solution, I could always turn off the directive. I will try this will let you know how it works.
Thanks

Dean

1 Like

Slight revision on the uhhhh, workaround, ‘hack’ sounds dreadful… :astonished: Data directive on the UD01 table with an in transaction directive, Condition-ttUD01.RowMod changed from anything to “U”, if true, then set field Character01 to “Updated”. Ill give Calvin the credit for the solution, Thank you for the idea Calvin. ( not Mr Kruson – :smiley:)

Update on solution, I need to come up with a unique value to change a regular out of the box field to, otherwise the stated solution will only work once…