I want to set the value of attribute Constants.LUSER (last user) by script, because I have (sometimes) a database that is opened by script, with another user then the ArisData.ActiveUser(). That was no problem in ARIS 7, but in ARIS 9 (9.7 SR 2) I get errors afterwards.

See my script below: I can call ArisData.ActiveUser() 3 times without any problem, but after setting the value of attribute Constants.AT_LUSER, my script gives an error when I ask again ArisData.ActiveUser().

Is there anybody who knows the solution for this problem? That would be great!

Best regards, Ariene Kroeze

 

function main(){
    if (ArisData.getSelectedModels().length>0){
        var myObject = ArisData.getSelectedModels()[0]
    }else if (ArisData.getSelectedObjDefs().length>0){
        var myObject = ArisData.getSelectedObjDefs()[0]
    }else if (ArisData.getSelectedObjOccs().length>0){
        var myObject = ArisData.getSelectedObjOccs()[0].ObjDef()
    }
    
    var ActiveUser_1 = ArisData.ActiveUser()
    
    var DB= ArisData.getActiveDatabase()
    
    var Desc = lObject.Attribute(Constants.AT_DESC,-1).getValue()
    
    // step 1
    myObject.Attribute(Constants.AT_DESC,-1).setValue(Desc)
    var ActiveUser_2 = ArisData.ActiveUser()
    
    // step 2
    DB.setAutoTouch(false)
    myObject.Attribute(Constants.AT_DESC,-1).setValue(Desc)
    var ActiveUser_3 = ArisData.ActiveUser()
    DB.setAutoTouch(true)
    
    // step 3
    DB.setAutoTouch(false)
    myObject.Attribute(Constants.AT_LUSER,-1).setValue(ActiveUser_1.Name(-1))
    try{
        var ActiveUser_4 = ArisData.ActiveUser()
    }catch(ex){
        Dialogs.MsgBox("error in line " + ex.lineNumber +"\n" + ex)
    }
    DB.setAutoTouch(true)
}
main()

 

 or register to reply.

Notify Moderator