Forum Replies Created

Page 4 of 7
  • Nadim Ghazzaoui

    Member
    07/05/2019 at 9:08 AM in reply to: MULTI LEVEL TEMPLATE

    I just realised that this has been posted in the Manufacturing board. I am not familiar with that module. Below are existing views for Templates. The second one should have what you need.

    VIEW_MO_ASS_TEMPLATE_INFO

    VIEW_MO_OPT_OPB_BY_OPM

    VIEW_MO_PRODUCT_REFRESH_NODE

  • Nadim Ghazzaoui

    Member
    07/05/2019 at 1:03 AM in reply to: WORK ORDER TASK SHEET

    Based on the second screenshot I would suggest changing:

    ‘WTT.WOT_AUTO_KEY = ‘+ WO_TASK[‘WOT_AUTO_KEY’];

    to

    ‘WTT.WTT_AUTO_KEY = ‘+ WO_TASK_TOOLS[‘WTT_AUTO_KEY’];

    If you are using the WOT as a parameter then it will bring back all tools for that WOT. Whereas using WTT will bring back the unique line.

  • Nadim Ghazzaoui

    Member
    07/04/2019 at 2:07 AM in reply to: WORK ORDER TASK SHEET

    Your code is for the third column which is the SN. Look OK. Shouldn’t duplicate.

    Maybe it is the placement of the memo. Which form is causing the issue?

  • Nadim Ghazzaoui

    Member
    07/03/2019 at 7:47 AM in reply to: DYNAMIC PARAMETERS SHOW BLANK VALUES SOMETIMES

    Use the parameters in the command. This will make Oracle server filter the query and send only the filtered result down the network cable. This is as opposed to the server sending the unfiltered result and the local workstation filtering.

    Should be something similar to:

    SELECT *

    FROM table

    WHERE (SI_NUMBER = ‘{?WO_NUMBER}’ or {?WO_NUMBER} IS NULL)

    AND (company_name = ‘{?COMPANY}’ or {?COMPANY} IS NULL)

  • Nadim Ghazzaoui

    Member
    06/25/2019 at 2:52 AM in reply to: SQL ASSISTANCE

    To run multiple statements in interactive sql:

    begin

    statement 1;

    statement 2;

    statement 3;

    end;

  • Nadim Ghazzaoui

    Member
    06/21/2019 at 12:25 AM in reply to: ADDING SERIALIZATION AFTER PARTS HAVE BEEN RECEIVED

    You will need to break down each multi-qty SL down to qty 1 each.

    Use the Stock Xfer/Stockline funtionality to do that. Then you can edit the PN and update the flag. After that make sure you add the SN for all units.

  • Nadim Ghazzaoui

    Member
    06/05/2019 at 8:16 PM in reply to: CORRECTING AIRCRAFT PARTICULARS

    You need access to the Oracle server.

    There should be a batch file called COPY_LIVE_TO_TRAIN_DP.bat which you need to execute.

    It is usually located in “D:RecreateSchema” with partition “D” being the same partition where the “QuantumDB” folder is located. I am assuming you are running Oracle on Windows and not Linux.

    As it may be the first time you run this, I would recommend you contact Tech Support. Just to make that you have a standard installation. They can run it this first time. After that you can run it as required.

  • Nadim Ghazzaoui

    Member
    06/05/2019 at 12:47 AM in reply to: CORRECTING AIRCRAFT PARTICULARS

    Closed cards will not be updated which is desirable.

    If your cards are signed off then you will need to reset sign-off for every individual card.

    Then you do Global/Status/Open. This will open all closed cards and pending cards.

    Update the meters for the aircraft.

    Update the WP end-item by clicking on Refresh All.

    This should update the open job cards.

    Then close the cards as per your procedure.

    I would recommend you copy your production schema to training schema and test there first.

    As for the authorities, there should be no issues as everything is audited.

  • Nadim Ghazzaoui

    Member
    06/03/2019 at 6:28 PM in reply to: MULTI LEVEL TEMPLATE

    Jake,

    You can use the following sql to get all the WOO_AUTO_KEY of a WO and its sub-WO from a nested table.

    SELECT COLUMN_VALUE FROM TABLE(QC_WO_PKG3.GET_SUB_WOO_LIST (WOO_AUTO_KEY, ‘T’));

    In yellow is the WOO_AUTO_KEY of the topmost WO.

    In blue, use ‘T’ to show the top most WOO or ‘F’ to filter out the topmost woo in the result.

    With this you can filter the BOM table using the resultant WOO_AUTO_KEY.

    Nadim.

  • Nadim Ghazzaoui

    Member
    06/02/2019 at 6:17 PM in reply to: SCAN TO ADD TOOLS JOBCARDS AND TASKS?

    By “need” you mean that to just link the tool to the JC without check-out.

    Negative, still not available. I doubt this will be developed as this functionality is available in Mobile Technician.

  • Nadim Ghazzaoui

    Member
    06/02/2019 at 2:49 AM in reply to: ELECTRONIC SHOP TRAVELERS & STAMPS

    You will need Mobile Technician. Current version 2.5 does the following:

    Labor recording

    Labor Batching

    Time And Attendance recording

    Assigning/Un-Assigning tasks

    Adding Bill of Materials

    Reserving/Un-reserving/Issuing Bill of Materials

    Reserving/Un- reserving Bill of Materials with Barcoding

    Quick BOM updates

    Add Tools

    Tool check In/Out

    Card Status Change

    Add Non-Routine Card

    Update symptoms/faults/corrective actions

    Access to document imaging (view)

    Image capture (picture taking)

    Sign off

    Lead technician screen dashboard (visibility of tasks assigned to his team, and ability to assign tasks)

    It is a great web app that is OS agnostic and very responsive.

    Check this article on the CC blog:

    https://componentcontrol.wordpress.com/2018/02/14/safran-landing-systems-rolls-out-quantum-control-mobiletech-to-automate-the-real-time-collection-of-labor/

  • Nadim Ghazzaoui

    Member
    06/01/2019 at 3:23 AM in reply to: ODBC AS A NAMED USER INSTEAD OF QCTL OR TRAIN

    For QCTL, you can use user “CRYSTAL” and password “report”.

    This user has only select privileges on QCTL. It is setup by default by CC. If you have an old installation then it may be worth refreshing the synonyms. Any new table or view created since your installation will not be available to this user.

    Just login as user crystal using sqlplus and execute:

    exec bind_to_quantum_schema(‘QCTL’);

  • Nadim Ghazzaoui

    Member
    04/28/2019 at 12:23 AM in reply to: STRING ERROR ON AP REPORT

    The function that you excluded calculates the payment due date based on certain parameters.

    TCF_AUTO_KEY: This is the Term Code formula. It accepts nulls in case you are using the Due Days only.

    V_USE_VENDOR_DATE: This comes from GL Setup. It is a checkbox to either use the AP Entry Date (APA.ENTRY_DATE) or the Vendor Invoice Date (APA.VEND_INVC_DATE).

    DUE_DAYS: The Due Days from the Term Code. Will use zero if null.

    This function returns a date.

    Your best bet to make this work is to supply a payment due date column with alias DUE_DATE.

    I would suppose your report already has some sort of due date or otherwise how can you calculate the aging. So rename the column in your sql as DUE_DATE.

  • Nadim Ghazzaoui

    Member
    04/12/2019 at 12:43 AM in reply to: DESPATCH NOTE (DELIVERY ORDER) SM

    Brandon,

    The code below should work for both the Shipping Order and the Shipments.

    A Shipping Order may have only one Quantum order so you can place it in the header.

    A Shipment may have one or several Shipping Orders therefore one or several Quantum orders. You would place it at the line level.

    For the RO and PO return, it will use the Quantum order number.

    For the SO and WO, it will use the customer order number.

    Nadim.

    if SM_HEADER[‘WOO_AUTO_KEY’] > 0 then

    Text := ‘: ‘ + GetData (‘WO_OPERATION’, ‘WOO_AUTO_KEY’, ‘SI_NUMBER’,SM_HEADER[‘WOO_AUTO_KEY’])

    else if SM_HEADER[‘ROH_AUTO_KEY’] > 0 then

    Text := ‘: ‘ + GetData (‘RO_HEADER’, ‘ROH_AUTO_KEY’, ‘RO_NUMBER’,SM_HEADER[‘ROH_AUTO_KEY’])

    else if SM_HEADER[‘POH_AUTO_KEY’] > 0 then

    Text := ‘: ‘ + GetData (‘PO_HEADER’, ‘POH_AUTO_KEY’, ‘PO_NUMBER’,SM_HEADER[‘POH_AUTO_KEY’])

    else if SM_HEADER[‘SOH_AUTO_KEY’] > 0 then

    Text := ‘: ‘ + GetData (‘SO_HEADER’, ‘SOH_AUTO_KEY’, ‘SO_NUMBER’,SM_HEADER[‘SOH_AUTO_KEY’]);

  • Nadim Ghazzaoui

    Member
    02/14/2019 at 11:33 PM in reply to: WORKSTATION DISK SPACE NEEDED

    Mike,

    To control the location of the Quantum client redistributables, you need to install them before the Quantum client.

    For Oracle you would run:

    \QuantumServerQClientApplication DataOUIsetup.exe

    But in this case you will need to copy and paste the tnsnames.ora as it will not be done automatically.

    The other executables such as BDE or Crystal Viewer are located in:

    \QuantumServerQClientISSetupPrerequisites

    After that, you can install Quantum clients normally.

    Nadim.

  • Nadim Ghazzaoui

    Member
    02/14/2019 at 11:19 PM in reply to: DATA EXPORTING

    Pat,

    Event Manager will do that. If the changes are audited in the Audit Trail table such as a status change then the script can be set to only send new ADT_AUTO_KEY. The key is linked to the originating key such as the task or job card. This should enable you to export any linked data.

    It will not work for unaudited fields such as someone changing the priority of a PO but there are ways around it.

    Nadim.

  • Nadim Ghazzaoui

    Member
    02/14/2019 at 11:03 PM in reply to: RETAIN CUSTOM VIEWS WHEN UPGRADING

    Custom Views in a schema that has been upgraded by OCDV are indeed deleted after each upgrade.

    When CC installs Quantum, in addition to QCTL, TRAIN and SETUP, schemas CRYSTAL, DIA and DIATRAIN are also installed.

    The CRYSTAL schema provides a secure read-only (select) access to QCTL. The DIA schemas gives full access (select, update, delete, execute, etc…) to their respective schemas.

    The CRYSTAL schema is created so as to allow a more secure access to the Quantum tables and views from external reporting tools.

    I would recommend that you create your custom views in the schema CRYSTAL. They will never get deleted.

    After you create a view, you will need to grant a select privilege to the view you created i.e.: authorise QCTL to access the view.

    For example if you created a view called MY_VIEW, login to CRYSTAL from SQL Developer or SQLPLUS and run:

    grant select on MY_VIEW to QCTL;

    If accessing the view in Event Manager or the integrated Crystal viewer then you will need to prefix the schema name such as “select * from crystal.my_view”.

    Alternatively, you can create a synonym in QCTL such as “create or replace synonym my_view for crystal.my_view;”.

    Select statements from Crystal to QCTL do not need to have the schema name prefixed to the table name. So “select * from parts_master” would work. This is because synonyms have been setup when this schema was created. However, if your Quantum installation is a few years old, then tables created after your installation will not have the synonyms. Tech support should be able to refresh it for you. For the experienced ones, you can refresh the synonyms by executing this procedure from inside the CRYSTAL schema.

    Exec adm_pkg.bind_to_quantum_schema(‘QCTL’);

    The password for the CRYSTAL schema is “report” (not “reports”).

    If you start building custom views in CRYSTAL then make sure you add the schema to the CC created back up script. By default this schema is not backed up.

  • Nadim Ghazzaoui

    Member
    01/29/2019 at 1:38 AM in reply to: RF SCANNER OVER TERMINAL SERVER SESSION?

    Steve,

    The out of the box way would be to install a Quantum and Oracle client locally in Singapore. This Quantum installation will only be used to launch rf.exe or genericbc.exe through the VPN. You do not even need to run Quantum.

    Do not install Quantum over the VPN network though as it will take ages. Have the install files at hand locally.

    In the past Pietro had also recommended https://www.remote-scan.com/ which should also work.

    Nadim.

  • Nadim Ghazzaoui

    Member
    12/11/2018 at 9:31 PM in reply to: RETURNING A TURNED-IN BOM

    Yes, it has been completed in 10.10.

    Menu Part Mgt/Shipping/Return To Customer.

    This will create an SM Header. After the user clicks OK, a flagging screen with all turned in items will be displayed.

    Works pretty good.

  • Nadim Ghazzaoui

    Member
    11/19/2018 at 9:28 PM in reply to: JDBC CONNECTION

    Yes.

    jdbc:oracle:thin:@hostname:1521:cctl

    Hostname is the oracle server name or oracle server ip.

  • Nadim Ghazzaoui

    Member
    09/26/2018 at 11:14 AM in reply to: PARTS QUOTATION RULES

    Lukas,

    The price used is based on the Billing Group rule. If the BG rule for parts is Cost + Markup then it will use the cost of the reserved SL. If there is no reserved SL then the cost used is as described in the help file.

    Nadim.

  • Nadim Ghazzaoui

    Member
    07/25/2018 at 6:55 AM in reply to: USING BARCODE WITH QUANTUM CLOUD

    I did this for a server in Europe with BC stations in the US and in Asia.

    Speed was slow until IT figured a way to compress the packets over the VPN. For the rest of Quantum, the users were using Citrix. So the only local Oracle and Quantum clients were on standalone PCs for use with the Barcode Station.

    In any case the error you are getting is an Oracle error and not a Quantum error. It means the connection to the server was lost or that your session was killed.

    As John wrote, make sure you have a stable connection.

  • What does your SQL look like?

    What I can think of:

    WOO_AUTO_KEY column does not exist

    WOO_AUTO_KEY has an alias with a different name

    WOO_AUTO_KEY has one or several rows returning NULL

  • Nadim Ghazzaoui

    Member
    06/13/2018 at 6:22 AM in reply to: ADD WORK PACK FORM QUERIES

    Craig,

    The inability to frag and drop icons and time counters are a known Screen Editor issue.

    Electronic Aircraft Indicator: This was custom programming for an external integration done for Embraer and Flightdocs. I believe it has been discontinued as its parent Bridge Reference field (in aircraft record) is now being used to override CAMP Connect models.

    Pre-Draw Date: For large checks, the date from which logistics starts the procuring and/or reserving material prior to aircraft arrival.

    Nadim.

  • Nadim Ghazzaoui

    Member
    06/12/2018 at 6:20 AM in reply to: ISSUING MULTIPLE CERTIFICATIONS

    Issuing multi-certs has been possible ever since the Certs functionality was added as a custom programming request in 2012. So Brandon may be right. There may be a flag somewhere to turn this on or off.

    In my test 10.11 (and maybe starting 10.9) there is a function that only users with the capability for the Main Component can sign-off a cert.

    Also there is currently this custom programming request :

    Select in the WO Header the cert types required by the customer.

    A single click in Global/Certifications will create all certs listed in point 1. No other cert types can be issued.

  • Nadim Ghazzaoui

    Member
    06/11/2018 at 6:09 AM in reply to: UNABLE TO SEE ALL BATCHES

    Is it possible that the user has profile restrictions on the accounting company as below?

  • Nadim Ghazzaoui

    Member
    06/11/2018 at 6:03 AM in reply to: ISSUING MULTIPLE CERTIFICATIONS

    But this is what Global/Certifications does. It allows to issue one or more certs to the Main Component SL.

    Each one of the cert types in the image above is linked to its own cert form.

    The image below shows the 3 cert types issued to SL#272.

  • Nadim Ghazzaoui

    Member
    06/10/2018 at 3:51 AM in reply to: ISSUING MULTIPLE CERTIFICATIONS

    Brandon,

    If you are using Global/Certifications then you can have as many ARC types as you need. These ARCs can have their own distinct number log, a shared number log or use the WO number (Block 3).

    In the Browsing Cert Types window just click “Add”.

    Nadim.

  • Nadim Ghazzaoui

    Member
    05/30/2018 at 6:13 AM in reply to: CUSTOM EVENT RECURRENCE

    Ab,

    Try this:

    FREQ=MONTHLY;BYMONTHDAY=-3,-2,-1;BYHOUR=1;BYMINUTE=0;BYSECOND=0

    Nadim.

  • Nadim Ghazzaoui

    Member
    05/15/2018 at 7:22 AM in reply to: CHANGE FORMATTING OF FLOATTOSTR

    Try:

    var

    fullNumber : integer;

    decimal : double;

    begin

    fullNumber := Trunc(WP_MODELS[‘METER_HOURS’]);

    decimal := (RoundToNDecimals(WP_MODELS[‘METER_HOURS’] – fullNumber, 2) * 100);

    Text := intToStr(fullNumber) + ‘:’ + FloatToStr(decimal);

    end;

  • Nadim Ghazzaoui

    Member
    05/03/2018 at 11:51 PM in reply to: ANY OTHER RF BAR CODE SCANNERS WORKS WITH QUANTUM?

    Ken,

    What will you be using the BC with?

    For the RF scanner terminals, Worth Data is the only supported device as it has Quantum menus displaying on device’s screen.

    Otherwise for labor recording, task statusing, tool and stock issue and stock transfer then you can use GenericBC.exe. With generic bc you use the $40 supermarket USB scanners. The exe is located in the Quantum folder on the server.

    To be able to see all tabs in generic.exe, go to WO Control/Barcode Settings tab and make sure all checkboxes are checked for Tab Visibility.

    Nadim.

  • Nadim Ghazzaoui

    Member
    05/03/2018 at 11:42 PM in reply to: REPORT TO SHOW WHERE TOOL USED

    This should work:

    WITH i

    AS (SELECT *

    FROM (SELECT WTH_AUTO_KEY,

    QTY_CHECKED_OUT,

    Lead(WTH_AUTO_KEY)

    over (

    PARTITION BY WTT_AUTO_KEY

    ORDER BY WTH_AUTO_KEY) WTH_IN

    FROM WO_TOOLS_HISTORY)

    WHERE QTY_CHECKED_OUT > 0)

    SELECT wth.QTY_CHECKED_OUT,

    wth.DATE_ISSUED

    DATE_CHECKED_OUT,

    su1.USER_NAME USER_NAME_OUT,

    (SELECT DATE_ISSUED

    FROM WO_TOOLS_HISTORY

    WHERE WTH_AUTO_KEY = I.WTH_IN)

    DATE_CHECKED_IN,

    (SELECT USER_NAME

    FROM SYS_USERS

    WHERE SYSUR_AUTO_KEY = (SELECT SYSUR_TOOL_ISSUED

    FROM WO_TOOLS_HISTORY

    WHERE WTH_AUTO_KEY = I.WTH_IN)) USER_NAME_IN,

    pnm.PN,

    pnm.DESCRIPTION,

    stm.STOCK_LINE,

    stm.SERIAL_NUMBER,

    wot.SEQUENCE,

    stm.INSPECT_DUE_DATE,

    woo.SI_NUMBER,

    woo.TAIL_NUMBER,

    woo.MAKE

    FROM WO_TOOLS_HISTORY wth,

    WO_TASK_TOOLS wtt,

    WO_TASK wot,

    PARTS_MASTER pnm,

    STOCK stm,

    SYS_USERS su1,

    SYS_USERS su2,

    WO_OPERATION woo,

    i

    WHERE su1.SYSUR_AUTO_KEY (+) = wth.SYSUR_AUTO_KEY

    AND su2.SYSUR_AUTO_KEY (+) = wth.SYSUR_TOOL_ISSUED

    AND pnm.PNM_AUTO_KEY = stm.PNM_AUTO_KEY

    AND stm.STM_AUTO_KEY = wth.STM_AUTO_KEY

    AND wth.WTT_AUTO_KEY = wtt.WTT_AUTO_KEY

    AND wtt.WOT_AUTO_KEY = wot.WOT_AUTO_KEY

    AND woo.WOO_AUTO_KEY = wot.WOO_AUTO_KEY

    AND wth.WTH_AUTO_KEY = I.WTH_AUTO_KEY (+)

    AND wth.QTY_CHECKED_OUT = 1

    ORDER BY wth.WTH_AUTO_KEY DESC

  • Nadim Ghazzaoui

    Member
    04/30/2018 at 12:10 PM in reply to: REPLYTO: ON CUSTOM SQL EVENT

    You need to create you own alias using the SQL.

    In the P_HEADER_PREFIX enter a prefix such as “H_”.

    Then in the sql you will have something like

    SELECT email_address H_EMAIL_ADDRESS, first_name, last_name FROM some_table

    The H_EMAIL_ADDRESS would be you alias. It works in To, CC and subject. I never tried in Reply To.

  • Nadim Ghazzaoui

    Member
    03/28/2018 at 12:18 AM in reply to: CONTACT MANAGER VS EXTERNAL CRM

    There are a lot of tools out there that are way better than Contact Manager. But for some, the integration and automation offered by Contact Manager outweighs the added functionality and ease of use offered by other CRM tools.

    So it all depends on your priority.

  • Nadim Ghazzaoui

    Member
    03/28/2018 at 12:08 AM in reply to: SALES & CREDITS BY ROUTE CODE

    My understanding is that you need to list sales and credits and not deduct the credits. In this case do a Union query first and then filter the predicates in an outer query. This is much easier than including everything in a single query. Plus it offers better performance.

    SELECT pn,

    route_code,

    SUM(qty) qty

    FROM (

    — Get non credit sales – Excluded naturally by the inner join to the STOCK_RESERVATIONS

    SELECT stm.pn,

    ind.route_code,

    ind.qty_ship qty,

    stm.cnc_auto_key,

    sod.entry_date,

    pcc.cond_level

    FROM invc_detail ind

    inner join stock_reservations str

    ON ind.ind_auto_key = str.ind_auto_key

    inner join stock stm

    ON str.stm_auto_key = stm.stm_auto_key

    inner join so_detail sod

    ON str.sod_auto_key = sod.sod_auto_key

    inner join part_condition_codes pcc

    ON stm.pcc_auto_key = pcc.pcc_auto_key

    UNION ALL

    — Get all credits based on inner join from invc_detail to stock and qty_credit

    SELECT stm.pn,

    ind.route_code,

    — use “stm.qty_credit * -1” should you need a negaive credit

    stm.qty_credit qty,

    stm.cnc_auto_key,

    sod.entry_date,

    pcc.cond_level

    FROM invc_detail ind

    inner join stock stm

    ON ind.ind_auto_key = stm.ind_auto_key

    inner join so_detail sod

    ON ind.sod_auto_key = sod.sod_auto_key

    inner join part_condition_codes pcc

    ON stm.pcc_auto_key = pcc.pcc_auto_key)

    WHERE cond_level = 80

    AND cnc_auto_key NOT IN ( 17, 35, 34, 38,

    22, 24, 29, 54,

    39, 41, 42, 43,

    44, 45, 46, 47, 40 )

    AND To_char(entry_date, ‘yyyy’) IN ( ‘2015’, ‘2016’, ‘2017’ )

    GROUP BY pn,

    route_code

  • Nadim Ghazzaoui

    Member
    03/23/2018 at 3:44 AM in reply to: EXCEL INSTRUCTION TO CONNECT TO DATABASE

    What do you mean by “not working properly”? Do you have any error message?

    Otherwise the most common issue when upgrading to Office 365 is the bit length.

    The default Quantum Oracle client is 32-bit.

    Most MIS will install Office 365 as 64-bit.

    The Oracle ODBC driver needs to have the same bit length as Office 365. So if you have a 64-bit Office 365 then you need a 64-bit Oracle ODBC driver.

    64-bit ODBC Drivers:

    c:windowssystem32odbcad32.exe

    32-bit ODBC Drivers:

    c:windowssyswow64odbcad32.exe

  • Nadim Ghazzaoui

    Member
    03/20/2018 at 4:41 AM in reply to: COPY ENTIRE REPAIR ORDER FOR SAME PART

    For this particular procedure, you will need to invoke it from Interactive SQL.

    But before you can do that, you will need to give QCTL privileges to execute a procedure it doesn’t own.

    So as user DIA in sqlplus or SQL Developer, you would run:

    grant execute on copy_ro to qctl;

    Then in interactive SQL you would execute

    begin

    dia.copy_ro(‘RO1234’);

    end;

    This procedure just creates the RO without any stock reservation. So it is not really a procedure to run from a WO.

    If you want a WO to trigger a procedure then better use a WO Status. You can use an event manager “Execute Stored Procedure” event. This event will execute the procedure when a certain WO status is detected (e.g. “Create RO”) and then change the WO Status to something like “Out on RO”.

    But for this, you first need a block in the procedure that will move the Main Component reservation from the WO to the RO after the ROD is created.

    I think this is what happens:

    WOO STR line is deleted from STOCK_RESERVATIONS

    ROD STR line is created in STOCK_RESERVATION ROD_AUTO_KEY

    ROD WOO links is created in RO_DETAIL WOO_AUTO_KEY

  • Nadim Ghazzaoui

    Member
    03/12/2018 at 2:00 AM in reply to: COPY ENTIRE REPAIR ORDER FOR SAME PART

    Mike,

    Don’t alter anything in your production environment as you’ll be in breach of both the SLA and SMA.

    Do a procedure in the DIA schema instead. Something like the what is below.

    My assumption is that your templated RO is Open and has no reservation. Otherwise the code needs some minor additions.

    I only tested on a single RO. So I make no representation that this will always work. Also you need to test receiving, reservation and RR just to make sure everything works normally from the copied RO.

    You can add the header clauses or part clauses as necessary in the code. Ask for help here if you need.

    I have added comments so as to make it understandable.

    You can also convert this procedure to a function that will return the new RO number of you are using a tool such as sql developer.

    CREATE OR replace PROCEDURE Copy_ro (p_ro_number VARCHAR2)

    IS

    c SYS_REFCURSOR;

    v_roh_old NUMBER;

    v_ro_number_new VARCHAR2(20);

    BEGIN

    –Get the next RO Number (my RO Log number is 5)

    c := qc_sys_pkg.Get_next_log_number(NULL, NULL, 5);

    FETCH c INTO v_ro_number_new;

    CLOSE c;

    FOR roh IN (SELECT *

    FROM ro_header

    WHERE Upper(ro_number) = Upper(p_ro_number)) LOOP

    –Store original ROH_AUTO_KEY. It will be needed to get the rod

    v_roh_old := roh.roh_auto_key;

    –Replace old ROH by new ROH

    roh.roh_auto_key := g_roh_auto_key.NEXTVAL;

    –Replace old RO Number by new RO Number

    roh.ro_number := v_ro_number_new;

    INSERT INTO ro_header

    VALUES roh;

    FOR rod IN (SELECT *

    FROM ro_detail

    WHERE roh_auto_key = v_roh_old) LOOP

    –Replace old ROD by new ROD

    rod.rod_auto_key := g_rod_auto_key.NEXTVAL;

    –Replace old ROH by new ROH

    rod.roh_auto_key := roh.roh_auto_key;

    INSERT INTO ro_detail

    VALUES rod;

    END LOOP;

    END LOOP;

    EXCEPTION

    WHEN OTHERS THEN

    IF c%isopen THEN

    CLOSE c;

    END IF;

    RAISE;

    END;

  • Nadim Ghazzaoui

    Member
    03/12/2018 at 12:34 AM in reply to: DATAPIPELINE

    First thing, forget about changing the data pipe. No way (unless you decide the change the PL/SQL package).

    What you can do is create memo fields side by side to represent each column you need.

    Then using a tOracleDataset SQL query, you populate the memo fields using a While Loop. The reason for the While Loop is because you may issue several batches (stocklines) to the same BOM part.

    Otherwise if it is one stockline per BOM item then you don’t even need the memo fields or While Loop. All you would need are normal text boxes.

  • Nadim Ghazzaoui

    Member
    02/23/2018 at 3:12 PM in reply to: LOANER PO

    It is just a question of the form not keeping up with some custom programming.

    Replace what is in the exchange region of the PO Form with the attached code. This will print Loan for the loaners.

  • Nadim Ghazzaoui

    Member
    02/20/2018 at 1:00 AM in reply to: WORK PACKAGE – TRADE IN PART

    You need to have the PN to be issued be an alternate of the PN listed in the BOM. The turn-in will then let you receive both PNs.

    Alternatively and if you don’t want to mess with the Alternates, then create two BOM lines: one with activity Turn In and one with activity Issue.

    For the costing, you need to have “Reconcile Turn-In Stock” checked in WO Control/BOM. Then after turn-in click on Part Mgt/Turn-in Costing Reconciliation. From there you can set a value for the turned-in core.

  • Nadim Ghazzaoui

    Member
    01/23/2018 at 1:46 AM in reply to: CONTRACT MANAGEMENT

    Rental Leasing module with Event Manager.

    That’s how you get your SMA billing from CC 🙂

  • Nadim Ghazzaoui

    Member
    01/16/2018 at 11:09 PM in reply to: CV_UDF_054

    CV_UDF_054 is used by a custom programming Stockmarket bridge. It is not visible in the UI (yet).

    As Ian mentioned, if you are tracking a single date, then use Expiry Date.

    Otherwise in 10.9, the updated Company Attribute allows you to create new fields and set them as date only. CC did some great work with the attributes with which you can now add checkboxes, combo boxes, memos or fields to the UI.

    You can also use the imaging Expiry Date for documents that expire. So for example, you review your customers every two years for trade compliance but need to have you international customer sign an end-use certification yearly. So each one of these documents can have its own expiry date.

  • Nadim Ghazzaoui

    Member
    01/16/2018 at 10:42 PM in reply to: RETURNING A TURNED-IN BOM

    Apart from workarounds, there is no native way to return a turned-in stock to WO/WP customers. Some workarounds are here: http://quegroup.org/f_aircraft_maintenance/4431577

    I have put in a request with CC as this has been requested by several customers. It is is being researched. The central idea is to link the turn-in to the shipping management module.

  • Nadim Ghazzaoui

    Member
    01/14/2018 at 9:45 AM in reply to: WO PICK TICKET NOT SORTING CORRECTLY

    You can’t. The reports are sorted by the query that creates the data pipe.

  • Nadim Ghazzaoui

    Member
    12/17/2017 at 3:16 AM in reply to: PARTS ON A LOGBOOK ENTRY

    Pat,

    Try replacing your code with this:

    begin

    Region1.Visible := (WO_TASK_ISSUED_PARTS[‘TI_TYPE’] = ‘I’);

    end;

  • To my knowledge there isn’t.

    You best bet would be to reserve the alternate PN against the original BOM PN. In this case, you may need to do some changes to your forms and reports.

    In the STD forms and reports, the PN displayed is always the BOM PN regardless of what PN was actually issued.

  • Nadim Ghazzaoui

    Member
    11/28/2017 at 4:51 AM in reply to: SIMPLE STOCK REPORT

    Jim,

    These are the issues:

    You may have warehouses with warehouse level and no stock

    You may have warehouses with stock and warehouse level

    You may have warehouses with stock and no warehouse level

    You may have PNs with stock and no warehouse level

    You may have PNs with no stock and with warehouse level

    Warehouse table needs to be linked to two tables, STOCK and WAREHOUSE_LEVEL as they both represent different entities

    If you try to do this this in a single query, you will end up with a double table, a double join and performance issues.

    This is why it is better use sub-queries. In the sql below, the top query gets all stock qty by warehouse and the bottom query gets all PN having warehouse levels. Both queries are combined into a single query using UNION ALL and then aggregated to get total by unique PN/WHS line. Theoretically, it should capture all data. Please test extensively. Let me know of any issues.

    Nadim.

    PS: When you copy and paste you may need to delete and retype any single quotes in the code

    SELECT pn,

    description,

    warehouse_code,

    Max(qty_min) qty_min,

    SUM(qty_available) qty_available,

    SUM(qty_reserved) qty_reserved

    FROM (SELECT stm.pn,

    stm.description,

    whs.warehouse_code,

    stm.pnm_auto_key,

    whs.whs_auto_key,

    0 qty_min,

    stm.qty_available,

    stm.qty_reserved,

    stm.stock_line

    FROM stock stm,

    warehouse whs

    WHERE whs.whs_auto_key = stm.whs_auto_key

    AND stm.historical_flag = ‘F’

    UNION ALL

    SELECT pnm.pn,

    pnm.description,

    whs.warehouse_code,

    pnm.pnm_auto_key,

    whs.whs_auto_key,

    whl.qty_min,

    0 qty_available,

    0 qty_reserved,

    0 stock_line

    FROM warehouse whs,

    warehouse_level whl,

    parts_master pnm

    WHERE whs.whs_auto_key = whl.whs_auto_key

    AND whl.pnm_auto_key = pnm.pnm_auto_key)

    GROUP BY pn,

    description,

    warehouse_code

    ORDER BY pn,

    warehouse_code

  • Nadim Ghazzaoui

    Member
    11/27/2017 at 11:41 PM in reply to: RECONCILING MAIN COMPONENT

    Paul,

    You can use this procedure to clear WIP:

    BEGIN

    qc_wip_pkg.build_wo_log(woo_auto_key);

    END;

    You will need to run an update statement to change the WO_DISP before or after.

    Nadim.

  • Nadim Ghazzaoui

    Member
    11/24/2017 at 2:44 AM in reply to: COLUMN ‘DUE DATE’

    It shows in Source but not in the main window. Looks like the link is broken. It gives an error column not found. This means someone forgot to put it in the SQL. Can be fixed with a patch.

Page 4 of 7