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);
}

Revision #2
Created 3 February 2025 08:15:56 by Maximillian Weitze
Updated 3 February 2025 08:21:26 by Maximillian Weitze