Microsoft Service Manager Console API? - c#

I'm having a hard time finding any documentation on how to interact with the SCSM Console.
Almost all samples and documentation I stumble upon, are regarding interacting with the System Center Backend.
My goal is to have a TextBox and a Button, in the TextBox goes an Incident ID, and a click on the button would then open the incident in the SCSM Console.
I don't know if its even possible, does anyone of you have experience with this?

I've worked with the SCSM SDK for 2 years now and have not come across anything within it which would allow you to launch the console and go straight to a particular incident form. The ConsoleContextHelper requires the console to be already open and mainly interacts with the current view/form.
lovedatsnow's suggestion for using a ConsoleTask on the incident view would be the closest way to implement something similar to what you desire however this wouldn't give much advantage over using the search bar and double clicking the result to open the form.

I've walked through Travis Wright's post with success:
https://blogs.technet.microsoft.com/servicemanager/2010/02/11/tasks-part-1-tasks-overview/
Here is a simpler tutorial that may also be helpful
https://blog.jhnr.ch/2013/12/09/how-to-create-a-custom-scsm-console-task-by-using-some-c-and-xml-magic/

Related

TestComplete Recorder doesn't recognize popups elements

I'm trying to record a test using TestComplete 10.
The application I test contains popups. The popup contains clickable buttons and links.
The problem is that when executing the recorded test- TestComplete does not recognize the popup itself and all the elements in the popup.
TestComplete waits for the popup element and then the test fails.
The application bases on WPF on Windows OS.
I'll be glad for some help regards this issue.
There is a way to pass this, any extension needed?
Since you are using TC10, I would always suggest updating to the newest version 12.5!
Beyond that, it could be a couple of different things, but first you should run through this requirements link to determine whether or not TC can see your application.
https://support.smartbear.com/testcomplete/docs/app-testing/desktop/wpf/requirements.html You could also take a look at this other link https://support.smartbear.com/testcomplete/docs/app-testing/desktop/wpf/index.html and see if it helps. Both links are for TC12.5, but some of these functionalities might still be available in your version.
Please let me know if you need some more assistance.

ASP.Net / C# 4.5 -- Async Processing -- Async Await

I am looking for some direction on what is the best route I should go with this. I have posted a few times, going off of some recommended design patterns. I have not really received a good direction based on what I am trying to accomplish. I am new to working with Async Processing, and would appreciate some pointers in the right direction. So far, on one of my previous post I have been called ignorant because I requested code samples. Please understand I have been reading everything, and trying everything I can find on the internet. Needless to say there are a LOT of different directions I could go with this, and I am not sure which one is the best.
I will explain what I am trying to do, at a high level, and if anyone out there can PLEASE help me by pointing me in the right direction I would appreciate it. Also, if anyone can point me to some code samples, I would love that. I do not mind reading the material, but it makes a lot more sense if I can see code to follow along with what it is saying. Most of the documentation I have found has code samples, or partial code samples, and I have been doing my best to try to use what I have found to work with my specific need. So far, not much luck. I will admit, when it comes to ASYNC processing, I guess I am ignorant. :)
Anyway, here is what I am trying to accomplish. I am leaving out any specific technology that I may consider using to avoid the debate as to if what I am posting is out of date, or behind the times. I am looking for a point in the right direction, and I am open to whatever at this point. I just need to get this working.
Here is the basics of what I am needing to do
I have an ASP.Net Web Site "Project" that I am working with.
I have a screen that is used to print reports using Active Reports 7.
My task is to allow the user to click a "Print / Preview" button and fire off the report processing.
While the report is running, I need to give the user the ability to click a "Cancel" button and terminate the processing and return to the report screen. (So the UI needs to be responsive during this time the report is processing so the user can click on the cancel button.)
While the report is processing I need to display a popup message to indicate the report is running.
When the report finishes processing, I need to hide this popup message, to indicate to the user the report is completed. Then I need to open the report to be viewed by the user. Currently this is a javascript function that we prepare during the report processing code that opens a new window and calls the report viewer. (So after the report has completed I need the ability to call a javascript function.)
If anyone can kindly point me in the right direction I will be very thankful. I do not mind doing the leg work and reading a mountain of documentation. I just need to be able to know what I am looking at will provide me with the above functionality. Like I said earlier, ignorance or not, if I can get some sample working code (not asking anyone to code this for me, just some code I can step through and help to understand what is happening) it would help a lot.
Thanks you in advance for your time and consideration.
Since you want some operation to happen at the server side along with the UI responding and showing progress. Showing progress of the event. I would suggest using Signalr.Net.
http://signalr.net/
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
This is a realtime web api and with this you can create a hub which has functions say "ProcessReport" and "cancelProcessing" you can call this from javascript while connection is open on click of the button and show the progress popup with a cancel button. Have a client event registered with the hub in js say "updatestatus" which can be called from the server to close the popup and eventually close the signalr connection, once the operation is finished. And similarly in the popup cancel click you can again call the hub function cancelProcessing and perform your cancellation and call back with updateStatus.
Hope this helps.

C# Logging User Actions - Best Method?

I would like to record the actions of a user when they are using the base Operating System with my application open.
For example, Clicked Start, Clicked All Programs, Clicked Microsoft Office, Clicked Microsoft Word....
Can anyone suggest a sensible method to achieve this?
The idea is that the user's actions are only recorded when my application is open, its meant to be an alternative to the Microsoft recorder. It creates a written procedure that can be sent to a customer service department.
I guess you should ask yourself if your users will appreciate this! Maybe they care about their privacy.
Anyway you can do it using hooks (I think you're writing for Windows). Same task as a macro recorder.
If you are trying to do that, why not just use an existing program. We used AutoHotkey at my last job to do this for creating UI testing code.
You could ask the user to install AutoHotkey and have them record the script. It can then be sent to you. You can run the script yourself (although you may have to tweak the screen resolution and things like that), and see what was happening.
EDIT:
Another idea is have the user record a screen cast and send that to you. It might make it easier to debug.
I didn't know what Microsoft Recorder was, thought it was the sound recorder, didn't realize there is a Microsoft Problem Recorder bundled in Win7, which does the whole screen cast recording.

User Click Tracking Library for Desktop App

We are looking into the possibility of allowing users to opt into a program where they report what button clicks etc. they do, and I was wondering if anyone can suggest a good library which already does this. Based on the way the app is implemented, we have access to the base "Button" class and can add code on the click which records the fact that the button was clicked.
What we're looking for is a library which can record all these clicks, store them locally, and then send them to us at some point in the future when the user has internet access.
Does something like this exist in an open or closed form?
Thanks,
Liron
Our app can run code in either c# or javascript, since it runs in Unity3d, but we have other desktop apps which are pure c# and would prefer a library we can run across all our applications.
We ended up going with DeskMetrics, which seemed like a good fit for our needs. We also looked at TrackerBird which has some nice features which weren't necessary for our particular requirement and wasn't working within the limited requirements of Unity3d.

control a browser on another computer

hmmm,
typing the title made me feel like i am a hacker asking for some illegal stuf....
but the truth is different i think. My client wants to control 3 webapplications at different computers at the same time.
I can't say exactly what the porpose of this is, but he wants, when he clicks on computer A at button 1 in the browser, that on computer B in the browser also is clicked on button 1, and also on computer C.
When i devided this process in 3 steps, i realized that none of them are things i've done before:
first thing is to get the click event out of the browser
second is to inform computer number B and C of the click event
third is to click a button in the browser of computer B and C
Three things i don't know how to accomplish (i have done some remoting in the past, maybe that can work for the communication between the three computers, but all i remember is that remoting did NOT become my friend)
So if you can give me any clue on how to catch browser events outside the browser, talk between two pc's and raise events in the browser from outside the browser, your help would be greatly appreciated.
EDIT:
i don't control the application. My client will use it to send multiple stock orders. so i think you can compare it with up-vote on a voting website
I know this is not an answer directly to your question, but it is a valid answer from a business and developer standpoint.
Unless your client is willing to pay through the nose for development time, it would be better to find out WHY the client wants this and offer possible alternatives. What they're asking can't be done without a LOT of work. I'm not sure where I'd even start - probably writing my own browser using the BrowserControl in a WinForms app, and using Remoting to control the WinForms app.
Really, you're better off researching the requirement better and proposing an alternative that is doable. Part of being a good devloper/analyst/project manager, etc is to be able to correctly divine what the customer actually needs from what the customer SAYS they want.
It could be that they just need you to track the status of something and your separate browsers need to auto-refresh. Or it could be that WinForms is not the right tool for the job. Or it could be something completely different. Heck, it could be as simple as only having one browser, and people can "watch" that browser from another PC using VNC or a similar tool.
There are usually multiple ways to meet a business need without focusing on difficult technical requirements. It's the business need that matters. and if you can find another way to meet it, you won't need to spin your wheels on this type of question.
As an added note, it makes me cringe to hear that you're even looking for "how to do this" without understanding why. Getting the requirements right is SO important in development. Most projects fail because the communication of requirements was not adequate.
What you want to do looks like 'shared browsing' or 'follow-me browsing'.
There are some questions that need to be asked :
do you want to do this with or without installing some sort of browser plugin or application ?
is the 'shared browsing' done only on a web application that you develop or do you need to browse to remote websites where you cannot add code.
If the web application can be modified, you could have all clients:
Send all actions they do a server ( #id1, click )
Poll the server for a list of actions that need to be triggered ( jQuery('#id1').click() )
If only one of the client is "master" and all the others are slave, it should be easy enough to synchronise everyone.
In a multi-master setup, synchronisation will be a little more complicated, and then maybe you will be re-developing Google Wave ;-)
Now if you need to be able to do shared browing over any website, thats a lot more complicated. Even more complicated if your solution needs to work cross-browser. You will need to develop extensions for each supported browser or native applications for all supported OSes. I advise you to look for existing solutions that already do have the shared browsing feature. You can also take a look at the VNC family of solutions (full desktop control).
I hope this will help you,
Jerome Wagner

Categories