How to Update ECC Table ECCExtPayMethod via BPM

I’m trying to create a method directive that updates the ECCExtPayMethod table when there is a change in a field in the Customer table. The problem I’m running into is that I can’t figure out what method to use - neither the ECCCustomer nor the ECCExtension business objects have traditional “Update” or “UpdateExt” methods.

Is there another way to update a value in the ECCExtPayMethod table when a value in the Customer table changes that I’m missing? Or does anyone know which BO method to use?

Thanks in advance!

Hi @spaceage you would most likely use the Customer.Update method directive then update the related ECC tables as necessary

1 Like

Thanks for taking the time to respond.

That’s exactly what I’ve tried, but the ECC BO methods aren’t nearly as well-documented (or obvious) as other BO methods like Customer or SalesOrder. (Also, the tables I would need access to to update directly - ECCExtPayMethod & ECCExtShipVia - aren’t exposed for some reason…I created an Epicor Idea to expose these in BAQ Designer)

I have tried adding a condition that checks for a change to CreditCardOrder on Customer.Update, and if true, Invoke BO Method. That’s where I’m having trouble. The ECCCustomer BO only has 2 methods and neither do what I need. I then tried ECCExtension, which has 230 methods, but no “Update” method.

Since I can’t seem to trace the calls between Kinetic and ECC, I reviewed the ECC logs (within Magento) and see that the CUS message is the one that brings over allowed payment methods. So I looked at the methods prefaced with “CUS”, and after reviewing those it seems that instead of using an Update method, XML is generated by one or more of these methods then passed up to ECC. I see CusFinalXML and CusPayload methods, but without documentation I don’t know what format those methods expect data in.

I also tried creating a function that I call from the BPM, passing in the CustNum to be updated from the BPM then building out an ECCExtensionCustomerTableset (which does give access to the fields I need), but I can’t seem to get that to work either. I get a Success message but the table data never updates. Here’s how I have it configured:

Function Setup

Declared Tableset variable and String variable

Update Table by Query - Query

Query Criteria

Display Fields

Table Mapping

Table Mapping Cont’d

Output

Swagger Results

I appreciate any advice or guidance.

If you haven’t done so already try setting the RowMod equal to “U”

Thank you - I didn’t have that in the function originally. I added it and it still doesn’t seem to be updating the table.

Can you verify in the event viewer that no errors are showing up when the bpm is being triggered?

We’re hosted so I don’t think I have access to an event viewer.

I’m curious if there’s any way for me to know if the transaction is successful. I know in raw SQL I can use a TRY/CATCH block and output any errors, but I don’t know if it’s possible with a widget?

Can’t say I use the widgets too often but if you use custom code to update the record you can add try catches and display a message if an error is encountered