Quote Time Metrics

I am trying to get the Quote Time from creation until the quote is engineered. This only needs to happen on the original entry and not later revisions. I was able to do this in 8.03 using a BAQ and report but cannot make it happen in E10. Does anyone have suggestions?

What are you missing in E10 that you previously had in 8.03?

Jeromy,

Not sure what changed. The BAQ and crystal report was working but no longer functions correctly with E10.
The issue with trying to capture dates in certain modules is that they are not static.
To be able to capture the turnaround times in Quotes I
have to look at a change log and also when the ready to quote checkbox was checked.
There may be an easier way to get this information but I have not found it.
What do you recommend?

You could query the change log table with the criteria you are looking for. I think it’s ice.ChangeLog, but I could be wrong. Maybe you could use that table to update your BAQ and crystal report. Did you recently migrate from 8 to 10? A lot has changed from 8 to 10, so if it were me, I would want to go back to the original source of the report to identify what’s missing now.

I think you issue from 8 to 10 is the change logs work differently now. In 8 several sections of the system and with 9, where my experience is, had change logs by default if I remember correctly. However, with 10 they have moved change logs into the BPM data directive section. You have to build your change logs on each table you want to monitor, and what fields you want to monitor. This is done on an in transaction data directive for each individual table. Then you use the ice.chglogs table or something close to this can’t remember to get the details you are looking for. You will need to change it up a little maybe to meet your needs with the key fields in the table, and use the delimeter details to parse it. There is a string_split function in SQL 2017 that will help you here.

-in my opinion- the easiest way to do that in E10, using BPM and UD fields, something like this:

  1. create three UD fields in QuoteDtl (CreatedUserID_c,CreatedDateTime_c,TurnAroundTime_c).
  2. an In-Tran data directive BPM to save the following values CreatedUserID, CreatedDateTime when RowMod is ‘A’.
  3. another pre-process method BPM on Quote BO.Engineered also conditioned when RowMod=“A” to calculate Quote Line turnaround time -which will be the different in time between the saved CreatedDateTime and the current time of execution of this BPM-, and save it on the third UD field TurnAroundTime,

Note: you may need to check the value of CreatedDateTime_c at the execution time of the second BPM

EDIT
run the tracing log and validate the time for each directive, if both happened in the same time, use this method directive for point no one
image

I will look into all of these ideas. The main issue is that I cannot get a static date from a check box. If I could set the check box to record the original static date it would uncomplicate things as I could then pull this for a comparison. In the aerospace manufacturing environment you have to develop metrics to monitor your processes and most of them are easy using E10. Some of them are not easy such as this one. Some of the quotes in our system have up to 30 different change log entries which makes it complicated to weed these down to a usable metric. I appreciate the help. Thanks.

you can store current DateTime to a callcontextBPM variable when this box checked true or false

I think a simpler version that would get what you want would be to create a UD field on QuoteHead (double check the table names), that’s a date field. Make sure the initial value is blank or some non-sensical date that you can key off of. Then on QuoteUpdate, run a condition that says, If your field is blank (or your non-sense initial value) then set that field to today. It will only update that field once, then it will ignore it because the condition will go to false. This will essentially get you a created date. (doesn’t help you for the old ones already in your system, but going forward it does.)

Banderson,

This may be the easier way to accomplish what I need. I will try it today. Thanks.

Quote Time from creation until the quote is engineered.

So you have on the Quote:

  • DueDate
  • DateQuoted
  • ExpirationDate
  • FollowUpDate
  • ClosedDate
  • ChangeDate
  • EntryDate (When the Quote Was Created)

Line:

  • LastUpdate
  • ChangeDate

Just keep in mind you Engineer the Line, not the QuoteHed, the QuoteHed you “Quote”.

1 Like

Banderson,

After looking at the Quote Header we have a UD Checkbox we are calling “Engineered”. Would you setup a UD date field that looks to the Checkbox and if checked use today and if blank no action? By using the Quote Entered Date and a date from when the “Engineered” checkbox is checked it will get me the time spread I am looking for. I would appreciate your or any ones thoughts on this.

Whatever works. It’s just a condition algorithm. You set up what you need for your business. Just work the the logic and the what-ifs for however you could break it and make sure you handle the cases. We have a checkbox set up in Job entry to trigger an e-mail to get sent to our productivity software to automatically create a task. When is sees the checkbox change from false to true, it set’s the date created and sends the e-mail. You can set it up the same way, just skip the e-mail part. Our is set up to allow for unchecking and re-checking it and it will re-send the e-mail. You could just make it so once you check the box, the date is created, and if there is already a date, don’t allow the check box to be unchecked. Or whatever you need.

Banderson,

This will work very easy. We have done something similar to what you are showing in a couple of places to generate emails. I will get this done and it will make the metrics retrieval easy. Appreciate the help.

this way will work, but you relaying on user action not the system, what i suggested before will synchronize the requirement logic with the system event instead

I have set up a data directive as shown. Am I missing anything on this?

well, you are coming out of the false side for those conditions. Is that intentional?

This was not intentional. I was not sure how to set the second condition field to look at the date field and if it had a date to not process. What should I have made this to state?

Maybe just start with the check box first, make sure that’s working.

Second, you are setting a BPM Data field. Don’t you want to set the actual field?

The “Set Field” was the part I did not know as I have never done this before. I will update the file to reflect this. This will cover the condition of the check box going from false to true but what condition do you include to look at the date field and not update if it is already populated? Thanks.