Creating a LaborDtl from uBAQ


Use a message box to display the actual value.

Got the correct job number.


I don’t know enough about the business objects to be able to troubleshoot this any better than you are.

The only recommendation I have is to re-do your trace like Nate said and then I would execute each method one by one and use message boxes to make sure that the results after each method are exactly the same as your trace.

I would go widget by widget and ensure they are all generating the correct dataset results before moving onto the next one.

I’ll try my best. If you could dig out your pre-existing BPM where you’ve used labordtl that would be ace!! I I just want to make sure my bindings are correct and the sequence of blocks is correct. It’s driving me insane!

Aaron, I didn’t create a labor dtl function/BPM from what I recall, I thought that was @JasonMcD

I also don’t know a ton about the business objects and methods. But I have done lots of trial and error. Looking over your BPM, I think you might have some extra methods in there. After you create your new records with GetNewLaborDtl, you should be able to populate the required fields using an UpdateTableByQuery.

Good point.

Some methods take 2 rows. A changed row and the original unchanged row. I don’t know if the widgets handle those or not.

Another option to try (if you have access) is the BL tester and make sure that the methods that you are using in that order actually work as well. Sometimes, that can be enlightening.

1 Like

Hey, sorry I was out sick on Friday. Looks like you have been getting plenty of better help anyway.

But to answer the question, just like you do:

Something else - I use “Get new Labor Dtl No Header” I just always have for various reasons.

It looks like you are using the new Dtl method but not creating a header first.

I hope this isn’t too doublespeak. So,

  • Option 1 - Create new labor header; then create a detail under the header (referencing the header you created)
  • Option 2 - Use a completely different method - “Get new Labor Dtl No Header”

Option 1 has merit, but I had no use for creating my own special header. Option 2 creates one by itself and that’s fine for me.

PS - DMT is another way to try out a concept. Get it to work there, and then do a trace in DMT. (Thanks @SteveFossey for bringing that to light.)


DMT with tracing and the BL Tester - oh, and swagger - are right up there with raindrops on roses and whiskers on kittens.


Constantly getting A valid Job Number is required

I have checked the JobNum and it’s valid.

Here is the BPM. I am using Method GetNewLaborDtlNoHdr

Still same issue :confused:

Is the job open? Is it released? Is it completed already?

Everything seems good.

Geez! that’s a lot of widgets… Sometimes those widgets just get in the way, IMO I’d move this to a custom code block you get more control that way.

1 Like


Custom Code he says. You’ll have more control.

It’s writing the custom code block… I have no clue.

Check this thread out,

Get started down that path and come back if you get stuck

Do you know what adapters I need to use?

I have added Labor and LaborDtl


no Adapters this is server side.

The link I gave you that points to my example is for Server Side (BPM) no adapters needed.

1 Like

No problem, one last question.

laborBO.DefaultOprSeq(ref lds,opSeq, out msg);

What is msg