Forum Replies Created

Page 1 of 7
  • Alex,

    Use the “Schedule Table/View Snapshot” event.

    1- Build a view in CRYSTAL schema.

    2- As CRYSTAL: grant select on YOUR_VIEW_NAME to QCTL;

    3- For the network folder:

    As QCTL: create or replace directory YOUR_DIRECTORY_NAME as ‘\\NETWORK_HOST\NETWORK_FOLDER_NAME’;

    4- In the event parameters:

    Table Name: CRYSTAL.YOUR_VIEW_NAME
    Directory: YOUR_DIRECTORY_NAME

    The rest is self explanatory.

  • Nadim Ghazzaoui

    Member
    07/10/2023 at 1:23 AM in reply to: Automatic Emailing of Customer Invoices

    This can be done using the Event Manager module. This module will additionally allow you to automatically send out AR Statements as well.

  • Nadim Ghazzaoui

    Member
    07/07/2022 at 8:03 AM in reply to: Limit WO status moves

    In WO Control turn on Verify Unlock Users.

    In WO Status, click on Unlock the the users that can move the WO out of the status.

    If it is empty then anyone can move it out. If there are users then only these users can unlock.

  • Nadim Ghazzaoui

    Member
    06/26/2022 at 9:45 AM in reply to: Using Crystal views in Event Manager

    Indeed, you are regranting a grant. I forgot about that point. Apologies.

    CRYSTAL user has been setup with SELECT ANY TABLE privilege. This why user CRYSTAL can access any table from any schema. But this privilege does not allow to pass on a grant to another user including the object owner (i.e.: QCTL).

    Your best way forward is to create a grant to CRYSTAL for each table in your view using the WITH GRANT OPTION clause. For example from QCTL:

    Grant select on WO_TASK_LABOR to crystal with grant option

    After you complete this then from CRYSTAL, execute the grant select on my_crystal_view to qctl.

  • ECCN, CoC and Harmonisation Tarif Codes are required for customs purposes. Better use Customs Invoice in shipping module. Not all exports have sales invoices such as RO or PO Returns. So the shipping module will cover all exports.

  • Nadim Ghazzaoui

    Member
    06/21/2022 at 9:13 AM in reply to: Using Crystal views in Event Manager

    And yes, that is a better practice.

    Any view you add to QCTL will be deleted during your next upgrade.

  • Nadim Ghazzaoui

    Member
    06/21/2022 at 9:11 AM in reply to: Using Crystal views in Event Manager

    In Crystal:

    grant select on my_crystal_view to qctl

    In event Manager prefix crystal to the view name:

    select * from crystal.my_crystal_view

  • Nadim Ghazzaoui

    Member
    05/16/2022 at 9:19 AM in reply to: Accumulation? what is it?

    <div>It allows the user to have a hierarchy of the BOM and sub-WOs. For BOMs with accumulation checked, the user will be able to see what has been turned-in, issued, etc… Plus the user can double click on a sub-WO node to open that sub-WO-
    </div><div>

    </div>

  • Nadim Ghazzaoui

    Member
    01/18/2022 at 1:48 AM in reply to: WANTING TO LOCK DOWN CORE REPLACE CHARGE

    Try using the Enabled property:
    Form.txtReplaceCharge.Enabled := True
    else
    Form.txtReplaceCharge.Enabled := False;

  • Nadim Ghazzaoui

    Member
    01/12/2022 at 2:55 AM in reply to: PO WARNING TEMPLATE IN EVENT MANAGER

    If you’re on version 12.something then click on the Templates tab. In the bottom right you will see a pane containing the XML. Any element under ROW/HEADER/DATA can be used as keyword.
    Alternatively you can save the XML file and open it. Click on Save, Cancel and Yes to save the XML file.

  • Nadim Ghazzaoui

    Member
    12/19/2021 at 2:03 PM in reply to: MAKING AD’S NOT-APPLICABLE

    Click on the airframe node and then the AD tab on the right. Click on the AD line and then the “N/A Reason” button at the bottom of the screen.

  • Nadim Ghazzaoui

    Member
    11/04/2021 at 1:23 AM in reply to: GENERATED INTEAD OF EMAILED

    Which version of Quantum are you on and when did this start to happen? Witnessed something similar which needed a patch for the billing event.

  • Nadim Ghazzaoui

    Member
    08/17/2021 at 7:06 AM in reply to: SUB WO WITH SERIALIZED PARTS IN SHOP CONTROL

    In 12.4.1:

    “New functionality has been implemented to support splitting sub-work order quantities into multiple sub-work orders while maintaining original detail and parent link.

    New “Split” option has been added under the Global > Main Component sub menu and is only available for sub-work orders in WIP disposition with a main component quantity reserved greater than one. This option opens the “Splitting Main Component” window for flagging the stock line and specifying the quantity to split. The “Qty to Split” can be reserved back to the same sub-work order as a separate stock line or it can be reserved to a new sub-work order. When a new sub-work order is created, only the header values from the original sub-work order are copied. Tasks, BOM items, etc. are not copied. Any existing cost accumulated on the sub-work order remain with the sub-work order they were recorded against. New sub-work orders retain a link to the parent work order.

    Security has been added for the Split option (Maintain User Security Profiles: Quantum > Work Order > Global > Main Component Split).”

  • Nadim Ghazzaoui

    Member
    06/16/2021 at 1:39 AM in reply to: BALANCE SHEET / VIEW PACKAGE

    This is an overloaded function.

    Better to use this version:

    select * from table(cast(RPT_GL_PKG.GET_INCOME_STATEMENT as T_INCOME_STATEMENT_LIST))

    You can the use the WHERE clause to filter which will give you more control.

  • Nadim Ghazzaoui

    Member
    05/05/2021 at 1:49 AM in reply to: STOP BEING ABLE TO UN-ISSUE PARTS AFTER WP IN COG

    You need to connect the invoice posting to a task status. This is a status that is automatically applied to every task in the billing once invoice is posted.

    This task status e.g.: BILLED, will have “Block Activity” checked and “Allow Inventory Functions” unchecked.

    But then users can simply change the task status to Open so as to un-issue. To further block them, add Unlock Users to status BILLED. This means that only the unlock users are allowed to take the status out of BILLLED to a different status. So for example only accounting users can change the task status away from BILLED.

    Note that “Block Activity” is not necessary but it will block manual labor recording.

  • Nadim Ghazzaoui

    Member
    04/21/2021 at 3:19 AM in reply to: GETTING PACKAGE DATA INTO CRYSTAL

    As QCTL execute:

    grant execute on T_WQD_TOTAL_PRICE_LIST to crystal;

    As CRYSTAL execute:

    create or replace synonym T_WQD_TOTAL_PRICE_LIST for QCTL.T_WQD_TOTAL_PRICE_LIST;

    This second step is for convenience only. This will avoid you having to prefix QCTL to the type name.

  • Nadim Ghazzaoui

    Member
    04/19/2021 at 6:12 AM in reply to: OCDIA

    Just throwing a few ideas.

    Is the log file being created? Is the bad file being created? May be a write issue. If it is being created but cannot open then may be a read issue.

    Did you try “grant read,write on directory dia_import to dia”?

    Otherwise export the dia schema, create a new dia schema and import the dump. Then execute the bind_to_quantum_schema.

  • Nadim Ghazzaoui

    Member
    04/15/2021 at 5:49 AM in reply to: OCDIA

    For Post 12.2+ dia patch using new ocdia.exe executable and including S3 bucket import, patch attached.

  • Nadim Ghazzaoui

    Member
    04/15/2021 at 5:47 AM in reply to: OCDIA

    For Pre-12.2 DIA not importing/adding table, patch attached.

  • Nadim Ghazzaoui

    Member
    04/13/2021 at 12:32 AM in reply to: AIRCRAFT MAINTENANCE MODULE

    Depends on the aircraft. First thing, for performing maintenance, Quantum Aircraft Services module is better. For continuing airworthiness then CAMP is better provided your aircraft is on CAMP.

    For non-CAMP tracked aircrafts, Quantum’s configuration management module is a good robust module. It is well integrated with the Aircraft Services module.

  • Nadim Ghazzaoui

    Member
    03/19/2021 at 9:59 AM in reply to: MOBILE TECH ISSUES-BATCHING

    Fair enough but Aircraft Services and Shop Order use the same tables and triggers. It will certainly not be the first time when CC added an enhancement meant for one module but that affected both.

    Try: select allow_batch_labor from mobile_control

    If it comes back as “F” then update it to “T”.

    update mobile_control set allow_batch_labor = ‘T’

    Long shot but you never know.

  • Nadim Ghazzaoui

    Member
    03/18/2021 at 1:40 PM in reply to: MOBILE TECH ISSUES-BATCHING

    New checkbox for “Allow Labor Batching” in Aircraft Maintenance drop down menu then select Control Setup/Mobile App Setup.

  • Nadim Ghazzaoui

    Member
    03/15/2021 at 1:51 AM in reply to: NOT RECEIVING EMAIL NOTIFICATION FROM EVENTS

    Yes. Take it up to Tech Support.

  • Nadim Ghazzaoui

    Member
    03/12/2021 at 1:21 AM in reply to: USER DEFINED ATTRIBUTES

    I had created for a customer a function that can be called in sql and return the value of the UDA. This will avoid adding the extra tables and joins in your code. It is something like:

    SELECT

    si_number,

    get_uda_value(‘WOO’, ‘AUTH’, woo_auto_key) authority,

    nvl(get_uda_value(‘WOO’, ‘REL’, woo_auto_key), ‘F’) release

    FROM

    wo_operation

    WHERE

    si_number = ‘WO1234’;

    The parameters are:

    AUTO_KEY_PREFIX

    UDA_CODE

    AUTO_KEY

    For the checkboxes, use NVL (as above) or else you will get NULL for non-checked checkboxes.

    The procedure is below. It can be added to QCTL. Procedures are not replaced during upgrades.

    I called it GET_UDA_VALUE but you can use something shorter if you prefer.

    CREATE OR REPLACE FUNCTION get_uda_value (

    p_auto_key_prefix VARCHAR2,

    p_uda_code VARCHAR2,

    p_auto_key NUMBER

    ) RETURN VARCHAR2 IS

    v_return uda_checked.attribute_value%TYPE;

    BEGIN

    SELECT

    udc.attribute_value

    INTO v_return

    FROM

    user_defined_attributes uda,

    uda_checked udc

    WHERE

    uda.uda_auto_key = udc.uda_auto_key (+)

    AND uda.auto_key_prefix = p_auto_key_prefix

    AND uda.uda_code = p_uda_code

    AND udc.auto_key = p_auto_key;

    RETURN v_return;

    EXCEPTION

    WHEN no_data_found THEN

    v_return := NULL;

    RETURN v_return;

    WHEN OTHERS THEN

    RAISE;

    END;

  • Nadim Ghazzaoui

    Member
    02/17/2021 at 11:32 PM in reply to: OLD IMAGING CALLS

    You’re getting old caro mio. 😀

    SELECT iml.iml_auto_key,

    iml.file_name,

    ‘http://’

    || ims.server_ip

    || ‘:’

    || ims.server_port

    || ‘/Select?Key=’

    || Ltrim(To_char(iml.image_key)) url

    FROM image_list iml,

    image_server ims

    WHERE iml.source_table = ‘WO_TASK’

    AND iml.source_pk IN ( 101732, 101734 )

    AND iml.ims_auto_key = ims.ims_auto_key

  • Nadim Ghazzaoui

    Member
    02/16/2021 at 10:09 AM in reply to: REPORT SHOWS NO DATA FOR SOME USERS.

    2 Long Shots to try:

    1- Does that user have company, division or any other browse filter set for his/her account? I don’t know that these filters work for Views but maybe the View includes a function that pulls the user executing it .

    2- Otherwise, the AP report may have settings that may affect the view’s filter again through a function or cursor. Check the setting for the AP aging report.

  • Nadim Ghazzaoui

    Member
    02/04/2021 at 12:28 AM in reply to: CUSTOM CRYSTAL REPORT TO EMAIL DAILY

    Brian,

    Which version of Quantum are you on? There was an issue with an earlier v 12 version where a dynamic custom Crystal will be generated but not emailed. All other Crystal Reports would work. This was fixed with tracker # CC-3449 from 12.2.9.

    Nadim.

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 10:01 AM in reply to: AIRCRAFT MODULE – GOOD THING TO BUY?

    When was the last time you saw MT? There was a good upgrade in March 2020. Version 2.8 has dual sign-off as well as mechanic sign-off.

    There is a new version coming out in February. It has a number of good enhancements.

    Aircraft Services and Shop Control share (almost) the same functionalities in MT. So there is, I believe, no advantage in having Aircraft Services.

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 9:09 AM in reply to: TASK – MECHANIC SIGN OFF BUTTON – MAKE DEFAULT

    Sorry, I assumed that you meant the Sign-Off screen.

    No I could not find that option in WO Control.

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 9:06 AM in reply to: AIRCRAFT MODULE – GOOD THING TO BUY?

    Based on the capability listed on your website and AAC, probably not.

    Do you perform any line or base maintenance? Otherwise, why do you think you need the module?

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 8:39 AM in reply to: QUANTUM SQL RESULTS DIFFERENT FROM EXCEL RESULTS

    Probably to do with the way Oracle deals with NULL that certain ODBC drivers don’t support.

    Several suggestions:

    Change to: wos_info ON woo.woo_auto_key = wos_info.woo_auto_key

    Change the order of precedence for the joins. Move the sub-query for the task status to be positioned before the labor join.

    Remove the SUM aggregate and the GROUP BY so as to check whether all tasks are being displayed.

    Use NVL(SUM(WTL.HOURS), 0)

    Use NVL(WOS.DESCRIPTION, ‘Pending’)

    You also have too many OUTER joins. Nothing to do with your problem but it will slow your SQL performance.

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 12:55 AM in reply to: COC WITHIN SHOP CONTROL-WORK ORDERS

    Kristen, if you are using the EASA check box then you will need to use the EASA Form One as your base form. No choice here as the data pipes are different.While working on the form, did you remove shapes such as boxes that turn grey on printing? If so then you will need to remove the code that refers to these shapes.

    MIke, when inducting the WO, your should use the “Required Certification” functionality in WO Header. This will stop the final inspector issuing the wrong form.

  • Nadim Ghazzaoui

    Member
    01/28/2021 at 12:39 AM in reply to: TASK – MECHANIC SIGN OFF BUTTON – MAKE DEFAULT

    Go to the Control Setup for the Aircraft Maintenance Module. There you should find an option for require default mechanic sign-off. Should be in the right side of the form.

  • Nadim Ghazzaoui

    Member
    01/23/2021 at 2:57 PM in reply to: TEST

    this is a test response

  • Nadim Ghazzaoui

    Member
    01/21/2021 at 12:45 AM in reply to: CHECK BOM ‘REQUISITION BOX ON TASK STATUS CHANGE

    Yes, Jens at Atlas uses it this way. Otherwise you can also use Qty to Purchase and tick that filter in PM.

  • Nadim Ghazzaoui

    Member
    01/20/2021 at 8:09 AM in reply to: SLOW QUANTUM

    Adding memory works miracles.

    It is important to understand that Oracle will only use the memory that has been specifically allocated to it. When installing Oracle, CC will allocate 40% of the server memory to Oracle.

    If the server has 12 GB of RAM then 4.8 GB will be allocated to Oracle. When memory is later added to the server, Oracle will ignore it. The db admin will need to update the memory allocated to Oracle so that Oracle starts using the extra memory.

    The 40% is what Oracle recommends. I have found it safe to use 60% of RAM for dedicated Oracle servers.

    Note that the default CC installation uses manual memory management. I usually turn-on Oracle Automatic Memory Management after a CC installation. This will have Oracle dynamically manage memory areas based on usage. AMM was introduced in 11G.

  • Nadim Ghazzaoui

    Member
    01/20/2021 at 12:43 AM in reply to: ANYONE USING THE UTL_HTTP PACKAGES?

    I have used them for both consuming web services and ftp. There should be a presentation from QUE 2016 that I gave about setting it up.

  • Earlier 12.1 did not map the CR correctly. So if you created the report in TRAIN, the database location would remain TRAIN regardless of the schema it is being run on. Normally, Quantum would dynamically map the database location to the current schema.

    This has been fixed.

    Or maybe you have a schema prefix for the table name such as “SELECT * FROM train.parts_master”. But you did write that you copied and pasted the code in Interactive SQL and it worked. So that should not be the issue.

  • Nadim Ghazzaoui

    Member
    01/07/2021 at 2:30 PM in reply to: STOCKLINE LOCATION CHANGE

    Can be done with ocDIA and Excel. The Excel can list:

    Old Location

    New Location

    or

    PN

    SL

    New Location

  • Nadim Ghazzaoui

    Member
    01/06/2021 at 10:31 AM in reply to: UPLOADING CURRENT PRICES

    Vanessa,

    This can be done using ocDIA. Have you used it? I believe that there are some instructions in the QUE Sources.

    Nadim.

  • Nadim Ghazzaoui

    Member
    01/06/2021 at 10:28 AM in reply to: STOCKLINE LOCATION CHANGE

    In Inventory Management you can try Global/Utility Functions/Change Stock Locations.

    This allows you to mass update the warehouse and location for all PNs or certain PNs based on parameters you enter.

  • Nadim Ghazzaoui

    Member
    01/06/2021 at 7:09 AM in reply to: REMOVING RESERVATIONS

    Depends why they are reserved in the first place. Usually it is a matter of deleting the record from STOCK_RESERVATIONS. But they maybe few exceptions such as SO on shipping order, partially issued BOM stock or stock splits.

    Start with this: https://quegroup.org/f_custom/9190034#9190034 for some pointers.

  • Nadim Ghazzaoui

    Member
    12/22/2020 at 1:05 PM in reply to: SECURITY REQUIRED FOR SCREEN SCRIPTOR?

    It has not, believe me. I sold Screen Designer with Screen Scripter a couple of weeks ago.

    The question is, are you already licensed or not for Screen Designer (not Screen Editor)? If you are then I’ll get your license updated.

  • Nadim Ghazzaoui

    Member
    12/21/2020 at 8:09 AM in reply to: SECURITY REQUIRED FOR SCREEN SCRIPTOR?

    Drew Wagner wrote:

    I am on 12.1.9 and Ctrl-F8 / Ctrl-F7 do not work, as sysdba or any user.

    Indeed. Starting somewhere in v.10, the Screen Designer shortcut keys will only work if the company is licensed for Screen Designer. You no longer get a window to enter a keycode.

    If you believe that you are licensed for Screen Designer then contact CC for a new license.

  • Nadim Ghazzaoui

    Member
    12/18/2020 at 12:24 AM in reply to: SECURITY REQUIRED FOR SCREEN SCRIPTOR?

    Ctrl+F8 is alive and well on 12.3.3.

    Are you sysdba?

  • Nadim Ghazzaoui

    Member
    12/08/2020 at 12:41 AM in reply to: CUSTOM ORACLE TRIGGERS

    Exactly, something similar. I use the script below which will write to a file in the DIA_IMPORT share.

    It will write the DDL for all DB objects such as views, procedures, triggers and others. In my case, the object names have “_FMS_” in them such as VIEW_FMS_XXX or FMS_PKG_XXX. This is what the WHERE clause in yellow below filters on.

    The green highlight below will use the current schema where the script is being run from as the user in the get_ddl. So to get the QCTL objects I run the scripts as user QCTL.

    If you prefer to execute as user SYSTEM, then you need to change accordingly including the view name from USER_OBJECTS to ALL_OBJECTS and add an OWNER filter for your production schema as your already did above.

    DECLARE

    f1 utl_file.file_type;

    v_ddl LONG;

    v_user VARCHAR2(30);

    BEGIN

    SELECT USER

    INTO v_user

    FROM dual;

    f1 := utl_file.Fopen(‘DIA_IMPORT’, ‘DDL_EXTRACT_’

    || To_char(Trunc(SYSDATE – 1), ‘YYYYMMDD’

    )

    || ‘.sql’, ‘w’, 32000);

    dbms_metadata.Set_transform_param(dbms_metadata.session_transform,

    ‘SQLTERMINATOR’, TRUE);

    FOR r IN (SELECT object_name,

    object_type

    FROM user_objects

    WHERE object_name LIKE ‘%_FMS_%’) LOOP

    SELECT dbms_metadata.Get_ddl(r.object_type, r.object_name, v_user)

    INTO v_ddl

    FROM dual;

    utl_file.Put_line(f1, ‘—–‘

    || r.object_name

    || ‘—–‘);

    utl_file.Put_line(f1, v_ddl);

    END LOOP;

    utl_file.Fclose(f1);

    EXCEPTION

    WHEN OTHERS THEN

    utl_file.fclose_all;

    RAISE;

    END;

  • Nadim Ghazzaoui

    Member
    12/07/2020 at 10:30 AM in reply to: CUSTOM ORACLE TRIGGERS

    I have a script that I execute before any upgrade. This script writes the DDL of every non-Quantum object to a file.

    After the upgrade, I just execute that file in sql developer or sqlplus to rebuild everything.

  • Nadim Ghazzaoui

    Member
    12/07/2020 at 10:26 AM in reply to: PULLING PO DETAIL SI_NUMBER LINKED AND NOT LINKED

    The way you write it is the standard ANSI SQL join syntax.

    The way some of us write it is the lazy Oracle join syntax. In Oracle, you can use both syntaxes but you cannot use the Oracle syntax with other vendors.

    Don’t poison your habits and keep writing joins the way you currently do. It is the proper way. Plus it gives you access to more join types such as FULL OUTER join.

  • Nadim Ghazzaoui

    Member
    12/04/2020 at 10:01 AM in reply to: COST ANALYSIS IN WORK ORDER

    This is the cost of the main component on an Internal work order. No function, just the UNIT_COST for the reserved cost. But I have the feeling that there is more to your question.

  • Nadim Ghazzaoui

    Member
    12/03/2020 at 8:59 AM in reply to: RECEIVER ADDING LINE ITEMS TO PO

    The posted RR will update the PO line to reflect the invoice. The split is to keep the original PO price for the unreceived qty which may or may not have a matching invoiced price.

    In the PO line there is also a column labelled “RR Split”. This will be checked.

Page 1 of 7