Automic Workload Automation

  • 1.  How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 02, 2018 04:52 PM

    1. Is there a way to query the logging tab? I'd like to either query it from the database or use an Automic function? What would the table names be?

     

    example line in the "Logging Tab" I'm trying to get:

    2018-10-25 16:41:09 - U00011103 Task 'EVNT_JOBNAME' ('0475260947') was stopped by user 'USERNAME/CORP'.

     

    example 2:

    2018-11-02 08:25:55 - U00011076 User 'USERNAME/CORP' has accepted the Notification (Alert: Done, Request: Yes, Message: OK).

     

    2. Is there a way to query the database or use an Automic function to find out the id of a user who places an object into the transport case? What would the table names be?

     

    Thank you,

    Lon



  • 2.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 02, 2018 06:04 PM

    Hey Lon,

     

    I actually have an example for number 1.

     

    It is designed to be ran once daily and it adds the user who accepted all the notifications to a VARA object. This way when reports get deleted due to the reorg process we still have this information:

     

     

    !!SET THE DATE BACK ONE DAY FOR COLLECTION
    :SET &CURDATE# = SYS_DATE("YYYY-MM-DD")
    :P Current Date: &CURDATE#
    :SET &SR_DATE# = SUB_DAYS("YYYY-MM-DD:&CURDATE#",1)
    :p Search Date: &SR_DATE#

    !!PROCESS THE SQLI VARA TO GET RUNID FOR EACH CALL OBJECT IN THE PAST ONE DAY
    :SET &HND# = PREP_PROCESS_VAR(VARA.SQLI.CALL.USER_REPORTING)
    :PROCESS &HND#
    :SET &RUNID# = GET_PROCESS_LINE(&HND#,1)
    !!PROCESS THE LOG FILE FOR EACH RUNID TO EXTRACT THE USER WHO ACCEPTED THE MESSAGE
    :SET &REP# = PREP_PROCESS_REPORT(,&RUNID#,"LOG","*has accepted the Notification*","COL=DELIMITER","DELIMITER=*'*")
    : PROCESS &REP#
    : SET &USER# = GET_PROCESS_LINE(&REP#,2)
    : P RUNID: &RUNID# USER: &USER#
    !!ADD EACH RUNID AND USER TO A STATIC VARIABLE SO THAT IT IS STORED IN THE DB
    : PUT_VAR VARA.STAT.CALL.USER_REPORTING,&RUNID#,&USER#
    : ENDPROCESS
    : CLOSE_PROCESS &REP#
    :ENDPROCESS

     

     

    Contents of the SQLI:

     

    SELECT AH_IDNR FROM AH
    WHERE AH_Otype = 'CALL'
    and (AH_TIMESTAMP4 > TIMESTAMP '&SR_DATE# 00:00:00.000')
    and AH_Client = '&$CLIENT#'

     

    EDIT: In short though this is the function you are looking for in scenario 1:

     

    PREP_PROCESS_REPORT 



  • 3.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 02, 2018 06:13 PM

    The PREP_PROCESS_REPORT() script function can be asked to read report type "LOG";

    Automic 

     

    To my knowledge, the product makes no record of who populated the TransportCase.  Under the covers, this is just a 0/1 flag that is set in the OH table, column OH_ExpFlag. (export flag)



  • 4.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 04, 2018 11:52 PM

    Hello, try with XAO table to check who places objects



  • 5.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 05, 2018 08:56 AM

    XAO appears to be related to SYNCs. Frankly, I don't think it holds TC data.



  • 6.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 05, 2018 08:50 AM

    I second the statement that to my knowledge also, there is no record of who put something into TC.

     

    In a related note, I can only advise to limit who can use the transport case to a sensible audience, and to not automate the transport.

     

    Take it from me that when I took the system from my predecessor, who had setup an automated nightly transport of the entire TC between test to prod, and someone managed to put all objects (five digit figure) into TC by accident and they got transported, the result was ugly.

     

    I still have not found out how someone managed to accidentally put all objects into the TC, but we have seen a single, odd, "client object" in the TC which we believe resulted from some kind of unintended behaviour, so this scenario might be triggered more easily than one would ordinarily think, at least in the Java UI of V10.



  • 7.  Re: How can we query information from the Logging tab and how can we know who places objects into the transport case?

    Posted Nov 11, 2018 10:23 AM

    FYI the option TRANSPORTALL in the utility ucybdbun (DB.Unload) is using the transport case for creation a backup (or transport file) of ALL objects definitions from a client.

     

    That's maybe what happen to you Carsten.

     

    Unfortunately I agree that there is no audit on the utilisation of the transport case, at least for unloading objects.

    For years it has been requested from development to set an option/parameter to be able to set different transport case at the same time, using a naming in the transport case feature. For example use the user name as default, to avoid mixing actions putting objects in the transport case from multiple users at the same time.

     

    But as usual "this is something that doesn't happen often and only a few people should be allowed to use the transport case". No comment.