ServiceStore: direkter Link auf Asset

Post Reply
mhausl
Posts: 29
Joined: 31. Jul 2012, 07:59
Contact:

ServiceStore: direkter Link auf Asset

Post by mhausl » 04. Jul 2016, 10:32

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

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7962
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: ServiceStore: direkter Link auf Asset

Post by Hendrik_Ambrosius » 05. Jul 2016, 17:38

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.
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.

mhausl
Posts: 29
Joined: 31. Jul 2012, 07:59
Contact:

Re: ServiceStore: direkter Link auf Asset

Post by mhausl » 06. Jul 2016, 06:42

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

Sven_Puth
Posts: 461
Joined: 07. Apr 2011, 15:55
Contact:

Re: ServiceStore: direkter Link auf Asset

Post by Sven_Puth » 06. Jul 2016, 10:42

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.
Tria-media - IT Solutions

mklein
Posts: 33
Joined: 15. Jun 2012, 13:32
Location: Braunschweig
Contact:

Re: ServiceStore: direkter Link auf Asset

Post by mklein » 03. Aug 2016, 10:23

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

mhausl
Posts: 29
Joined: 31. Jul 2012, 07:59
Contact:

Re: ServiceStore: direkter Link auf Asset

Post by mhausl » 21. Feb 2018, 07:51

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>

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 7 guests