Skip to main content

ELO Indexserver - Before Mapping

Vor der Übertragung bzw. dem Export an ELO via Indexserver REST API kann das Mapping der Felder mit diesem UserExit 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);
}