Installation¶
Installing this extension does nothing in and of itself. You still need to extend the TCA definition of some tables with the appropriate syntax and create specific connectors for the application you want to connect to.
TYPO3 CMS 10 or 11 is required, as well as the "scheduler" system extension.
Upgrading and what's new¶
Upgrade to 6.3.0¶
External Import now supports Connector services registered with new system introduced with extension "svconnector" version 5.0.0, while staying compatible with the older versions.
Another small new feature is the possibility to define a storage pid for the imported data on the command line or when creating a Scheduler task, which overrides storage information that might be found in the TCA or in the extension configuration.
Upgrade to 6.2.0¶
The Substructure Preprocess event
is now fired for both array-type and XML-type data (previously, only for array-type data).
To know which type of data is being handled, a new getDataType()
method is available.
The type of structure that must be returned after modfication (by calling setStructure()
must be either an array or a \DomNodeList
, as opposed to just an array in older versions.
Existing event listeners may need to be adapted.
Upgrade to 6.1.0¶
Records which have no external key set (the value referenced by the referenceUid property) are now skipped in the import. Indeed it makes no sense to import records without such keys, as they can never be updated and - if several are created in a single import run - they will override each other. Still it is a change of behaviour and should be noted.
Upgrade to 6.0.0¶
All properties that were deprecated in version 5.0.0 were removed and the backwards-compatibility layer was dropped. Please refer to the 5.0.0 upgrade instructions and check if you have applied all changes.
All hooks were marked as deprecated. They will be removed in version 7.0.0. You should migrate your code to use either custom process steps or the newly introduced PSR-14 events. See the hooks chapter for information about how to migrate each hook.
External Import is now configured for using the standard (Symfony)
dependency injection mechanism. This means it is not necessary to instantiate the
\Cobweb\ExternalImport\Importer
class using Extbase's
\TYPO3\CMS\Extbase\Object\ObjectManager
anymore when using the Importer
as an API.
The PHP code was cleaned up as much as possible and strict typing was declared in every class file. This may break your custom code if you were calling public methods without properly casting arguments.
New stuff¶
The arrayPath
is now available as both a general configuration option
and a column configuration option.
It was also enriched with more capabilities.
A new exception \Cobweb\ExternalImport\Exception\InvalidRecordException
was
introduced which can be used inside user function
to remove an entire record from the data to import if needed.
A new transformation property isEmpty is available for checking if a given data can be considered empty or not. For maximum flexibility, it relies on the Symfony Expression language.
It is also possible to set multiple mail recipients for the import report instead of a single one (see the extension configuration).
Upgrade to 5.1.0¶
There is a single change in version 5.1.0 that may affect existing imports: when a user function fails to handle the value it was supposed to transform (by throwing an exception), that value is now removed from the imported dataset. Before that it was left unchanged.
Other requirements¶
As is mentioned in the introduction, this extension makes heavy use of an extended syntax for the TCA. If you are not familiar with the TCA, you are strongly advised to read up on it in the TCA Reference manual.