Gibt es eine Möglichkeit mittel URL direkt auf ein Asset zu verlinken?
Der Anwendungsfall wäre so, dass aus einem Benachrichtigungs-eMail einer anderen Software, direkt das Asset aufgerufen werden kann.
Alternativ ginge natürlich auch, eine vorausgefüllter Suchdialog auf den Assetnamen.
Danke
ServiceStore: direkter Link auf Asset
-
- Moderator
- Posts: 7965
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: ServiceStore: direkter Link auf Asset
Ja, das kann man. Wird aber wohl offiziell nicht unterstützt.
Dafür die URL des Asset Dialogs mittels Rechtsklick im Dialog ermitteln, sieht dann z.B. so aus:
https://srvwsm001.imagoverum.com/SPS/Co ... 1000&H=750
Das jeweilige Asset ist als Expression Object ID in dem String drin, in diesem Fall 23552e71-678c-4686-909d-3926fff94aa1
Also muss man den String hinter ObjectID= ggf. aus der Tabelle SPSComputerClassBase auslesen für das jeweilige Asset.
Dann kann man aus Drittsystemen mit einem SQL-Query und einem IE-Aufruf auf die Asset Daten zugreifen.
Dafür die URL des Asset Dialogs mittels Rechtsklick im Dialog ermitteln, sieht dann z.B. so aus:
https://srvwsm001.imagoverum.com/SPS/Co ... 1000&H=750
Das jeweilige Asset ist als Expression Object ID in dem String drin, in diesem Fall 23552e71-678c-4686-909d-3926fff94aa1
Also muss man den String hinter ObjectID= ggf. aus der Tabelle SPSComputerClassBase auslesen für das jeweilige Asset.
Dann kann man aus Drittsystemen mit einem SQL-Query und einem IE-Aufruf auf die Asset Daten zugreifen.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Re: ServiceStore: direkter Link auf Asset
Ich hatte gehofft es gibt einen einfacheren Weg - wie z.B. https://srvwsm001.imagoverum.com/SPS/go ... =ASSETNAME
Aber danke für die Rückmeldung! Ich werde es damit mal versuchen.
Markus
Aber danke für die Rückmeldung! Ich werde es damit mal versuchen.
Markus
Re: ServiceStore: direkter Link auf Asset
Mit etwas Vorarbeit ginge es theoretisch auch wie gewünscht.
Ich habe hier zum Beispiel eine Lösung gebastelt, um z.B. KB Artikel über eine Kurz-URL http://kb/KBA00001 aufzurufen.
Dazu habe ich mir eine freie URLShortener Lösung ergoogelt. Die Datenbank-Tabelle darunter habe ich durch eine Datenbank-View ersetzt. Jetzt kann ich die DB des URL Shorteners dynamisch direkt aus dem Service Store erzeugen.
Öffentliche KB Artikel haben also automatisch immer eine KurzURL. Das ganze lässt sich dann auch ganz einfach für weitere Objekte erweitern.
Ich habe hier zum Beispiel eine Lösung gebastelt, um z.B. KB Artikel über eine Kurz-URL http://kb/KBA00001 aufzurufen.
Dazu habe ich mir eine freie URLShortener Lösung ergoogelt. Die Datenbank-Tabelle darunter habe ich durch eine Datenbank-View ersetzt. Jetzt kann ich die DB des URL Shorteners dynamisch direkt aus dem Service Store erzeugen.
Öffentliche KB Artikel haben also automatisch immer eine KurzURL. Das ganze lässt sich dann auch ganz einfach für weitere Objekte erweitern.
Tria-media - IT Solutions
Re: ServiceStore: direkter Link auf Asset
Super Idee. Ich benötige selbiges, jedoch möchte ich keine weiteren Tools oder Workarounds nutzen/bauen müssen. Daher habe ich die Anfrage mal als IDEA bei MX42 direkt eingeworfen http://ideas.matrix42.com/ideas/SM-I-31. "Likes" sind gerne willkommen
Gruß Marco
____________________________
Empirum Version 16.1
ServiceStore Version 8.0.2
____________________________
Empirum Version 16.1
ServiceStore Version 8.0.2
Re: ServiceStore: direkter Link auf Asset
Ich habe das Thema nun wieder aufgegriffen.
Anbei meine Lösung. Ergänzungen oder Verbesserungen sind willkommen.
WebForm.aspx.vb:
Imports System.Data.SqlClient
Imports System.Configuration
Public Class link
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim s_assetName As String = Request.QueryString("name")
If s_assetName <> "" Then
Dim MyAssetList = Me.getListOfAssets(s_assetName)
If MyAssetList.Count = 1 Then
Dim sResp As String = "http://SERVERNAME/SPS/Controls/Dialogs/ ... &ObjectID=" & MyAssetList(0) & "&ObjectClassID=64925bae-1c5a-4360-b890-67baec4c6c75&ReturnValueExt=true&EnableCreateNewObject=true&SearchObjectsCount=0&RowPosition=5&IsNext=true&ObjectTypeID=ccac642a-5cb9-4728-87db-1a604889ca64&QuickFilterTabId=69bd1ee8-bfbf-49d5-9e32-0c37cf599645&State=710&Title=Computer%20-%20Matrix42"
Response.Redirect(sResp, False)
ElseIf MyAssetList.Count > 1 Then
Response.Write("duplicate items found in MX42 Asset Management. Please cleanup!")
Else
Response.Write("no item found in MX42 Asset Management. Please refine parameter!")
End If
End If
End Sub
Public Function getListOfAssets(ByVal sName As String) As List(Of String)
Dim SQL As String = MX42AssetLinker.My.Settings("QueryObjID")
Dim output As New List(Of String)()
' Set the connection string in the Solutions Explorer/Properties/Settings object (double-click)
Using cn = New SqlConnection(MX42AssetLinker.My.Settings("MyConnectionString"))
Using cmd = New SqlCommand(SQL, cn)
cn.Open()
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = sName
Try
Dim dr = cmd.ExecuteReader()
While dr.Read()
output.Add(dr("Expression-ObjectID").ToString())
End While
Catch e As SqlException
' Do some logging or something.
'MsgBox.Show("There was an error accessing your data. DETAIL: " & e.ToString())
output.Add(e.ToString())
End Try
End Using
End Using
Return output
End Function
End Class
web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MX42AssetLinker.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
</system.web>
<applicationSettings>
<MX42AssetLinker.My.MySettings>
<setting name="MyConnectionString" serializeAs="String">
<value>Server=SQLSERVER;Database=M42STORE;Trusted_Connection=True;</value>
</setting>
<setting name="QueryObjID" serializeAs="String">
<value>SELECT [Expression-ObjectID] FROM [M42STORE].[dbo].[SPSComputerClassBase] where Name = @Name</value>
</setting>
</MX42AssetLinker.My.MySettings>
</applicationSettings>
</configuration>
Anbei meine Lösung. Ergänzungen oder Verbesserungen sind willkommen.
WebForm.aspx.vb:
Imports System.Data.SqlClient
Imports System.Configuration
Public Class link
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim s_assetName As String = Request.QueryString("name")
If s_assetName <> "" Then
Dim MyAssetList = Me.getListOfAssets(s_assetName)
If MyAssetList.Count = 1 Then
Dim sResp As String = "http://SERVERNAME/SPS/Controls/Dialogs/ ... &ObjectID=" & MyAssetList(0) & "&ObjectClassID=64925bae-1c5a-4360-b890-67baec4c6c75&ReturnValueExt=true&EnableCreateNewObject=true&SearchObjectsCount=0&RowPosition=5&IsNext=true&ObjectTypeID=ccac642a-5cb9-4728-87db-1a604889ca64&QuickFilterTabId=69bd1ee8-bfbf-49d5-9e32-0c37cf599645&State=710&Title=Computer%20-%20Matrix42"
Response.Redirect(sResp, False)
ElseIf MyAssetList.Count > 1 Then
Response.Write("duplicate items found in MX42 Asset Management. Please cleanup!")
Else
Response.Write("no item found in MX42 Asset Management. Please refine parameter!")
End If
End If
End Sub
Public Function getListOfAssets(ByVal sName As String) As List(Of String)
Dim SQL As String = MX42AssetLinker.My.Settings("QueryObjID")
Dim output As New List(Of String)()
' Set the connection string in the Solutions Explorer/Properties/Settings object (double-click)
Using cn = New SqlConnection(MX42AssetLinker.My.Settings("MyConnectionString"))
Using cmd = New SqlCommand(SQL, cn)
cn.Open()
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = sName
Try
Dim dr = cmd.ExecuteReader()
While dr.Read()
output.Add(dr("Expression-ObjectID").ToString())
End While
Catch e As SqlException
' Do some logging or something.
'MsgBox.Show("There was an error accessing your data. DETAIL: " & e.ToString())
output.Add(e.ToString())
End Try
End Using
End Using
Return output
End Function
End Class
web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MX42AssetLinker.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
</system.web>
<applicationSettings>
<MX42AssetLinker.My.MySettings>
<setting name="MyConnectionString" serializeAs="String">
<value>Server=SQLSERVER;Database=M42STORE;Trusted_Connection=True;</value>
</setting>
<setting name="QueryObjID" serializeAs="String">
<value>SELECT [Expression-ObjectID] FROM [M42STORE].[dbo].[SPSComputerClassBase] where Name = @Name</value>
</setting>
</MX42AssetLinker.My.MySettings>
</applicationSettings>
</configuration>
Who is online
Users browsing this forum: No registered users and 12 guests