I am responsible for a set of modules that the company I am working for use to import and export video on demand metadata to and from CSV and XML through files and web services.

The modules were developed when Feeds was young and seemed to have too many limitations and problems for our purposes. However things have moved on (great work BTW :-) and I can see considerable scope for pulling the special funcionality out of our modules and contributing them as plugins (and maybe patches) for feeds.

I thought a good place to start was the functionality we have in our modules that I don't see in Feeds after a short analysis - all comments and corrections welcome.

CSV import export with Pimport

Pimport offers CSV import and export to nodes via a mapping UI which is similar to Feeds, supporting basic node fields, plus CCK including node reference. Pimport was developed to allow users to manage content using a spreadsheet including adding or updating existing nodes in a round trip import and export. Windows-1252 is supported by conversion to UTF-8 keeping Excel users happy.
Drag and drop re-ordering of columns is supported to keep CSV exports coherent, and there are options to ignore blank cells and rows.
Any combination of columns in the CSV can be chosen as part of a unique ID to identify nodes.
Pimport also supports translations by allowing the unique ID to reference the translation source, creating or updating the translated node, although this functionality is very alpha...
Nodes can be allocated to users by including a user reference (UID, name, email) in a column which is great for integrating legacy spreadsheet managed task allocation - a common task for us.

XML export with Hose XML

Hose XML was developed to allow non-programmers to construct complex XML representations of node data to allow one set of video on demand metadata to be presented to multiple platforms (e.g. Itunes). Hose XML has a drag and drop XML structure mapping UI which doesn't solve all the problems of mapping CCK fields to XML tags but it does solve a lot of them. Tags and their attributes can be supplied with data from CCK fields or tokens with module hooks for custom transformations. Tags can depend on other tags and there is comprehensive validation and error checking. Mappings can be auto generated from an uploaded XML file or from fields in a content type.

Enterprise data integration

Drupal has gained a strong foothold here and we are being asked to provide user interfaces to several internal systems communicating over web services. The goal is to use Hose XML mapping to provide the transformation interface between data objects over SOAP and REST, being configurable without a developer.
Recent developments not yet contributed include auto XSD generation which we use to generate a WSDL for a SOAP node service which adapts to changes made by users to the XML structure in the UI.

Can we collaborate?

Our code is far from perfect, I am in the process of refactoring both modules, including developments not yet added on Drupal.org while assessing other options. Feeds has a good structure and I am trying to work out if we can refactor our mapping UIs for feeds and include some of the other functionality as processors. Collaboration is good, as long as the the projects are not too far apart in aims and goals.

@alex_b - If you have time and would like to discuss some of this over IRC or email contact me here

All comments welcome.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

marcus_clements’s picture

Here are some screenshots of the modules.

twistor’s picture

Assigned: marcus_clements » Unassigned
Status: Active » Closed (outdated)