ELO Indexserver - Before Mapping
Mit diesem UserExit kann das Mapping der Felder manipuliert oder gar gänzlich geändert werden.
Als Parameter erhält der UserExit das xDoc, mit dem ein feldabhängiges Mapping erstellt werden kann.
Außerdem das Default Mapping, in dem alle Felder mit externen Namen bereits aufgelistet sind.
Hier ein Beispiel:
<?php
declare(strict_types=1);
namespace Squeeze\UserExits\Invoices;
use Squeeze\xDoc;
use Squeeze\xReturnObject;
function BeforeEloIndexServerMapping(xDoc $doc, array $mapping): xReturnObject
{
$company = $doc->getActualFieldValue('Company');
// Use a completely different mapping for each company.
$mapping = match ($company) {
'<COMPANY_1>' => [
//"ELO_FIELD_NAME" => "SQUEEZE_FIELD_NAME",
"XDateIso" => "DocumentDate", // XDateIso is a reserved field name and is not mapped like the other fields, but is included here.
"Name" => "DocumentName" // Name is a reserved field name and is not mapped like the other fields, but is included here.
],
'<COMPANY_2>' => [
//"ELO_FIELD_NAME" => "SQUEEZE_FIELD_NAME",
"XDateIso" => "DocumentDate", // XDateIso is a reserved field name and is not mapped like the other fields, but is included here.
"Name" => "DocumentName" // Name is a reserved field name and is not mapped like the other fields, but is included here.
],
default => [], // empty mapping will result in an error
};
return new xReturnObject(true, 200, "Mapping ok", $mapping);
}