Smart Integrator Connector - Retrieve configuration values

AndreaF
Contributor III

Hi,

we have just added some local configuration values to local Gateway like in the following example:

AndreaF_0-1720188179956.png

I am trying to retrieve those values. My understanding is that a Smart Integration Function must be created and that can than be called from a dashboard extender rule for example. However, the example provided in the OneStream documentation for the SIC function confuses me:  shouldn't the RunOperation function return the Result?

AndreaF_1-1720188487217.png

Anyway, even setting the function type to String and returning the Result string, I am still having some issue in the getting the value over to a dashboard business rule. I am following another OneStream example in this case. First of all the "ObjectResult" does not exist as a member of "RemoteRequestResultDto"

AndreaF_2-1720189284376.png

I have therefore tried to use a different member like "objectResultValue".

AndreaF_3-1720189539286.png

I can compile the rule this one, but I get the following error when trying to run the business rule:

"Object reference not set to an instance of an object."

 

Anyone has been able to retrieve and use the Gateway local configuration values, and would be so kind to point me to the right direction?

1 ACCEPTED SOLUTION

AndreaF
Contributor III

Example of Smart Integration Function to retrieve the Local Gateway configuration values:

Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.Common
Imports System.Globalization
Imports System.IO
Imports System.Linq
Imports OneStreamGatewayService

Namespace OneStream.BusinessRule.SmartIntegrationFunction.RemoteGatewayValueFetcher
	Public Class MainClass
		
		'Default function (Excuted when FunctionName in ExecRemoteGatewayBusinessRule is Null or Empty  
		Public Shared Function RunOperation() As DataTable
			'APILibrary is the class containing new remote BRAPI methods
			'GetSmartIntegrationConfigValue returns the string value of a found configuration element
			'Returns empty String If the specified key Is Not found
			Dim sUserName As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_UserName")
			Dim sPassword As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_Password")
			Dim sHostKeyFingerprint As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_SshHostKeyFingerprint")
			
			Dim dt As New DataTable("Result")
			
			dt.Columns.Add("Name",System.Type.GetType("System.String"))
			dt.Columns.Add("Value",System.Type.GetType("System.String"))

			'Password
			Dim row1 As DataRow = dt.NewRow()
			row1("Name") =  "UserName"
			row1("Value") = sUserName
			dt.Rows.Add(row1)
			'UserName
			Dim row2 As DataRow = dt.NewRow()
			row2("Name") = "Password"
			row2("Value") = sPassword
			dt.Rows.Add(row2)
			'HostKeyFingerprint
			Dim row3 As DataRow = dt.NewRow()
			row3("Name") = "HostKeyFingerprint"
			row3("Value") = sHostKeyFingerprint
			dt.Rows.Add(row3)
		    
			Return dt 

		End Function

	End Class
End Namespace

 

View solution in original post

1 REPLY 1

AndreaF
Contributor III

Example of Smart Integration Function to retrieve the Local Gateway configuration values:

Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.Common
Imports System.Globalization
Imports System.IO
Imports System.Linq
Imports OneStreamGatewayService

Namespace OneStream.BusinessRule.SmartIntegrationFunction.RemoteGatewayValueFetcher
	Public Class MainClass
		
		'Default function (Excuted when FunctionName in ExecRemoteGatewayBusinessRule is Null or Empty  
		Public Shared Function RunOperation() As DataTable
			'APILibrary is the class containing new remote BRAPI methods
			'GetSmartIntegrationConfigValue returns the string value of a found configuration element
			'Returns empty String If the specified key Is Not found
			Dim sUserName As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_UserName")
			Dim sPassword As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_Password")
			Dim sHostKeyFingerprint As String = APILibrary.GetSmartIntegrationConfigValue("sFTP_EBS_PROD_SshHostKeyFingerprint")
			
			Dim dt As New DataTable("Result")
			
			dt.Columns.Add("Name",System.Type.GetType("System.String"))
			dt.Columns.Add("Value",System.Type.GetType("System.String"))

			'Password
			Dim row1 As DataRow = dt.NewRow()
			row1("Name") =  "UserName"
			row1("Value") = sUserName
			dt.Rows.Add(row1)
			'UserName
			Dim row2 As DataRow = dt.NewRow()
			row2("Name") = "Password"
			row2("Value") = sPassword
			dt.Rows.Add(row2)
			'HostKeyFingerprint
			Dim row3 As DataRow = dt.NewRow()
			row3("Name") = "HostKeyFingerprint"
			row3("Value") = sHostKeyFingerprint
			dt.Rows.Add(row3)
		    
			Return dt 

		End Function

	End Class
End Namespace