A new CI Type (a child of the ABSTRACT_CLASS) can not be instantiated?

HI,

We are running UCMDB 10.32, CP25, Windows.

We need to create some new CI Types (classes) to achieve some customer-specific business logic.

While experimenting, I have noticed that if you create a new CIT as a child of the ABSTRACT_CLASS, this new CIT, although not an ABSTRACT_CLASS itself (at least no qualifier visible), you cannot manually create a CI! Is that normal?

EXAMPLE:

The product comes with an abstract class "SERVICE" and it contains two child classes: BusinessService (BS) and InfrastructureService (IS), both obviously NOT ABSTRACT as we can normally create new CIs out of those two CITs.

Now, lets say we need a brand new Service class, a sibling of the BS and IS, and a child of SERVICE, i.e. FinancialService (or whatever). When we create a new CIT for FinancialService (a child of Service, and a sister of BS and IS), for some reason we cannot create a new CI for FinancialService (FS)! We see a ""CI type can not be instantiated" info.  As if the new FS class is also ABSTRACT, but it doesn't have the ABSTRACT_CLASS qualifier!

1 . Why is that? Are we doing something wrong? How come BS and IS can be instantiated and FS can't, and all 3 are children of the same ABSTRACT class? Is this normal or is this some kind of bug on our UCMDB?

2. generally, how do we make a new non-ABSTRACT child CI Type out of an ABSTRACT class parent?

I have looked into my new FS class in the JMX console (listResourceType) trying to see if perhaps ABSTRACT_CLASS qualifier slipped through somehow, but i don't see it...

P.S. this is NOT the case of a CI that needs a container CI in order to be created...

Help please

Tnx, Marko

  • Hi

    no, there are no errors, at least not in the GUI, i haven't inspected the logs, as i didn't actually do anything to trigger the potential error. It's just that when i create a new subclass of the ABSTRACT class, when trying to "Create a new CI", my new class is greyed out, i cannot select it, it says "Abstract CI Type cannot be instantiated" in the "Create new CI dialog".

    The question is more conceptual, i see no errors...

    regards

    marko

  • Verified Answer

    When you created the class, did you specify the Configuration Item Type Qualifier of 'ABSTRACT_CLASS'?  This is present in the creation of the CI.  When I chose the following:

    In CI Type Manager: Select Service -> Right Click -> New

    Name:  TestServices

    Display Name: Test Service

    Identification: Key Attribute (name)

    Click 'Next'

    Click 'Next' (didn't add any attributes)

    Removed ABSTRACT_CLASS

    Click 'Next', Click 'Finish'.

    I was then able to instanciate an instance of this class.

  • Hi

    thanks for the reply. I made sure the final configuration of my class does not have the ABSTRACT_CLASS qualifier, but let's try again, with my screenshots.

    1. I create a New class from "Service":

    New Service CI type 1.PNG

     

     

     

     

     

     

     

     

     

     

    Notice i didn't change the "Identification", i leave it as is (No identification)

    2. i don't change attributes:

    New Service CI type 2.PNG

     

     

     

     

     

     

     

     

     

     

     

    3. ABSTRACT_CLASS qualifier is there so i remove it:

    New Service CI type 3.PNGNew Service CI type 4.PNG

    4. I don't change anything else, just click "NEXT" through the rest of the configuration and my new CI type is created:New Service CI type 5.PNG

     

     

     

     

     

    Notice the ABSTRACT_CLASS qualifier is not there...

    5.  i now go to IT Universe and try to create a new instance of my new TestService class:New Service CI type 6.PNG

     

     

     

     

     

     

     

    Hmmm...it doesn's say anymore that i can't create an instance... OK, let's give it a name and finish the new CI.

    New Service CI type 7.PNG

    It seems i now can create a new CI instance...weird... Here is the proof:

    New Service CI type 8.PNG

    The CI is created.... wow, obviously i will have to test this at my customer's UCMDB, this was form our lab system...

    I'm confused...this is how it is supposed to work and it works as expected, obviously i made some mistaked when trying to do the similar at the customer's...

    Thanks... i will mark this as answered....

    Regards

    marko

  • Solution suggested here didn't work for me.  Do we need to restart any services ?

  • No, i didn't have to restart any services. The trick is to make sure the ABSTRACT_CLASS is not in your new CIT qualifiers before you save the new CIT