Accessing CME via ActiveX

Hi guys

 Thank you for your sample. Now I can create DN,Add Skill, Add DN Group

but I cannot create section on each DN and add key value on section. I ever
use this function
COMKVLISTLib.IKVList sections = (COMKVLISTLib.IKVList) objectToChange[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgApplication_options];

for create section or key value on Apllication. But for DN I have no idea about it. Please teach me about this. ???

Best regrads,
Jiggolo

1 Like

Hi Guys

 I found solution for create new section and option value on DN object ("Annex Option").  For this code I load section data and option value from dataset then add this section into DN object.
                            MATool.ConnectToServer(server);
                            COMCFGMGRLib.ICfgQuery query = server.CreateQuery();
                            query.ObjectType = COMCFGMGRLib.enum_COMCfgObjectType.COMCFGDN;
                            object value;
                            value = txtDN.Text.Trim();
                            query.AddFilterValue(_CfgFilterType.FILTER_DN_NUMBER, ref value);
                            query.Execute(1, 0);
                            if (query.Count > 0)
                            {
                                ICfgObject objectToChange = (COMCFGMGRLib.ICfgObject)query[1];
                                COMKVLISTLib.IKVList sections = (COMKVLISTLib.IKVList)objectToChange[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgDN_userProperties];
                                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                                {
                                    COMKVLISTLib.IKVPair p = sections.CreatePair(TKVType.KVTypeList);
                                    p.Key = ds.Tables[0].Rows[i].ItemArray[1].ToString();
                                    DataView dv = new DataView();
                                    dv = ds.Tables[1].DefaultView;
                                    dv.RowFilter = "secId='" + ds.Tables[0].Rows[i].ItemArray[0].ToString() + "'";
                                    if (dv.Count > 0)
                                    {
                                        for (int k = 0; k < dv.Count; k++)
                                        {
                                            object pvalue;
                                            pvalue = dv[k][2];
                                            p.ListValue.AddValue(dv[k][1].ToString(), pvalue);
                                        }
                                    }
                                    sections.AddPair(p);
                                }
                                objectToChange[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgDN_userProperties] = sections;

                                objectToChange.Update();
                            }
                            server.Disconnect();

If you have any suggestion. Please tell me.
Thank you.

1 Like
            After I developed many solution on CME active X I found a problem about folder creating. I cannot create any folder under parent folder . Please suggest me.  :o

Anyone successfully get a Add Person/Agent process going? I can add a person but I am stuck on addking skills and login ID’s to them. Any help would be great.


        Dim server As New COMCFGMGRLib.COMCfgManager
        server.Connect("MyHost", "2020", COMCFGMGRLib._CfgAppType.CFGSCE, "default", "default", "password")

        'Create Person
        Dim NewEmp As COMCFGMGRLib.ICfgObject = server.CreateObject(COMCFGMGRLib.enum_COMCfgObjectType.COMCFGPerson)
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_firstName) = "Test"
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_lastName) = "User"
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_employeeID) = "1234"
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_userName) = "4321"
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_password) = "123456789"

        'Define Agent Skills
        Dim agSkills As COMCFGMGRLib.ICfgObject = server.CreateObject(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_skillLevels)
        Dim Skill As COMCFGMGRLib.ICfgObject = server.CreateObject(COMCFGMGRLib.enum_COMCfgObjectType.CFGLINKSkillLevel)
        Skill(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgSkillLevel_level) = 2
        Skill(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgSkillLevel_skillDBID) = 133
        Skill.Create(server)
        agSkills.

        'Add Skills to agent
        NewEmp(COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_skillLevels) = agSkills

        NewEmp.Create(server)

        server.Disconnect()
        MsgBox("User Added!")

Ok I made it further. I can now add a agent as long as I know the DBID of the LoginID I am assiging to them. I have to figure out how to get that information now and this will be complete.

        //Connect to Config Server
        COMCFGMGRLib.COMCfgManager server = new COMCFGMGRLib.COMCfgManager();
        server.Connect("myserver", "8888", COMCFGMGRLib._CfgAppType.CFGSCE, "default", "default", "password");

        //Create New Person/Agent
        COMCFGMGRLib.ICfgObject Emp = server.CreateObject(COMCFGMGRLib.enum_COMCfgObjectType.COMCFGPerson);
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_firstName] = "Test";
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_lastName] = "Test";
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_userName] = "1234";
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_employeeID] = "4321";
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_password] = "0123456789";

        //Create Skill to Assign
        COMCFGMGRLib.ICfgObject skill = server.CreateObject(COMCFGMGRLib.enum_COMCfgObjectType.CFGLINKSkillLevel);
        skill[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgSkillLevel_level] = 2;
        skill[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgSkillLevel_skillDBID] = 133;
        skill.Create(server);

        //Create Skills Object
        COMCFGMGRLib.ICfgFolder agSkills = (COMCFGMGRLib.ICfgFolder)Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_skillLevels];
        agSkills.Add(skill);

        //Attach Skills to Person
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_skillLevels] = agSkills;
                    
        //Create LoginID to assign
        COMCFGMGRLib.ICfgObject LoginID = server.CreateObject(COMCFGMGRLib.enum_COMCfgObjectType.CFGLINKAgentLoginInfo);
        LoginID[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgAgentLogin_DBID] = 104;
        LoginID.Create(server);
        
        //Create LoginIDs Object
        COMCFGMGRLib.ICfgFolder agLoginIDs = (COMCFGMGRLib.ICfgFolder)Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_agentLogins];
        agLoginIDs.Add(LoginID);

        //Attach LoginIDs to Person
        Emp[COMCFGMGRLib.enum_CFG_PropertyID.PID_CfgPerson_agentInfo_agentLogins] = agLoginIDs;

        //Add New Person
        Emp.Create(server);

        //Disconnect from ConfigServer
        server.Disconnect();
        MessageBox.Show("Employee Created!");