BPM Issue Blank Title 83488

 

Use this query on post processing of EngWorkbench.Checkout. Since the method is getting data from the server to the client, you want post processing.  The ipPartNum below is the parameter sent for the checkout. This has been tested.

 

Greg

 

for each Part no-lock , each PartRev no-lock where (Part.Company = PartRev.Company and Part.PartNum = PartRev.PartNum ) and  PartRev.CheckBox01 = true and Part.PartNum = {ipPartNum}

 

From: vantage@yahoogroups.com [mailto:vantage@yahoogroups.com]
Sent: Thursday, December 03, 2015 9:04 AM
To: vantage@yahoogroups.com
Subject: [Vantage] Re: BPM Issue

 

 

Jim,

Thanks for the tip. I updated my query:

 

for each Part no-lock , each PartRev no-lock where (Part.Company = PartRev.Company and Part.PartNum = PartRev.PartNum ) and  PartRev.CheckBox01 = true , each ECORev no-lock where (PartRev.Company = ECORev.Company and PartRev.PartNum = ECORev.PartNum and PartRev.RevisionNum = ECORev.RevisionNum )

 

and still get the same result, the box no matter what.




CONFIDENTIALITY NOTICE

The information contained in this communication, including attachments, is privileged and confidential. It is intended only for the exclusive use of the addressee. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us at 727-578-6240 and immediately delete the communication.

"This (document/presentation) may contain technical data as defined in the International Traffic In Arms Regulations (ITAR) 22 CFR 120.10. Export of this material is restricted by the Arms Export Control Act (22 U.S.C. 2751 et seq.) and may not be exported to foreign persons without prior approval form the U.S. Department of State."
I have written a BPM in the past. It works fine. I go in and update it to add one additional condition to the BPM and change the result value I want. You would think this would work fine.

But the issue I have is somewhere in the background. It's like it is keeping the old BPM and ignoring the new BPM. I have deleted the BPM and the .r and .p files for the particular BPM I can't get to work.

Here is the condition statements for my BPM:

the OrderDtl.SalesCatID field of the added row is equal to the "R" value
and the OrderHed.CheckBox02 field of the added row is equal to the True value

Here is the action statement for my BPM:

set the OrderDtl.ProdCode field of the added row to the "MRO COL" value


Now there is nothing out of the ordinary I would think that is wrong here. It has worked before without the check box in the equation. I have taken the CheckBox02 out of the condition statment because I know it has worked before with that. If it sees that it should drop the MRO COL value into my sql table as it is being told. But low and behold I go and look at the SQL table and I get an old value from a previous BPM. Where is that old BPM getting stored at on the server? There is somewhere it acts like it is still firing off a previous BPM and not the updated version.

I am at a dead end on this and am running out of ideas. Any feedback or help would be greatly appreciated.

Thanks.

Hi everyone. I am on Epicor 9. I added a check box to the part.rev table that a revision needs customer approval before use. I want a message box to pop up when engineers check out the part if the box is checked on the part master. I get the message, but it is on every part I check out even if the box is not checked. Not sure what I am missing.


Method: EngWorkBench.Checkout

Preprocessing


Number of rows in the query is not less than 1


Query:

for each Part no-lock  ,  each PartRev no-lock  where (Part.Company = PartRev.Company and Part.PartNum = PartRev.PartNum ) and  PartRev.CheckBox01 = true


You are querying the physical tables with no filtering, as long as there is one partRev record with CheckBox01 = true it will return something regardless of the part number you are currently working with.  The BO that you are working with will have the part number somewhere either in a tt table or in a parameter.

You need to add partRev.PartNum = ttWhatEverTableInEngineeringWorkBenchHasPartNumber.PartNum.

Jim Kinneman
Encompasss Solutions, Inc

Jim,

Thanks for the tip. I updated my query:


for each Part no-lock , each PartRev no-lock where (Part.Company = PartRev.Company and Part.PartNum = PartRev.PartNum ) and  PartRev.CheckBox01 = true , each ECORev no-lock where (PartRev.Company = ECORev.Company and PartRev.PartNum = ECORev.PartNum and PartRev.RevisionNum = ECORev.RevisionNum )


and still get the same result, the box no matter what.

You are still querying the physical tables, you need to work with the temporary tables associated with the Method.  The temporary tables will have the part number that needs to be checked against the part/partRev tables.

I haven't looked at the method you are working with so can't say what the tables are exactly but it would be something like this.  Notice the tt in front of the ECORev table.  If you look at the Advanced button on the main BPM screen you can see what tables are being passed.

for each ttECORev, each part where part.company = ttECORev.Company and Part.PartNum = ttECORev.partNum etc.

Jim Kinneman
Encompass Solutions, Inc.