nadim
Forum Replies Created
-
The split is created by the Receiver Reconciliation module. It happens when the invoiced price does not match the PO price.
-
Try something like below. This will bring back values for all WO users even if they have no labor recorded in the period.
WITH q
AS (SELECT woo.si_number,
wtl.sysur_auto_key,
SUM(wtl.hours) hours
FROM wo_task_labor wtl,
wo_task wot,
wo_operation woo
WHERE wtl.wot_auto_key = wot.wot_auto_key
AND woo.woo_auto_key = wot.woo_auto_key
AND wtl.entry_date >= Trunc(SYSDATE) – 7
GROUP BY woo.si_number,
wtl.sysur_auto_key)
SELECT sysur.user_name,
(SELECT Nvl(SUM(hours), 0)
FROM q
WHERE sysur_auto_key = sysur.sysur_auto_key
AND si_number IN ( ‘WO_A’, ‘WO_B’ )) hrs_sum_a,
(SELECT Nvl(SUM(hours), 0)
FROM q
WHERE sysur_auto_key = sysur.sysur_auto_key
AND si_number NOT IN ( ‘WO_A’, ‘WO_B’ )) hrs_sum_b,
(SELECT Nvl(SUM(hours), 0)
FROM q
WHERE sysur_auto_key = sysur.sysur_auto_key) hrs_total
FROM sys_users sysur
WHERE sysur.wo_flag = ‘T’
ORDER BY sysur.user_name
-
Nadim Ghazzaoui
Member11/27/2020 at 1:51 AM in reply to: TRYING TO FIND FIELDS IN MASTER PARTS AND STOCKNHA, PO Ref and Box should be IC_UDF_XXX. In this case, CTRL+F10 is your best friend (or check the field names in your Inventory Control setup).
STC_AUTO_KEY for stock category which is linked to STOCK_CATEGORY_CODES table.
-
Nadim Ghazzaoui
Member11/19/2020 at 1:55 PM in reply to: HOW TO MAKE PARAMETERS DYNAMIC IN A COMMAND?You can try:
WHERE
glt.tran_date BETWEEN last_day(add_months(trunc(sysdate), – 3)) + 1
AND last_day(add_months(trunc(sysdate), – 1))
Running it anytime in a current months will give the all results between the first day of the second previous month and the last day of the previous month.
-
Kirsten Ringsell wrote:
… i need to assign the default (NONE or “_”) consignment code that all other stock has to all other customers. Otherwise for these the auto-reserve would not function.
Is there something i have missed?
Maybe. First thing I have mis-written. I meant “Part MGT/Reserve BOM” and not “Part MGT/Auto Reserve”.
Both will auto-reserve but “Reserve BOM” is enhanced. In addition to auto-reserving, it will also automatically print a pick ticket for the current reservation run. That is it will not print a PT containing previous reservations. It will also automatically print a requisition request for any shortages.
And from QC 12.3, “Part MGT/Reserve BOM” will prioritise warehouse and geo code.
So it will check 1) customer consignment first 2) WO Station linked warehouse and then 3) Remaining warehouse based on Geo Code priority code. For each of these steps it will use earliest expiry date first or otherwise FIFO.
-
Josh,
Check Chapter 13 of the Help File. There is a section for Billing Groups.
Also when adding a quote, you need to select “Quote/Billing Option 2” as well as format “Billing Group” in the quote header.
Nadim.
-
Josh,
To get average by PN/Workscope then use the WO Profit Browse from the Shop Control drop down.
To maintain the contracted flat rates by customer/PN/Workscope, use Flat Rate Matrix (Image 1). This is automatic.
For maintaining standard flat rates then use Billing Group Master by PN/Workscope (Image 2). This is a workaround and therefore is not automatic as the user will need to select the correct Billing Group.
Nadim.
-
Quantum 12 will only give the capability to print QR codes as it has a new version of Forms Designer.
The capability to read a QR code will come from the mobile applications and the hardware.
I have not tested with Mobile Tech but I will sure do. MT only interacts with the stock label. I have found that MROs will not allow the mechanic, primary users of MT, to issue stock.
-
Yes Imaging API is a separate product from Web API. It does not use GraphQL. Just good old HTTP POST to invoke one of three three methods.
It is worth noting that the API licensing is set within the Quantum license file. So using the code without being licensed will return an error.
-
I think what he means is from the start of the current year until today.
If that is the case then you can try:
where extract( year from invoice_date) = extract(year from sysdate)
So if you run the report every day then it will give you all invoices from the current year the report is run.
-
PNM_REF is only populated if you add the PN manually to the quote instead of using “Add/Items from WO”.
What you need to use is WOB_REF which is the WOB_AUTO_KEY and from there to WO_BOM which has the PNM_AUTO_KEY.
-
If you are using auto-reserve and the customer stock has a consignment code that is linked to a company then the auto-reserve will first check for WO customer consignment and then non consignment stock. It will ignore all other customer owned stock.
But a user can still reserve manually.
Otherwise nothing apart from physical stuff such as pick ticket with a red consignment code of the reservation has a consignment that does not match the customer.
-
Craig,
The traveler is usually printed before the work starts. At this stage, the mechanics don’t know what the scope will be and what material is needed. An inspection may turn into an overhaul or an overhaul may turn into a scrap.
Why do you need this info? Material consumed list is usually part of the teardown inspection report although without the Ctrl Number/Ctrl ID.
Nadim.
-
Matt,
As long as there is an API or an SDK then Quantum can support it.
Having said that the ones that I know were integrated by Quantum customers are Kardex Remstar and Hanel.
Nadim.
-
Nadim Ghazzaoui
Member09/01/2020 at 8:57 AM in reply to: GROUP BY ERROR 00979 “NOT A GROUP BY EXPRESSION”What do you mean by underscore as criteria?
-
Mahmoud,
You can do almost anything with Event Manager and Crystal. It can generate a report on the first day of every month for the previous month. For example for an invoice, you can have a where clause similar to this:
WHERE invoice_date BETWEEN last_day(add_months(trunc(SYSDATE), -2)) +1
AND
last_day(add_months(trunc(SYSDATE), -1))
-
Try:
Text := GetData(‘COMPANIES’, ‘CMP_AUTO_KEY’, ‘INVOICE_EMAIL’, AR_ACCOUNT[‘CMP_AUTO_KEY’]);
-
Mahmoud,
Never create a delete statement without a WHERE clause (to a few limited exceptions). Remember that a single stockline can be reserved to several WOs and/or SOs. In this case the DELETE statement would delete all reservation and not just the the intended single WO reservation.
In any case, sql delete may not work due to the way the trigger was written. Better to use pl/sql.
Run this in Interactive sql. Replace the WO number below in yellow by your WO number.
DECLARE
v_wo_number wo_operation.si_number%TYPE := ‘W1702874’;
BEGIN
FOR r IN (SELECT str.str_auto_key
FROM wo_operation woo,
wo_bom wob,
stock_reservations str
WHERE woo.woo_auto_key = wob.woo_auto_key
AND wob.wob_auto_key = str.wob_auto_key
AND str.qty_reserved > 0
AND woo.si_number = v_wo_number
AND wob.activity = ‘Consumable’) LOOP
DELETE FROM stock_reservations
WHERE str_auto_key = r.str_auto_key;
END LOOP;
END;
Please, please, please, test with several reservations in your training database first.
-
Nadim Ghazzaoui
Member08/22/2020 at 12:39 PM in reply to: IS THERE A WAY TO CHANGE MANY CONSIGNMENT CODES AT ONCE?It all depends whether there is a logic. What is it you are changing?
-
Nadim Ghazzaoui
Member08/22/2020 at 12:38 PM in reply to: GROUP BY ERROR 00979 “NOT A GROUP BY EXPRESSION”That’s because you have no aggregate functions (i.e.: SUM, COUNT,…) in your select statement therefore you cannot use GROUP BY. Remove the GROUP BY clause and it will work.
What are you trying to extract?
-
Nadim Ghazzaoui
Member08/19/2020 at 1:23 AM in reply to: ABILITY TO QUOTE BILLING GROUP SUB-WO’S SEPARATELY AND SHOW THEM SEPARATELY ON THE QUOTE DOCUMENT.Craig,
In your case, is the sub-WO originating from a WP BOM? If yes then you can quote the sub-WO from the WP.
Nadim.
-
You will need to load an image of the signature and an an optional image of the QC Stamp for each sign-off user in Security Management.
Then in an open WO, click Global/Certification/Add. You should have an entry for the 8130. Click on the 8130 to select and then click the Signoff User button. This will give you the list of users. Select the users who can sign-off the 8130.
-
Craig,
That’s correct. Scan the badge and scan the Start Task is the minimum required. When completed, either scan the Stop Task or the next Start Task.
Nadim.
-
Barcode or Mobile Technician are two secure ways.
For barcode you have rf.exe or genericbc.exe. it seems you will be using the latter. The users scans his/her badge and the task card. The skill is optional. Make sure a default skill is setup though. But also use the “Secure Barcode Entry” option. This will stop the users entering data using a keyboard.
-
Nadim Ghazzaoui
Member07/31/2020 at 7:47 AM in reply to: PULLING PO DETAIL SI_NUMBER LINKED AND NOT LINKEDMy understanding is that you need to show POs that were ordered for Work Orders. In this case the link is done to the BOM and not the WO Header. It should be something close to this:
SELECT pod.entry_date,
poh.po_number,
poh.vendor_name,
pnm.pn,
pnm.description,
pod.qty_ordered,
Nvl(pwo.qty_ordered, 0) qty_wo,
pod.qty_rec,
pod.last_delivery_date,
pod.unit_cost,
sysur.employee_code,
pod.notes,
woo.si_number “WO#”
FROM po_header poh,
po_detail pod,
sys_users sysur,
parts_master pnm,
part_condition_codes pcc,
purchase_wo pwo,
wo_bom wob,
wo_operation woo
WHERE poh.poh_auto_key = pod.poh_auto_key
AND sysur.sysur_auto_key = poh.sysur_auto_key
AND pnm.pnm_auto_key = pod.pnm_auto_key
AND pcc.pcc_auto_key = pod.pcc_auto_key
AND pwo.pod_auto_key (+) = pod.pod_auto_key
AND wob.wob_auto_key (+) = pwo.wob_auto_key
AND woo.woo_auto_key (+) = wob.woo_auto_key
AND pnm.charge = ‘F’
AND poh.open_flag = ‘T’
AND pod.qty_back_order > 0
ORDER BY pod.entry_date ASC,
pod.item_number
Note that for the same po item you may have duplicates if the item is for several WOs. This is why I added the columnt QTY_WO to show what quantity is ordered for the WO.
-
Nadim Ghazzaoui
Member07/31/2020 at 1:37 AM in reply to: PULLING PO DETAIL SI_NUMBER LINKED AND NOT LINKEDAre you using PURCHASE_WO table? You will need outer join between POD and PWO in order to see all matching and non-matching records in POD.
If you are using Oracle notations then:
pod.pod_auto_key = pwo.pod_auto_key (+)
Otherwise ANSI notation:
FROM po_detail pod
LEFT OUTER JOIN purchase_wo pwo
ON pod.pod_auto_key = pwo.pod_auto_key
-
I did not know that of Teardown.
How about having an external WO, then when all teardown is completed, use Global/Main Component/Return Ship. This will make it disappear. You can use a Work Type = Teardown so as to report on these WOs.
-
Your best bet would be to adjust cost and/or quantity. No merging.
Maybe you can adjust the existing SL down to zero and then adjust the phantom stock up to the total actual quantity. This way you don’t need to adjust the cost.
-
If you are not shipping back the main component then create a new WO with the Teardown flag checked.
Turn-In the sub-components you are returning and then use the Part Mgt/Shipping/Return to Customer.
-
I had a quick look on my 12.2.3. Same problem for all 3 STD travelers. It is the general data design at fault.
When you select the tasks to print, a PRINT_TRAVELER_FLAG is given a value ‘T’. But regardless, all the tasks are printed to the form, whether they were selected to print or not. This means that the form is prepared to print all tasks. But the Detail will only be visible when PRINT_TRAVELER_FLAG = T.
As long as there is something to print then a header is generated before the filter evaluation.
The execution looks something close to:
Total WO Tasks = 3 – Task Selected to Print = Task #2
New Page
Create Header
Evaluate Task 1: PRINT_TRAVELER_ FLAG = F then detail not visible
EvaluateTask 2: PRINT_TRAVELER_ FLAG = T then detail visible
New Page
Create Header
Evaluate Task 3: PRINT_TRAVELER_ FLAG = F then detail not visible
New Page and Create Header were executed twice i.e.: 2 pages. But you only have one task to print.
If you select the last task, the header is created, the detail is printed and since there are no more tasks to print then the new page and the header will not be created.
CCI should fix this. The job card form in Aircraft Services will only print the tasks flagged to print. The same design should be used for the Traveler.
Plan B would be to create some sort of Look Ahead. A variable containing the WOT of the last true evaluation can be populated at end of First Pass. Then add some code that will stop the new page event based on the WOT equal the variable.
-
Nadim Ghazzaoui
Member07/10/2020 at 1:30 AM in reply to: HOW TO REMOVE A CUSTOMER’S INVENTORY THAT WAS RETURNED IN ONE MASS SHIPMENTYou can do Global/Scrap Lot Items. This will put the qty down to zero. This will create an entry in the Scrap tab of Lot Manager.
If you prefer not to have a scrap entry then the other way would be from Inventory Management. Go to Global/Utility Functions/Consignment Tools/Relieve Consignment. From there select the consignment code.
-
Toad is not free.
I would recommend Oracle SQL Developer. It is free and has a lot of great functionalities (and so does Toad).
If you download, go for the version with the JDK included.
-
At TAG Aviation we implemented what is called an eBOM. In its simplest form, it is an event manager email that sends out BOM changes.
It uses the qty to purchase field and not the quantity field. Qty to purchase is usually populated when Part Mgt/Reserve BOM is used. Qty to purchase can also be used to override the qty available (i.e.: force a purchase management entry event if there is no need). In version 12.3, we are expanding it to use Warehouse priority. So the reservation will go through:
Customer Stock
Availability in higher priority warehouse based on earlier expiry
If none available then populate Qty to Purchase
This will trigger an eBOM with info such parts programs, required certs or whether there is an open PO. Screenshot below to give you an idea.
The trigger was any change to the audit log. So even if a part was decreased or even brought down to zero, an eBOM is sent with a status such as New, Increase or Decrease.
-
Nadim Ghazzaoui
Member06/24/2020 at 9:53 AM in reply to: DEPOSIT INVOICE – APPLIED TO A FUTURE INVOICETry this:
SELECT inh.invc_number,
cmp.company_name,
inh.total_price
total_deposit,
inh.foreign_amount
total_foreign,
inh.total_price – Nvl((SELECT SUM(-unit_price)
FROM wo_quote_detail d
WHERE d.inh_auto_key = inh.inh_auto_key
AND d.item_type = ‘Deposit’), 0)
remain_amount,
Nvl(-wqd.unit_price, 0)
applied_amount,
wqh.wqh_number
applied_billing,
wqd.entry_date
applied_date
FROM invc_header inh,
companies cmp,
wo_quote_detail wqd,
wo_quote_header wqh
WHERE inh.invc_type = ‘D’
AND inh.total_price > 0
AND wqd.inh_auto_key (+) = inh.inh_auto_key
AND cmp.cmp_auto_key = inh.cmp_auto_key
AND wqh.wqh_auto_key (+) = wqd.wqh_auto_key
AND wqd.item_type (+) = ‘Deposit’
ORDER BY inh.invoice_date DESC,
inh.invc_number
Null will mean that the deposit was not applied on any billing.
-
Nadim Ghazzaoui
Member06/24/2020 at 1:35 AM in reply to: DEPOSIT INVOICE – APPLIED TO A FUTURE INVOICELast time I checked in 10.10, I did not find a way in Quantum. Would love to know if anyone found it.
On the sql side, there is INH_AUTO_KEY in WO_QUOTE_DETAIL.
-
The setting in WO Control sets the default in the quoting screen. This default can be overriden by the individual user setting when working in the quote flagging screen.
In the quote, unchecking the checkbox will remove previously quoted items from the flagging screen. The bad news is that this setting was broken for a while. It has been fixed in a 10.11 release.
-
Nadim Ghazzaoui
Member06/17/2020 at 10:52 PM in reply to: DISPLAY SQL ERROR MESSAGE INSTEAD OF BLANK REPORTMy bad. Should be SYS_ERROR_LOG
-
Nadim Ghazzaoui
Member06/16/2020 at 8:17 AM in reply to: DISPLAY SQL ERROR MESSAGE INSTEAD OF BLANK REPORTPietro,
I think you showed me once that the sql error is trapped by sys_user_error. Maybe he should have an event that monitors that table.
Nadim.
-
Nadim Ghazzaoui
Member06/11/2020 at 12:51 AM in reply to: WHAT TABLE DOES QTY ISSUED COME FROM IN SL IN QUANTUMLee,
For TI_TYPE = I
QTY = Qty Issued
QTY_REVERSE = Qty Unissued
QTY – QTY_REVERSE = Total Qty Issued
Because you’re good in SQL, avoid using the views. By experience, with these views, the end justifies the means. That is, the developers did not really care about the view performance as long as the result is there. So you may sometimes find that your SQL may be faster. This is especially true if the view is using a function that you may not need or columns and tables that you may not need.
-
STOCK_RESERVATION If it is reserved.
STOCK_TI if it is issued.
For STOCK_TI make sure you add “where QTY – QTY_REVERSE > 0 and TI_TYPE = ‘I’ “.
-
In short, no you can’t.
But you can create a Non-Stock work order and add the box content as BOM. The activity may be “Inspect” or “Work Order”. The former would work if there is no documentation required. The latter will create a sub-WO. You can also use replace or turn-in. It all depends on whether you need an inspection report and/or a release certificate.
If you are using the Shipping Module then the Non-Stock would not work as it cannot be shipped. Better create a PN/SN for the box and then create an External WO.
-
Nadim Ghazzaoui
Member05/27/2020 at 11:02 PM in reply to: PROBLEMS WITH CUSTOMIZED CRYSTAL REPORTS IN 12.1.9I’ve seen this before. Can’t remember but may be date format related. Does your test part master report have date columns in it? If yes, then try without date columns.
Is your test server setup with an American date and your production server setup with a standard date?
-
Kristen,
The WIP Board is what is used by a lot of MROs for live view of what is on time and what is less on-time but also where everything is. Attached you can see the original manual board plus the electronic one.
In the attached example, each column (phase) may represent one or several tasks from inside or outside the WO. Each Gate will represent one or several phases. TAT calculation is done by gate. Each Gate represents an area of your shop. With each Gate having its own TAT then it is easier to find bottlenecks before they cascade to the preceding gates.
The RECEIVED phase consists of the receiving module and the first task in the WO. Pack/Ship represents the last task in WO and the linked Shipping Order. Efficiency, TAT or delay is not about a single task or a single WO. It is about your total workload. It is all about being able to catch up the delay based on what is ahead. So if a unit is received and sitting in stores without a WO created for 5 days, you need to know about it. In the WIP board it will show as an RC number in yellow. Units marked as yellow or red will be fast tracked or otherwise they may affect units that follow.
Gate 2, QUOTE, represents the WO that needs quoting. Once WO quotes are sent, they will temporarily disappear from the WIP board. they will be parked in a separate board awaiting customer approval such as in the red box in the attached manual WIP board.
Back to your original post above, each task will have an Open, Closed and a couple of other statuses that can be used for every task. So when task Quote has been completed, the status is CLOSED rather than QUOTED.
The bird’s eye view will come from the dashboard rather than from the WO Browse Grid. It will show you all WOs for all tasks. Note that Quantum has the existing Toll Gate Analysis functionality to address this. But it is not as dynamic and flexible.
Whenever a WO goes into Orange or Red, it can then be escalates using Event Manager.
I gave you the simplistic version but there is a lot of process setup and internal standardizing that you need to do. If you have several type of shops then you need one dashboard for every shop. The standard TAT for an escape slide will not be the same as for life vests. That would be the bird’s eye view for every shop. Plus you will have the eagle eye view for the company which will be a master WIP board representing a colored dashboard count card for every shop.
Dashboard and reports are as good as the internal processes they report on.
Note that the Electronic WIP Board was done in Oracle APEX 5.1. It can now be created with Quantum Analytics 2.0.
-
How was the inventory originally uploaded?
Did you use the data services module ILS export?
-
I have done this for a customer. Each time a WP has its status changed to Invoiced, then an email is sent out with the crystal report as a pdf attachment and the body of the email containing the main points of the invoice such as work pack, registration, customer name, etc…
You will need to use the “Custom SQL Statement and Template” event which I had previously described in this forum as the King of Events.
Create a copy of your invoice report. In the new Crystal Report, replace “where inh.invc_number = ‘{?INVC}’†by “inh.inh_auto_key = {?INVC }†(INVC represents whatever you to call your parameter). Change INVC from string to integer. Make sure your remove the apostrophes in the SQL.
Load the report in Quantum. Run it and provide any INH_AUTO_KEY as the parameter. Save the reports using any style name as long as it is prefixed by “S_” (e.g. S_INVOICE_FOR_BILLING”).
Create a new XSL template in EMGR. The template will have a separate SQL that will trap newly posted invoices. The fields from the SQL can be used to populate the email header and email body (if needed). This SQL will need to have the INH_AUTO_KEY with a prefixed alias. E.G.: S_INH_AUTO_KEY. Example below
Create a new Custom SQL Event and Template event. The template to use will be the one created in step 3 above. The subject can be dynamic. Fill the other event parametes as in the attached file. Click OK.
Edit the event from step 4. In the event window, click on Report Styles. Click Add and then fill the window as in the attached image. Click OK twice.
I think that’s it. Anyone, please feel free to let us know if I forgot a step.
For the SQL:
SELECT
inh.inh_auto_key s_inh_auto_key,
‘Invoice # ‘ || inh.invc_number ||
‘ for Billing# ‘ || wqh.wqh_number ||
‘ has been posted’ email_subject
FROM
invc_header inh,
wo_quote_header wqh
WHERE
inh.wqh_auto_key = wqh.wqh_auto_key
AND inh.post_date >= ’22-May-2020′
The inner join in green will ensure that only invoices linked to WO/WP billing are processed. It will ignore all other invoices. You can also add INVC_TYPE = ‘I’ if you want credit notes to be ignored.
The two aliases in red are used in the event. The subject of the event is EMAIL_SUBJECT. This will make the email subject dynamic and will display the invoice and billing number. You can be creative and add A/C reg or you can make the email address dynamic for example the customer + accounting in cc.
Everytime the event is executed, it will log the INH_AUTO_KEY of any invoice that was processed by the event. This will avoid invoices being sent repeatedly. When you run the event for the first time, you also want to avoid the event to email all past invoices. In this case you can limit to any invoice posted after the date in blue.
-
Nadim Ghazzaoui
Member05/12/2020 at 5:19 AM in reply to: SYSTEM DIRECTED PICKS VIA BARCODE SCANNERSCallie,
I came across this today. It describes all the functionalities offered by the barcode module. You can also consult Chapter 19 of the help file which should also give you additional insight.
Nadim.
-
Nadim Ghazzaoui
Member05/07/2020 at 3:21 AM in reply to: TRANSFERRING LABOR, PARTS, AND CHARGES FROM ONE WORK PACKAGE TO ANOTHERYep, oversight from CC.
A few customers have requested for years that changing the Tail/Reg of an aircraft should keep the old Tail/Reg for historical Work Packs. This would have made it possible for you reassign the job card to a new WP with a different tail number.
I will raise the issue with CC again.
-
Nadim Ghazzaoui
Member05/06/2020 at 2:26 PM in reply to: TRANSFERRING LABOR, PARTS, AND CHARGES FROM ONE WORK PACKAGE TO ANOTHERIf it is the complete job card WIP then you can do “Global/Reassign Job Cards”. This will open a new window containing all open WPs for the same aircraft. Double-Click to select the WP you want to move the JC to. A new screen will pop up where you can flag the job cards to move.
There are some validation conditions such as you can’t reassign job cards already billed and maybe reserved part (you will need to issue first).
-
Once an invoice is posted, you can use the path below:
invc_header
gl_trans
gl_period
gl_fiscal
-
There is a new module called Mobile Warehousing that is in the works. It will have some features such as shortest route picking/storing, bin allocation based on dimensions and some other WMS functionalities.
The person I spoke to doesn’t know if batch picking will be available but he added that the specification suggestion window is still open. So what is exactly your requirement? I’m not knowledgeable in WMS functionalities but my understanding (as of 10 mns ago) is that batch picking and wave picking are not the same.
https://multichannelmerchant.com/operations/batch-vs-wave-picking/
I’ll forward your requirement and contact details.