Attribute einer Importdatei in ein Squeeze Feld übergeben

In diversen Verarbeitungsszenarien kann es notwendig sein, den Dateinamen oder Anteile des Dateinamens im Verarbeitungsprozess zu berücksichtigen. 
 In dem folgenden Code-Beispiel wird der Dateiname ohne Pfadangabe und ohne Extension in das mehrdimensionale Array "additionalInfo" geschrieben. Dabei wird der Dateiname in den Index " Filename " geschrieben. 
 Zusätzlich wird aus dem Importpfad der Datei, der Mandant abgeleitet und entsprechend vorbelegt. Der Mandant wird in den Index " Company " geschrieben.  
 Sobald ein identisch benanntes Feld in der Squeeze Dokumentenklasse existiert, wird der Inhalt des Array-Indexes (hier der Dateiname und der Mandant) in das entsprechende Squeeze-Feld geschrieben. 
 <?php

use Squeeze\xDataBaseClass;
use Squeeze\xReturnObject;
use Squeeze\xTools;

/**
 * @param array $params
 * @return xReturnObject
 * @throws Exception
 */
function BeforeFileImport(array $params): xReturnObject
{
 $logger = Logger::getLogger("main");
 $db = xDataBaseClass::getDBConnection();

 return prepareFileImport($db, $params, $logger);
}

/**
 * @param PDO $db
 * @param array $params
 * @param Logger $logger
 * @return xReturnObject
 * @throws Exception
 */
function prepareFileImport(PDO $db, array $params, Logger $logger): xReturnObject
{
 try {
 $originalFileName = $params['originalFile'];

 if (!isset($originalFileName)) {
 return new xReturnObject(false, 400, 'originalFile not set', null);
 }

 // initialize additionalInfo array
 $params['additionalInfo'] = array();

 // Save fileName without the extension in the additionalInfo
 $params['additionalInfo']['Importfile'] = $originalFileName;
 $params['additionalInfo']['Filename'] = xTools::getFileNameWithoutExtension($originalFileName);

 // Get the company from the folder structure
 // Example: "C:\tmp\import\Test\1000_Test\0003_63da7bb4b0589621675295.pdf"
 $logger->debug('Original Path and File Name = ' . $originalFileName);
 $directories = explode(DIRECTORY_SEPARATOR, $originalFileName);
 // $directories[0] = 'C:'
 // $directories[1] = 'tmp'
 // $directories[2] = 'import'
 // $directories[3] = 'Test'
 // $directories[4] = '1000_Test'
 // $directories[5] = '0003_63da7bb4b0589621675295.pdf'

 $companyDir = $directories[4]; // 1000_Test
 $companyId = substr($companyDir, 0, 4); // 1000
 $params['additionalInfo']['Company'] = $companyId;

 } catch (Throwable $e) {
 xTools::handleException($e, false, true);
 }
 
 return new xReturnObject(true, 200, 'File ready for import!', $params);
}
 
 Der Dateiname wird anschließend in dem entsprechenden Feld angezeigt. 
 
   
   
   
   
  