Upgrade and now getting cryptic error in AP invoice workflow

So we updated to 2024.1 this weekend, and it seems like most of the ECM stuff is working, except now I am getting this exception on the integration point “Create Invoice”.

It creates the invoice in Epicor, but it won’t finish the rest of the workflow, which is just attach the document to the invoice.

This is the error that it’s sending back, but I can’t figure out what it means. Anyone have any clue where to look for the issue here?

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Astria.Framework.DataContracts.CustomExceptions.EclipseApplicationException
   at Astria.Framework.DataContracts.ExceptionsML.Check(ExceptionsML ex)
   at Astria.Framework.OperationContracts.AstriaSignalRClient.InvokeMethodFull[T](InvokeMethodPackage imp, Nullable`1 resultTimeOut, String timeoutMessage, String ackTimeoutMessage, Nullable`1 ackTimeout)
   at Astria.Framework.OperationContracts.AstriaSignalRClient.InvokeMethod[T](InvokeMethodPackage imp, Nullable`1 resultTimeOut, String timeoutMessage, String ackTimeoutMessage, Nullable`1 ackTimeout)
   at Astria.Framework.Business.V2.DataLinkQueryBusiness.ExecQueryViaClient(Dictionary`2 parameterValues, Nullable`1 docId, DataLinkQueryPackage dto, AstriaSignalRClient hubClient)
   at Astria.Framework.Business.V2.DataLinkQueryBusiness.<>c__DisplayClass32_0.<ExecQuery>b__0(AstriaSignalRClient hubClient)
   at Astria.Framework.Core.DapperBase.ExecuteWithRetry[T](String machineId, Func`2 clientExecuteFunction, HubConnectionOptions connectionOptions, SqlTransaction trans, String errorPrefix)
   at Astria.Framework.Business.V2.DataLinkQueryBusiness.ExecQuery(DataLinkQueryPackage dto, IDataLinkQuery dlQuery, Nullable`1 documentId, Dictionary`2 parameterValues)
   at Astria.Framework.Business.V2.DataLinkQueryBusiness.<>c__DisplayClass27_0.<ExecQuery>b__0()
   at Astria.Framework.Business.V2.DataLinkQueryBusiness.ExecQuery(ExecuteDataLinkPackage package)
   at Astria.Service.Company.V2.DataLinkService.ExecuteQuery(ExecuteDataLinkPackage package)
@@Exception:True
2 Likes

If you look in the recording is it making an array and does one of the elements not have the same number of values? I had this with sales orders with revisions missing on service fees and the array was hosed up.

I made a test workflow and just said “I don’t care about exceptions… keep going”

And when it get’s to the attach, it doesn’t have a sysrowID. The Create Invoice isn’t returning the sysrowID for some reason.

Is this the same datalink as before?

I would probably just get the sysrowid in a bpm and put in in the data coming back to the workflow.

Yeah, I didn’t change anything with the workflow. I tried the “Get updates” but that didn’t fix anything.

I’d mock-up that integration/datalink with as little info as possible and see what I can get it to do with Sysrowid.

is there anything about these invoices - like they were already in an unposted AP group in Kinetic? OR you’ve restarted the workflow?

The workflow creates it, I see them in epicor. If I just restart, is says “duplicate”… which it is now. So I delete the invoice (it’s not posted), the restart the workflow.

The output literally has no sysrowID coming back, and I don’t understand why.

2 Likes

logically, if nothing in ECM changed, then something in Kinetic changed with the upgrade. I don’t have this set up to test against my 2024.1 instance and it would take some time, but I will later if you haven’t corrected it.

I’d still attempt to prove the datalink can get the info, singularly, from the Integration panel.

Let me finish up what I’m doing and I’ll see if I can get my ECM cross connected to 2024.1

The problem is that this integration point (create invoice) takes way too many inputs, and the UI for testing to too shitty to be able to test it…

4 Likes

yeah - I know. But where else is there to look? If the invoice gets created, but the Datalink doesn’t bring back a field, it’s the API having an issue.

If you create a datalink, it’ll be a SQL call and we know it’ll get the Sysrowid - so that doesn’t help us diagnose. I’m still thinking on it while I finish up payroll…

Is the vendor active? Ran into this not too long ago and it turned out to be the case that some datalinks can ignore this possibility…

4 Likes

They are active. I did double check, just in case, but to be assigned, they only show up in the list if they are active.

1 Like

Brandon, did you ask support to look at the datalink log itself? Like is ECM support helping with any additional logs that could tip you off to something?

I made a ticket, they asked for the recording, and I sent them that. Other than that, I haven’t heard anything from them yet.

4 Likes

@Banderson So it only take 5 params to make the call work. I’d try it on your end. This screenshot is of my V2 workflow for CreateInvoice showing success and the SysrowID being returned. This is from ECM 24.1.126 to Kinetic 2024.1.14

3 Likes

Let me try

1 Like

Same issue

It created the invoice though.

1 Like

Try a different user on the integration connection?

EDIT
Hmm… created it though… and the Appserver event log doesnt’ show anything? this sounds like an Epicor error not an ECM error.

If we could figure out the API being called, we could test via swagger page…

2 Likes

Yeah. Although, I am on a different version of ECM. It’s possible the new version didn’t link the return of the sysrowID to the right location. But I can’t really tell that, since their stuff is all hidden.

3 Likes