This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Update CI version Automatically

I want to update the CI version automatically when we close a release record 

the naming convention will be like displayName_Location_Date, this will be from cm3r table to device file .

 

any help to do this  ?

 

Parents
  • 0

    Release record is change record (cm3r) - Right ?

    The new value must be inserted into device table, in what field ?

    Then you need to use triggers for cm3r table (after change)

    set condition for status and if it become close (or any you use) set in device table any changes you whant.

  • 0 in reply to 

    hi  ALARMus,

     yes it is cm3r record.

    we want the version field to be sum of (CIName_CIType_Vx 1)

    how we can collect all this one field ?

  • 0 in reply to 

    CIName_CIType_Vx 1 - is this fields from device table ?

    Can you write exact name of field and table name (where this field is) ?

  • 0 in reply to 

    No its not a filed  they are 3 fields !

    but when we update the version of a CI the new version (version field in device table ) should contain those 3 three information .

    my question is : how we can gather three fields in one field as a text ?

  • 0 in reply to 

    So. You can use FC and script (as trigger)

    FC:

    In Calculations for calculation line:

    Use field of table or temporary variable (for example - $L.Version)

    $L.Version="Some text if need - " field1 in $file ", Some more fixed text if need; " field2 in $file

    Well now just transfer this $L.Version where you need.

    *****************

    Or You can use Triggers :

    if (!system.functions.same(record.status,oldrecord.status) && record.status=="Closed")
    {
    	var TableDevice = new SCFile("device");
    	if (TableDevice.doSelect("logical.name=\"" record.number "\"") == RC_SUCCESS)
           {
            TableDevice.version= record.YOURFIELD1 "_" record.YOURFIELD2 "_" record.YOURFIELD3
           }
    }

    If this trigger for CM3R table so - record.YOURFIELD1 - field from cm3r table and

    record.number field in CM3R table wich contained logical.name value

     

  • 0 in reply to 

    Hi ALARMus ,

    i did it using FC and i could combine 3 values (fields) toghether thank you.

    and my issue now that i cant update the CM with the version value .

    could you help me please how i can pass this value to device table ?

  • 0 in reply to 

    Describe more details what you have now (table, field, value) ?

    What condition when you whant to start transfer some data to what table and what field ?

    =============

    KUDOS are Welcome

  • 0 in reply to 

    Hi ALARMus,

    i want to transfer a customized field in "cm3r" table named as "releaseversion " when i close the change record of category "Release Management " to the  "version' field in the "Device" Table .

    i want a query which always update the version value from the release record for this CI

    source                         Destination 

    release version            version

    cm3r                             device

    condition : cm3r status is closed 

     

  • 0 in reply to 

    what name of field in cm3r table wich contain value of logical.name for table device ?

  • 0 in reply to 

    Hi  ALARMus

    its name is "assets "

  • 0 in reply to 

    Trigger for cm3r table  (after update), name it like cm3r.a.u.Add2Device

    if (!system.functions.same(record.status,oldrecord.status) && record.status=="Closed")
    {
    	var TableDevice = new SCFile("device");
    	if (TableDevice.doSelect("logical.name=\"" record.asset "\"") == RC_SUCCESS)
           {
            TableDevice.version= record.releaseversion
           }
    }

    That's mean if the change status is changed and equel "Closed"

    Then update Device table with data from cm3r table.

Reply
  • 0 in reply to 

    Trigger for cm3r table  (after update), name it like cm3r.a.u.Add2Device

    if (!system.functions.same(record.status,oldrecord.status) && record.status=="Closed")
    {
    	var TableDevice = new SCFile("device");
    	if (TableDevice.doSelect("logical.name=\"" record.asset "\"") == RC_SUCCESS)
           {
            TableDevice.version= record.releaseversion
           }
    }

    That's mean if the change status is changed and equel "Closed"

    Then update Device table with data from cm3r table.

Children
  • 0 in reply to 

    Hi ALARMus  ,

    it gives me this error:

    Script <no name>  line 1: ERROR SyntaxError: invalid assignment left-hand side at char 76

    if (!system.functions.same(record.status,oldrecord.status) && record.status="Closed")

                                                                               ^

    Compilation of JavaScript function or expression failed

     

     

  • 0 in reply to 

    Fixed. 

    see script again.

  • 0 in reply to 

     ALARMus  ,

    unfortunately it is not working ! 

  • 0 in reply to 

    So. what exactly dont work ?

     

  • 0 in reply to 

    the compiltation is successful but the version value is not being changed after closing the change 

    i added the trigger with script in cm3r table as attached

  • 0 in reply to 

    So let's make some troubleshooting.

    Change part of your script to:

     

    ...
    TableDevice.version = record.rc_version } }

     

  • 0 in reply to 

    thanks  ALARMus,

    still the script not updating the device file after closing the record

  • 0 in reply to 

    lets fix it.

    1) So let's define what fields you use

    Source                         Destination 

    table: cm3r-------------device

    =========fields=========

    rc.version ------------> version ?

    asset ========== display.name ?

    ci.rc =========== display.name ?

     

     Do you need for this trigger start application = trigger.device.mtbf (as i see on your screenshot) ?

     2) About script. Lit's add some print:

    if (!system.functions.same(record.status,oldrecord.status) && record.status=="Closed")
    {
    	print("(1) - cm3r.a.u.Add2Device: Status changed to Closed for Change-" record.number);
    	var TableDevice = new SCFile("device");
    	if (TableDevice.doSelect("display.name=\"" record.ci_rc "\"") == RC_SUCCESS)
           {
    		print("(2) - cm3r.a.u.Add2Device: Found CI with display.name = " record.ci_rc "; Updating Device, set - " record.rc_version);
            	TableDevice.version= record.rc_version;
           }
    }

     

    3) And finally display you FC for this version in cm3r (where you add concatenation for version)

  • 0 in reply to 

    Please answer questions to continue resolving your problem.