eBiss 3

Hilfe & Dokumentation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


transformation:mappings:funktionen:custom:generic_db_select

Generischer Select auf einer beliebigen DB Tabelle

Beispielcode für:

  • Wago.Ebiss.MapFn.DbSelect(<auf der Tabelle>, <zurückgegebene Spalte>, <Suchen auf der Spalte>, <suchen nach>)

Für die DB Verbindung wird der Connection String aus der Variable Db.MapFunction.Connection vom Standardsystempartner verwendet.

Beispielaufruf:

  • MyCompanyName.Ebiss.DbSelect(„Document“, „DocType“, „DocNumber“, „01-4673848“)

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}!");
            }
        }


    }
}
transformation/mappings/funktionen/custom/generic_db_select.txt · Zuletzt geändert: 2025/12/19 10:04 von 127.0.0.1