Automic Workload Automation

 View Only
Expand all | Collapse all

Guidance on how to clear the High Number of invalid objects

  • 1.  Guidance on how to clear the High Number of invalid objects

    Posted Nov 27, 2018 03:32 AM

    Dear Experts,

     

    We wanted to clear the old objects like Jobs, workplans, Events, Schedulers..etc and as these objects are not used anymore. We have more than  5000 objects that needs to be cleaned. Actually we can use REMOVE_OBJECT to delete the objects from the system . However for an example, if an job is in a workflow which is inactive and rest of the objects in the same workflow is active, then it is bit hard to find out the usage of the invalid objects one by one. Do we have any better suggestion on how to find it out ? In short terms, We would like to remove the inactive list of objects from all the places where it is used.

     

    Thanks and Regards

    Vimalan



  • 2.  Re: Guidance on how to clear the High Number of invalid objects

    Posted Dec 05, 2018 06:33 AM


    Hi

     

    I am afraid there is no way out of manually change e.g. workflows if an object inside has to be removed.
    Please be careful when deleting objects, even if its inactive because the Workflow will stop in state "FAULT_OTHER" if an object is not found.

     

    As a start you can use below SQL statements (Oracle) to identify 1) objects that were set to inactive and 2) Objects that were set to inactive on TASK level in the workflow

     

    == Inactive Objects ==
    select oh_name from oh
    where oh_otype in ('JOBS','JOBP','JOBF','SCRI','JOBG','EVNT','JSCH','CALL')
    and oh_inactive = 1
    and oh_client = 666
    and oh_deleteflag = 0

     


    == Task Inactive within Workflow ==
    select OH_NAME as "Workflow", JPP_OBJECT as "OBJ in WF", JPP_Lnr as "POS in WF", (CASE WHEN JPP_ACTIVE = 0 then 'not active, no breakpoint' WHEN JPP_ACTIVE = 1 then 'active, no breakpoint' WHEN JPP_ACTIVE = 2 then 'not active, with breakpoint' WHEN JPP_ACTIVE = 3 then ' active, with breakpoint' END) from OH, jpp
    where OH_IDNR=JPP_OH_IDNR
    /*
    JPP_ACTIVE:
    0 ... not active, no breakpoint
    1 ...     active, no breakpoint
    2 ... not active, with breakpoint
    3 ...     active, with breakpoint
    */
    and JPP_ACTIVE <> 1
    and oh_client = 666
    and oh_deleteflag = 0

     


    hope this helps a bit

     

    cheers, Wolfgang