====== Set up a data link with conversion ======== The following steps outline the procedure for setting up a data link with transformation to eBiss and show which elements are necessary and in which order the procedure is carried out. One works one's way through from back to front in order to be able to use all dependencies. {{:images:sign_warning.png?nolink|}}**Note:** take [[en:ueberblick:integration:integrationsszenario:start|]] and [[en:howtos:namingconventions|]] into account. ===== 1. Define interface types ======= Preferably compile interface objects with the [[en:programmierung:typbibliotheken:typeditor|Type-Editor]]((Alternatively, this can be created with suitable IDEs for C#.)) as DLL. Data types according to interface description must be created as C# class with corresponding eBiss specific data attributes in compiled form as DLL in the plugin directory of the eBiss installation and eBiss client and service must be restarted((see also [[en:howtos:schattenkopie_plugins|shadow copy]])). {{:images:sign_warning.png?nolink|}}**Note:** take [[en:ueberblick:integration:integrationsarten|]] into account. ===== 2. Create repositories ======= Define components required for the new **INHOUSE interface objects**. {{:images:sign_warning.png?nolink|}}**Note:** INBOUND Define entity type in [[en:prozessdefinition:repositorien:start|Repository]] with corresponding [[en:prozessdefinition:repositorien:schreibkomponenten:start|writer component]] and [[prozessdefinition:repositorien:kontainerisierer:start|containerizer]]((For direct integration there is no need for write components and no containerizer)).\\ {{:images:sign_warning.png?nolink|}}**Note:** Define OUTBOUND entity type in [[en:prozessdefinition:repositorien:start|Repository]] with corresponding [[en:prozessdefinition:repositorien:erkennungskomponenten:start|recognition]]-, [[en:prozessdefinition:repositorien:analysator:start|analysis]]- and [[en:prozessdefinition:repositorien:lesekomponenten:start|reader]]- components. Repositories for **EDIFACT** and **MiddleWare** can be imported from the default template directory((..eBiss3/StandardTemplates/RepositoryDump*.xml)). {{:images:sign_warning.png?nolink|}}**Note:** Interfaces(Entity-Types) used for both incoming and outgoing communication are a special case! Their entity types make use of all repository components. ===== 3. Create mapping definitions ====== New mappings are defined for transforming from INHOUSE to MiddleWare((outgoing messages)) and from MiddleWare to INHOUSE((incoming messages)) interface objects. For the transformation from MiddleWare to EDIFACT or EDIFACT to MiddleWare standard mappings can be imported from the standard template directory and adapted if necessary. {{:images:sign_warning.png?nolink|}}**Note:** There are cases where it is best to work with only one transformation. E.g. if there is no corresponding counterpart in the MiddleWare. ===== 4. Define default template partner ====== As a rule, a template partner is assigned to a future trading partner. This contains the [[en:partnerverwaltung:typset:start|type sets]] which define the standard mappings for the outgoing MiddleWare to EDIFACT and the incoming EDIFACT to MIddleWare to the corresponding types. {{:images:sign_warning.png?nolink|}}**Note:** The [[en:partnerverwaltung:typset:start|type sets]] are queried at: * [[en:prozessdefinition:jobs:jobsteps:allgemein:entityselector|]] * [[en:prozessdefinition:jobs:jobsteps:allgemein:entitytransformer]] * [[en:prozessdefinition:jobs:jobsteps:allgemein:entitymessagecreator|]] and * [[en:prozessdefinition:jobs:jobsteps:kommunikation:channelsender|]] ===== 5. Define message boxes ====== To be able to process messages in eBiss, they must be containerized in a [[en:kommunikation:nachrichtenkoerbe:start|message box]]. As a rule, two incoming and two outgoing message baskets are required. e.g.: * For incoming messages: * From.partner((contains the original incoming EDIFACT messages from the partner)) * To.Host((contains incoming messages transformed to the INHOUSE types)) * For outgoing messages: * From.host((contains the outgoing original INHOUSE types)) * To.Partner((contains the outgoing messages transformed to EDIFACt)) {{:images:sign_warning.png?nolink|}}**Note:** Message baskets are required to define [[en:kommunikation:kanal:start|communication channels]] . {{:images:sign_warning.png?nolink|}}**Note:** The property basket type can be incoming, outgoing, or none. This setting affects the default setting when pasting files into a message box. These messages will then be marked as incoming or outgoing and consequently the corresponding set objects will be queried during analysis. In normal operation messages are created in a message basket via [[en:kommunikation:kanal:start#eingehende_kommunikationskanaele|receiving channels]] or [[en:prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjectretrieverex|]], where the message gets the direction which is set for the channel. ===== 6. Define communication types or communication channels ====== Determine communication types between eBiss and HOST system((also called ERP or MMS system.)) or partner system and define corresponding [[en:kommunikation:kanal:start|communication channels]], with database integrations no communication channels, but [[prozessdefinition:jobs:jobsteps:kommunikation:backend:start|BackendObjectIntegrations]] are used in the JOBs. As a rule, incoming EDIFACT messages are received from [[http://egate.pranke.com]], i.e. an incoming [[kommunikation:kanal:pop3receive|]] must be defined for this, which writes to the previously defined message basket. {{:images:sign_warning.png?nolink|}}**Note:** In practice, acronyms such as **EDI, B2B, A2A, MFT, B2C** are used at this point to refer to the relationships on abstract ===== 7. Define processes ====== {{:images:sign_warning.png?nolink|}}**Note:** The following job definitions represent a standard integration case. These processes can be enriched with different job objects to map e.g. [[howtos:businesslogic|Business Logic]]. - **A first job to open a receive channel or BackendObjectRetreiver, which then delegates to the next dispatcher, consisting of:** - [[en:prozessdefinition:jobs:jobsteps:kommunikation:channelreceiver|eBiss.ClassLib.ChannelReceiver]] or [[en:prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjectretrieverex|eBiss.DbAdapter.BackendObjectRetrieverEx]]((For a direct integration e.g. with a database.)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:delegatorjob|eBiss.ClassLib.DelegatorJob]]((This points to job #2)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:tasknotificatorex|eBiss.ClassLib.TaskNotificatorEx]] - **a second job for analyzing, selecting, transforming and containerizing((in an existing message box)) or transferring((with BackendObjectTransmitter in an existing direct integration)) consisting of:** - [[en:prozessdefinition:jobs:jobsteps:allgemein:jobexecutioncontroller|eBiss.ClassLib.JobExecutionController]](optional)((This may be necessary in complex systems with many different parallel running processes.)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:entityanalyzer|eBiss.ClassLib.EntityAnalyzer]] - [[en:prozessdefinition:jobs:jobsteps:allgemein:entityselector|eBiss.ClassLib.EntitySelector]]((This branch is repeated for all incoming and outgoing message types within a job and parameterized accordingly.)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:entityloader|eBiss.ClassLib.Jobs.EntityLoader]] - [[en:prozessdefinition:jobs:jobsteps:allgemein:entitytransformer|eBiss.ClassLib.Jobs.EntityTransformer]] or on demand [[en:prozessdefinition:jobs:jobsteps:allgemein:multientitytransformer|eBiss.ClassLib.Jobs.MultiEntityTransformer]] - [[en:prozessdefinition:jobs:jobsteps:allgemein:entitytransformer|eBiss.ClassLib.Jobs.EntityTransformer]]((For two-step transformation via eBiss MiddleWare.)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:entitymessagecreator|eBiss.ClassLib.Jobs.EntityMessageCreator]] or [[en:prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjecttransmitterex|eBiss.DbAdapter.BackendObjectTransmitterEx]]((with BackendObjectTransmitter in an existing direct integration)) - [[en:prozessdefinition:jobs:jobsteps:allgemein:entitystatussetter|eBiss.ClassLib.Jobs.EntityStateSetter]] - [[en:prozessdefinition:jobs:jobsteps:allgemein:delegatorjob|eBiss.ClassLib.DelegatorJob]]((This points to job #3)) - **A third job to open a transmission channel consisting of.** - [[en:prozessdefinition:jobs:jobsteps:kommunikation:channelsender|eBiss.ClassLib.ChannelSender]]((If not already transferred with [[en:prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjecttransmitterex|eBiss.DbAdapter.BackendObjectTransmitterEx]])) {{:images:sign_warning.png?nolink|}}**Note:** See also [[en:ueberblick:start#typischer_prozess|typical process]]. ===== 8. Process automation ====== The [[en:prozessdefinition:automatisierungen:automatisierungen|automations]] are done last to automate the previously defined and manually tested processes. Usually it is sufficient to trigger the first job in a processing chain, because the following jobs are linked by [[en:prozessdefinition:jobs:jobsteps:allgemein:delegatorjob|delegators]] or [[en:prozessdefinition:jobs:jobsteps:allgemein:eventrouter|EventRouter]] and [[en:prozessdefinition:jobs:jobsteps:allgemein:eventroutereceiver|]].