Beispielcode für:
Für die DB Verbindung wird der Connection String aus der Variable Db.MapFunction.Connection vom Standardsystempartner verwendet.
Beispielaufruf:
Referenzierte Assemblies: eBiss.Api.dll und Pranke.Orm.TypeLib.dll
using eBiss.Api;
using eBiss.Api.Data;
using Pranke.Orm.Interfaces;
using System;
using System.Collections;
namespace MyCompanyName.Ebiss
{
public class MapFn : IMapFunctionExtender, ILoggingObject, IApplicationConsumer, ISystemVariableConsumer
{
private static string Db_Connection_Variable = "Db.MapFunction.Connection";
public ILogContext Log { get; set; }
public IApplication Application { get; set; }
public IDictionary Variables { get; set; }
// Wago.Ebiss.MapFn.DbSelect("Document", "DocType", "DocNumber", "01-4673848")
[eBiss.Api.MappingFunction]
public object DbSelect(string table, string colunn, string selectOnColumn, string selectValue)
{
string rv = "";
using (Log.EnterScope($"Execute MapFn.DbSelect on talbe {table}"))
{
try
{
Pranke.Orm.Interfaces.IEntities entities = Pranke.Orm.EntitiesBase.Connect(Pranke.Orm.DatabaseType.MsSql, GetDbConnection());
IOrmCommand cmd = entities.CreateTextCommand();
table = entities.DbAdapter.ReplaceSpecialCharacters(table);
colunn = entities.DbAdapter.ReplaceSpecialCharacters(colunn);
selectOnColumn = entities.DbAdapter.ReplaceSpecialCharacters(selectOnColumn);
selectValue = entities.DbAdapter.ReplaceSpecialCharacters(selectValue);
cmd.CommandText = $"SELECT {colunn} FROM {table} WHERE {selectOnColumn} = '{selectValue}' ";
Log.Debug("Execute: " + cmd.CommandText);
using (IOrmReader ormReader = cmd.ExecuteReader())
{
while (ormReader.Read())
{
rv = ormReader.GetString(colunn);
break;
}
}
}
catch (Exception ex)
{
Log.Exception(ex);
throw;
}
}
return rv;
}
private string GetDbConnection()
{
if (Variables.Contains(Db_Connection_Variable) && string.IsNullOrWhiteSpace(Variables[Db_Connection_Variable].ToString()) == false)
{
return Variables[Db_Connection_Variable].ToString();
}
else
{
throw new System.ApplicationException($"Missing Variable {Db_Connection_Variable}!");
}
}
}
}