I've a couple of questions about if and how is possible to desing a service plan that creates multiple service items for a single request and if it possible to create some sort of looping structrure within a service plan.
More precisely, i've designed a service that enable the customer to order in one single requisition multiple VMs and i'd like to creates a service item for each one of those VMs. For now, my service plan create only one service item that contains data for all the VMs created like all the hostnames and IPs in single fields of that one service item. This solution lead to some trouble managing the VMs created and I think it could be better to have one service item for each machine.
What I would like to implement it's a service plan that calls the orchestrator to create one VM, than creates a service item for that VM and reiterates the process until the value of the fields in the form representing the number of VMs (which i'd like to mantain so that the customer can order multiple VMs of the same type with only one requisition) is reached.
So, is there some kind of looping structure that could be created using conditions in the service plan? Or there is some feature of the Portal that I'm not aware of or I'm using poorly (like the possibility to set a quantity of object with a single order)?
I hope the question is clear.
I'm using the version 9.3 R2 of CCP
looking at the integration guide is useful, but you won't get all info in it and it can be a little tough to have what I'd call a "syntethic understanding of how things work" by reading it.
Once you know what steps you have to follow, things are already a little clearer.
Those steps are (for the 9.x versions of the portal / 3.x of CIAC I don't know how different things are with previous versions):
- Create your service
- Create a process (you don't have to put anything in it yet)
- restart TEO services (or your server if you don't know how to)
- Type "http://
- Create an agent in service link (I recommend cloning a CIAC agent and then change the name of the process, etc)
- Create a transformation to generate an xml that TEO (the web service actually) will accept (you can copy the transformation used by alot of CIAC agents and change StartCloudPortalServiceRequestHandler by StartNameOfYourProcess)
- Add a task in your service plan, and choose your agent
- Get your service to communicate with CPO (to help you generate a correct xml, you can use SOAPui that allows you to send manually xml to the web service, that way you can edit it and get it working, test login/password etc)
- once it works, time to put something in you process! TEO is extremely rich and you will find a way to do what you want (some things can be a little tricky here and not documented I'd be happy to help on some points, such as what to put in "create service item" fields, why your process doesn't start even thought it is correct etc.)
I have a handle on how to create services that communicate with CPO and have my CPO processes updating service items ok. My problem now is getting service items created from CPO. I have created a XSL Transform but when I try to post this back to CSP I get an error: "Parameter message does not exist!".
Can someone tell me what I'm missing? Is it expecting a namespace somewhere?
Here's my transform for adding service items of type nic_details:
-- Here is the output that is generated by this transform:
First I have to ask why you are not using the Cloud Portal adapter in PO for this; it is much easier than generating your own XML. Extensive examples of it can be found in IAC content.
However, if you are really enjoying your time with XSL, please confirm that the Channel ID that you have provided is associated with a ServiceLink agent whose Inbound Adapter is set to the Service Item Listener.