====== Partner recognition ======
To ensure that the partners involved in a message can be unambiguously identified in a defined process, corresponding identifications must exist in the messages.
Exceptions are [[en:kommunikation:kanal:start]] with established partners.
The identification of these partner identifications depends on the message type. With EDIFACT, AnsiX12 or other (standardized) messages, it is clearly defined by the corresponding data elements
{{:images:sign_warning.png?nolink|}}** Note: ** For correct partner recognition, valid settings for [[prozessdefinition:repositorien:analysator:start|Analysator]] and [[en:prozessdefinition:repositorien:erkennungskomponenten:start|]] ((Important is the direction of messages! )) of the [[en:prozessdefinition:repositorien:start|Repositorium]] are necessary.
===== EDIFACT =====
In the [[http://www.gefeg.com/jswg/v4/se/sed.htm|EDIFACT UNB]] ((Interchange Header)) segment, sender and recipient of the message are defined. \\
As a rule, the GLN / ILN is used for this purpose in Germany and is indicated with the qualifier ** 14 **.
** Example: ** UNB + UNOB: 2 + 4399901889996: 14 + 4032055000007: 14 + 170404: 0920 + 37108006 '
The [[prozessdefinition:repositorien:analysator:anlegen|Analysatoren]] is set here at ** Partner recognition = By Interchange address **
and in the [[en:prozessdefinition:repositorien:erkennungskomponenten:start]] at ** recognizer type = eBiss.ClassLib.Analyzers.EdifactTypeRecognizer **.
Alternatives to the GLN are possible and can be determined with the corresponding [[http://www.gefeg.com/jswg/cl/v4/40007/cl3.htm|Quailifieren]].\\
** Examples **
* ** [[http://egate.pranke.com| eGate]] Participant number ** with qualifier ** 53 **
* Telephone number with qualifier ** 12 **
* own ID with qualifier ** ZZZ **
That means, these IDs must be created as Edifact UNB [[en:partnerverwaltung:kommunikation:start]] in the system, or trading partner.
===== Your own message formats =====
In the case of customer-specific objects, this is preferably set in the [[en:transformation:mappings:objektdefinition:start]] with corresponding [[en:transformation:mappings:objektdefinition:attribute]]((**MapFrameDocumentSender** and **MapFrameDocumentReceiver**)).
===== Example C # Code for partner recognition for data elements embedded in the structure. =====
In the following example, the headquarter GLN is used in the path ** EDI_InvList / CustInvoiceJour / CustTableInvoice / EDI_GLN **.
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using eBiss.Api;
using System.Linq;
namespace Axd.SInvList
{
public class EDI_SInvList : IMapObjectRoot
{
[MapFrameDocumentRecipient, MapIgnore(MapIgnoreScope.OnRead)]
public string RecipientGLN
{
get
{
string returnValue = String.Empty;
if (EDI_InvoiceList != null)
{
EDI_InvoiceList firstEDI_InvoiceList = EDI_InvoiceList.FirstOrDefault();
if (firstEDI_InvoiceList != null)
{
CustInvoiceJour firstCustINvoiceJour = firstEDI_InvoiceList.CustInvoiceJour.FirstOrDefault();
if (firstCustINvoiceJour != null)
{
CustTableInvoice firstCustTableInvoice = firstCustINvoiceJour.CustTableInvoice.FirstOrDefault();
if (firstCustTableInvoice != null)
{
returnValue = firstCustTableInvoice.EDI_GLN;
}
}
}
}
return returnValue;
}
}
...
public class EDI_InvoiceList : IMapObjectItem
{
[MapSize(50)]
public String CurrencyCode;
[MapSize(20)]
public String ExternalInvoiceListId;
[MapSize(15)]
public String GLNNumber;
[MapSize(20)]
public String InvoiceListId;
public List CustInvoiceJour;
[MapExternalName("class"), MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String _class;
[MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String action;
}
public class CustInvoiceJour : IMapObjectItem
{
public String CashDisc;
[MapSize(50)]
public String CurrencyCode;
[MapSize(10)]
public String CustGroup;
public DefaultDimension DefaultDimension;
public String EndDisc;
[MapSize(50)]
public String InvoiceAccount;
public String InvoiceAmount;
public String InvoiceDate;
[MapSize(20)]
public String InvoiceId;
[MapSize(7)]
public String LanguageId;
public String NetAmount;
[MapSize(50)]
public String OrderAccount;
public String SumMarkup;
public String SumTax;
[MapListType(typeof(CustInvoiceTrans))]
public ArrayList CustInvoiceTrans;
[MapListType(typeof(TaxTrans))]
public ArrayList TaxTrans;
[MapListType(typeof(FormLetterRemarks))]
public ArrayList FormLetterRemarks;
public List CompanyInfo;
public List CustTableOrder;
public List CustTableInvoice;
[MapListType(typeof(LogisticsPostalAddress))]
public ArrayList LogisticsPostalAddress;
[MapListType(typeof(PackingSlips))]
public ArrayList PackingSlips;
[MapExternalName("class"), MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String _class;
[MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String action;
}
public class CustTableInvoice : IMapObjectItem
{
[MapSize(10)]
public String CustGroup;
public DefaultDimension DefaultDimension;
[MapSize(15)]
public String EDI_GLN;
[MapExternalName("class"), MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String _class;
[MapXmlHandlingAttribute(MapXmlHandlingAttribute.HandlingType.AsAttribute)]
public String action;
}
{{:images:sign_warning.png?nolink|}}** Note: ** Instead of using the data element attribute[[[en:transformation:mappings:objektdefinition:attribute|MapListType]](typeof(...))] the ** LIST ** class is used, since it allows to read the first element with the method ** FirstOrDefault () **
{{:images:sign_warning.png?nolink|}}** Note: ** The Setting [[en:prozessdefinition:repositorien:erkennungskomponenten:start]] is very flexble and allows for all possible identification features, which are saved under **Backend-Reference**, **GLN**, **TNr** or [[en:partnerverwaltung:kommunikation:start]] ((See also [[en:prozessdefinition:repositorien:analysator:anlegen|]].)).
===== Fixed setting via communication channel =====
For this variant, detection within the message can be dispensed with. However, then a corresponding channel is dedicated only for a combination transmitter-receiver possible.