With Shaun Roberts
Welcome to the Cisco Support Community Ask the Expert conversation. This is an opportunity to learn and ask questions about the Cisco Process Orchestrator with Cisco expert Shaun Roberts. Topics include out of the box content, core server engine components, and Custom Content Authoring. Custom Content Authoring helps unlock the true power of Cisco process orchestrator and allows you to code automations across your IT infrastructure. The discussion can also segway into development best practices as well as common do’s and don’ts for Cisco Process Orchestrator.
Shaun Roberts is a Customer Support Engineer at the Cisco Technical Services Organization. He is an Automation Engineer and former support team lead for the Cisco Process Orchestrator (CPO), Cisco Intelligent Automation for Cloud (CIAC), and IT Process Automation (ITPA) products. He has over 16 years of experience in development (both application and web), and over ten years in the IT industry. Roberts is an expert in SAP, Windows, Linux/Unix, many development languages, and has written numerous blogs on automation on the Cisco Support Community area found at Intelligent Automation. He is the original support person for CPO and has written numerous custom automations for customer and internal Cisco use. Roberts holds a Bachelor’s degree in Computer Science from Texas A&M, and a MBA from the University of Houston. He also holds an ITIL Foundations Certification and he is a Cisco Certified Network Video Specialist. Prior to Cisco, Roberts worked for Hewlett-Packard/Compaq as server hardware QA and he spent several years working in SAP doing FICO and BASIS configuration and developing interfaces.
Remember to use the rating system to let Shaun know if you have received an adequate response.
Shaun might not be able to answer each question due to the volume expected during this event. Remember that you can continue the conversation on the Data Center sub-community discussion forum Cisco Process Orchestrator shortly after the event.This event lasts through July 26, 2013. Visit this forum often to view responses to your questions and the questions of other community members.
Thanks! Just some quick thoughts...
1) I will attempt to answer all that I can with my knowledge, if I do not know, I'll try to direct you to the best person I know or TAC(if it's a support issue/bug/enh)
2) I have done a lot of process authoring in CPO, and this is mostly a CPO event. I do have experience with Cloud Portal and with CIAC, but I am not an expert on developing inside of Cloud Portal outside of some basic, so I will try but likely (if you are looking for deep CCP development questions) I will have to re-direct you.
Set of great links to have...
CIAC Gift Box:
Links of value for customers to work with TAC:
Where you can find my blog on automation(videos included!):
How to subscribe to software updates on cisco.com:
Location of documentation for CPO:
If I need to, I'll post more links as the weeks go on.
Thanks for visiting!
Under Activity views those four are as followed...
Adhoc -> shows only processes that are running/have been run in an adhoc fashion. These have been right-clicked->start process
Scheduled -> this will show processes that are scheduled to go via a schedule trigger
Started -> this is the largest "bucket". It will show everything that has running or is running.
Triggered -> this will basically show everything that is non-adhoc. It ran via trigger, whether that's a CCMS alert, task change, etc
Adding some color this discussion...
personally I use "view started" pretty exclusively when I'm testing content as it gives a quick representation about what's going on.
It's under the activity view folder so you cannot sort by process name like you can in the "Process Views" folder or use the process filter like you can there as well.
However the activity views offer you a quick/straightforward view about what is going on or has gone on in your server.
**Remember, only those processes who are archived or "persistant" will show in this view after they have finished running.
Let me add a little bit more details...
You can turn it on and off by going into the properties of a process and going to the options tab and clicking the checkbox next to archiving.
1) On a process, right click->EDIT
2) Click on the OPTIONS tab on the far right
3) Check or Uncheck the box next to Archive Completed Instances
Checked = On, Unchecked = Off
What does this do?
Archiving or Persistence(as many call it) saves the output of activities and a process to the database. So if you run a process and want to go into the operations view and review what it's doing and the activities' outputs, then you would want archiving to be enabled. This is for completed outputs. Techincally you could still watch your process run in the operations view but only for a short time as once the process was in a completed state and archiving is disabled, the outputs would be removed.
If you do not care about the outputs, then you can leave it disabled. It is enabled by default when you create a new process.
Why would you disable it?
For better performance and to save database space in my opinion. You will find much of the Out of The Box SAP content has archiving disabled because these processes are monitoring typing process. If they find an issue an alert/incident is raised and that is saved off for the user to review. If everything is nominal then there is no reason to review the process. So by not saving off a process (that no one would review) we save database space and can get better performance out of the server. We do still save off the last known status of the process itself (succeeded, failed, etc).
In my opinion, it is best to look through your content when you are happy with it, and disable anything that is monitoring related, or any small functional type pieces that you really do not care about the inner workings of.
You can always go back and re-enable it as well if you start to see issues or think you need to troubleshoot that workflow.
Here's one for you. One of my bugbears with CPO is it's handling of web services calls using a WSDL. The default behaviour when configuring a SOAP call is for CPO to supply default values for any item not specifically given a value even if the item is allowed to be nil.
This is particularly annoying when the SOAP call is a search. For instance, if there is a date field and I don't specify a value and the WSDL says that value is optional, CPO will instead supply a default value of 1-1-1900 or similar. This took me a long time to figure out and I actually had to snoop the network traffic to work out what was going on and then and to specifically go to each item and tell CPO to supply no value.
Is there an easier way? I know speedwise its sometimes better to use a direct HTTP POST but it's not always the quickest way to get something working.
Ryan (CPO Dude)
I have done a ton of web service calls in the past 6 months. (build up demi-adapters with their method calls) I have found the best way to do things is to use the Web HTTP Request activity and to write out the method call yourself. While this might take a bit longer it does give you more control over what you are doing and these activities (prior to the release of 3.0) are much, much faster.
I do not remeber the scenario you mentioned above but I have not used the web service execute activity in a good 6+ months. I know there are some fixes and updates coming to it in 3.0 but outside of that I cannot say. If this is a major issue for you and needs to be resolved, in this case, I would suggest you open a TAC case and get the TAC engineer to work with the BU and reproduce the issue inhouse.
I have done multiple searches in my calls and had no issue (both with similar ideas that you post above). In fact I have an API set for SPLUNK which has a create search with time and without and using the Web HTTP Request activity, it all works great.
In 2.3.X release using HTTP Web Request activity would be the only way to achieve "omitting" parameters from a Web Service call. In addition, in 2.3.X HTTP Web Request activity is also a much more performant way of calling SOAP Web Service than the Web Service Execute activity.
In the upcoming 3.0 release, the Web Service Execute activity has undergone significant changes. It is now much better performance and supports manual "removal" of parameters, and has a number of other improvements.
That's good to hear they're updating that component. I understand the HTTP POST is faster but obviously you then have to use some other tool to craft the SOAP request (e.g. SoapUI). I'll look forward to the new version coming out but in the mean time I'll work around it.