Job misc charge line?

I too thought I was crazy in the beginning, and now I’m just content when it works :slight_smile:

I agree that the process seems a bit all-or-nothing, and I was going to comment on that earlier, but you guys got there anyway. To me, it seems that the code that manipulates the inbound results is a dynamic map sort of thing - created on the fly based on the fields you specify in the in/out fields of the Datalink Task definition. If you specify a field in the mapping, you get the new data or nothing, with no respect for previous value.

Anyway, glad I could point you in the right direction!

EXACTLY!

I’ve been experiencing the same “bug” from the Pre-Create workflow step in that it wipes out the Line Miscellaneous Charges. Getting the Header Miscellaneous Charges is simple enough and works just fine, so my assumption is that this maybe a bug in the Pre-Create as it is wiping out the outputs.

As for adding a Job Miscellaneous Charge to a Job Miscellaneous Line, this is a complex and time consuming endeavour using datalinks that replicate the several steps Epicor does to do this from within AP Invoice Entry.

As for the CostPerCode, I have found that getting the value from that field is only the first step. With it, though, you can use the three options (E - /1, C - /100, M - /1000) within an Advanced Math task to get you the true value you need to match things within ECM against receipts.

1 Like

Also just came across this but am struggling because the advanced math task seems to think the costpercode is empty… yet two steps later its not, I see it on all the lines in teh field gorup.

I have a ticket in on this. I should poke them again and see if they’ve made any progress.

My workaround right now is to ignore the return for those. But that’s not ideal, as if there is a problem, or a change, you would never know.

1 Like

The whole thing is so wonky, would you agree? Joining data to the existing dataset or data link should be way easier. Like as simple as a BAQ. Why they keep all their datalinks under lock is beyond me… or maybe you know how to modify the pre-built datalinks?

Consulting Make It Rain GIF by SHOWTIME

It’s always about the money.

But you could make your own datalink easy enough I suppose. Right after the pre-create or create, you could look it up yourself and recreate the lines.

You shouldn’t have to, and it’s clearly a bug, but the system is flexible enough that you could mold it to your needs.

1 Like

I work around it yeah, just saying it’s not great at all.

Riddle me this though @Banderson , say you add one field to your content type and none of the other fields changed… you have to specify all the previous fields in the output of your new datalink yeah? Otherwise they get erased?

Shrugs GIF

I’m still the new guy here!

If I’m understanding this correctly, then there are three potential outcomes I am aware of, two of which come from datalinks, and all of this is related to field groups. Header fields can be part of the outputs but changing one should not impact another, depending on the configuration in the workflow.

  1. If you use the Set Field Group task then any blank value will wipe out the field, as will any variable in a field that is blank. The caveat to this being if you use the option to append rows, then this will build on to the existing field group.

  2. If you use the Datalink or Datalink Field Group task then blank fields will result in blank outputs. The caveat here being that the direction chosen, whether “To” or “From” can change how the datalink populates the fields. From my experience, the “To” direction will overwrite your fields with the data it pulls from the datalink. The “From” direction will update the fields where new data is found.

You can certainly do this, although it depends on how the miscellaneous charges are to be applied. I have been able to create a set of datalinks that can mimic the REST services of retrieving the PO line miscellaneous charges and then applying them to the invoice line. Again, this should all be happening within the Pre-Create, though, so I believe you have found an issue in that specific datalink.

I’ve gotten past the fact their datalinks are guarded and would be elated if they would provide us with the ability to have multi-valued inputs as part of our created datalinks. Right now we have to create looping configurations in the workflows to accomplish what should be something a single task can do, all because we don’t have the multi-value input variable option.

1 Like

The datalinks that they use get around this by passing in tilde delimited lists. Using functions, you should be able to do the same thing, I would think. (I haven’t tried yet, but would think that’s how it would work)

I’ve exhausted all of the options I am aware and/or capable of with no success, but if someone knows how to do this then I would greatly appreciate learning how.

EXACTLY, looping and looping. Like many many many tasks and actions to complete something that should be done in one.

When you say “update fields where new data is found,” my question still is, do you have to specify every single field that you have in your group as an output in the output field for the datalink? Or just the ones you want to udpate?

Cause in my experience, and this was a long day a while back so I don’t even know what I was doing or in what order, but in my experience it didn’t matter if I was selecting TO or FROM, I had to specify ALL of my output fields, not just the one I wanted to update, otherwise it would change them to be all blank.

I will try and muster the strength to go back and test this again.

Yeah, I think we’ve already established that it doesn’t have the ability to understand changes. So any row coming back in the dataset has to replace all of the information, because there is no mechanism to match up the row to make a change. So their solution is to wipe out all of the rows and assume the data coming back from Epicor is ALL of the data. So, there are 2 options, 1.) don’t return anything and it won’t remove the rows, or 2.)return all of the data, and it will replace the data with the data that comes back from Epicor. Without something like rowID’s and rowmods, there isn’t a way to handle just adding pieces. It’s the reality of the decisions that they made to their architecture. And with ECM being ERP agnostic, they didn’t have a way to standardize that, as I’m sure other ERP’s handle changes and rowID’s differently.

1 Like

Then what would be the point of the datalink?

Great points @Banderson

ok, “Anything” is probably too overarching. I meant, don’t return anything related to the misc rows. If you remove the return variables from the calling of the datalink so that ECM isn’t expecting anything to come back, it doesn’t remove your rows. But it also doesn’t make any updates that Epicor deemed necessary.

Also, you can send stuff in with no return. Not ideal, as you would want confirmation, but it will at least create the rows in Epicor.