eBiss 3

Hilfe & Dokumentation

User Tools

Site Tools


Sidebar

en:howtos:plugins:backendobject:start

Creating own backend objects

eBiss is able to connect and communicate with any backend system via the creation of custom backend objects. These objects can then be used by the BackendObjectRetriever and -Transmitter job steps to integrate the backend service into the eBiss workflows. A description of these job steps can be found here.

The basis for implementing a backend object is a .NET 4.5 project using the “class library” template. The created .dll then needs to be placed inside the ./Plugins directory present in the main eBiss directory.

Backend object for BackendObjectRetreiver

The BackendObjectRetriever(Ex) job step makes use of backend object implementing the “IBackendObjectSender” interface or any other interface that extends it.

Backend object BackendObjectTransmitter

The BackendObjectTransmitter(Ex) job step makes use of backend object implementing the “IBackendObjectReceiver” interface or any other interface that extends it.

Interfaces

Interfaces relevant for the creation of a backend object originate from the eBiss.Api.dll, which needs to be referenced by the .NET project implementing the service. It is important that the most recent version of the library is used in your project.

eBiss.Api.IBackendObjectSender

public interface IBackendObjectSender
{
    void Initialize(IJob runningJob);
    bool MoveNext();
    IMapObjectRoot Current { get; }
}

Standard interface used by the BackendObjectRetriever. The interface mimics an enumerator, allowing a step-wise access of the received messages.

eBiss.Api.IBackendObjectSenderCommitted

public interface IBackendObjectSenderCommitted : IBackendObjectSender
{
    void CommitCurrent(string messageComRef, string messageInfo);
    void RollbackCurrent(string errorMessage);
}

IBackendObjectSenderCommitted extends IBackendObjectSender and add a form of “transaction handling”. Received messages can be marked as (un-)successfully processed by eBiss, which in turn can be reported back to the backend.

eBiss.Api.IBackendObjectReceiver

public interface IBackendObjectReceiver
{
    bool ReceiveObject(object backendObject);
}

Standard interface used by the BackendObjectTransmitters. The interface allows the job to submit messages to the backend object (and service).

eBiss.Api.IBackendObjectTaskAwareReceiver

public interface IBackendObjectTaskAwareReceiver : IBackendObjectReceiver
{
    BackendObjectTaskState BackendObjectTaskState { get; }
}

IBackendObjectTaskAwareReceiver extends IBackendObjectReceiver and adds an error state. The properties present in “BackendObjectTaskState” can be used to add a task, maintenance comment and maintenance follow-up time to a message that could not be transmitted successfully.

Optional interfaces

The following interfaces are also supported by the BackendObject job steps:

eBiss.Api.IApplicationConsumer

Allows for backend object (limited) access to the eBiss data layer.

eBiss.Api.ISystemVariableConsumer

Allows the backend object to access the system variables of the default system partner (if any) of the current node.

eBiss.Api.ITradingPartnerVariableConsumer

Can be used in combination with the IBackendObjectReceiver interface to pass trading partner variables. Variables are assigned in the following priority order:

  • TradingPartner,
  • TemplatePartner,
  • Default TradingPartner and
  • Default Template Partner.

I.e. a variable “VAT” at TemplatePartner overwrites the variable “VAT” of the same name from Default TradingPartner.

eBiss.Api.ILoggingObject

Allows the backend object to output error, trace and debugging information to the service log.

en/howtos/plugins/backendobject/start.txt · Last modified: 2024/02/20 08:15 by 127.0.0.1