Author image Frank-Peter Reich

NAME

XML::BMEcat - Perl extension for generating BMEcat-XML

SYNOPSIS

  use XML::BMEcat;

  my $BMEcat = XML::BMEcat->new();

  $BMEcat->setOutfile("catalog.xml");

DESCRIPTION

  XML::BMEcat is a simple module to help in the generation of BMEcat-XML.
  Basically, you create an XML::BMEcat object and then call the related
  methods with the necessary parameters.

METHODS

  The following methods are provided: 
  Writes the BMEcat-Header:
  • createHeader

      my $Header = $BMEcat->creatHeader();
  • setTransaction

      $Header->setTransaction($TRANSACTION, [ 'PREV_VERSION' => $prev_version ]);
  • setGeneralInfo

      $Header->setGeneralInfo(
                            'GENERATOR_INFO'        => $GENERATOR_INFO,
                            'LANGUAGE'              => $LANGUAGE,
                            'CATALOG_ID'            => $CATALOG_ID,
                            'CATALOG_VERSION'       => $CATALOG_VERSION,
                            'CATALOG_NAME'          => $CATALOG_NAME,
                            'DATE'                  => $DATE,
                            'TIME'                  => $TIME,
                            'CURRENCY'              => $CURRENCY,
                            'MIME_ROOT'             => $MIME_ROOT
                       );
  • setBuyerInfo

      $Header->setBuyerInfo(
                            'BUYER_ID'              => $BUYER_ID,
                            'BUYER_NAME'            => $BUYER_NAME,
                            'NAME'                  => $NAME,
                            'STREET'                => $STREET,
                            'ZIP'                   => $ZIP,
                            'CITY'                  => $CITY,
                            'COUNTRY'               => $COUNTRY,
                            'EMAIL'                 => $EMAIL,
                            'URL'                   => $URL
                       );
  • setAgreementInfo

      $Header->setAgreementInfo(
                            'AGREEMENT_ID'          => $AGREEMENT_ID,
                            'AGREEMENT_start_date'  => $AGREEMENT_start_date,
                            'AGREEMENT_end_date'    => $AGREEMENT_end_date
                       );
  • setSupplierInfo

      $Header->setSupplierInfo(
                            'SUPPLIER_ID'           => $SUPPLIER_ID,
                            'SUPPLIER_NAME'         => $SUPPLIER_NAME,
                            'NAME'                  => $NAME,
                            'NAME2'                 => $NAME2,
                            'CONTACT'               => $CONTACT,
                            'STREET'                => $STREET,
                            'ZIP'                   => $ZIP,
                            'CITY'                  => $CITY,
                            'COUNTRY'               => $COUNTRY,
                            'PHONE'                 => $PHONE,
                            'FAX'                   => $FAX,
                            'EMAIL'                 => $EMAIL,
                            'URL'                   => $URL
                       );
  • setConfigInfo

      $Header->setConfigInfo(
                            'VERSION'               => $BMEcat_VERSION,
                            'CHAR_SET'              => $CHAR_SET,
                            'DTD'                   => $DTD,
                            'VERBOSE'               => 1
                       );
  • writeHeader

      $BMEcat->writeHeader();

FEATURE_SYSTEM

  Writes the BMEcat - Feature-System:
  • setConfigInfo

      $Header->setConfigInfo('FEATURE_SYSTEM_NAME'  => $FEATURE_SYSTEM_NAME);
  • creatFeatureSystem

      my $FeatureSystem = $BMEcat->creatFeatureSystem();
  • addFeatureGroup

      $FeatureSystem->addFeatureGroup( 'ftg1',
    
                                    'ft1' => $unit_a,
                                    'ft2' => $unit_b,
                                    'ft3' => $unit_c,
                       );
    
      $FeatureSystem->addFeatureGroup( 'ftg2',
    
                                    'ft4' => $unit_d,
                                    'ft5' => $unit_e,
                                    'ft6' => $unit_f,
                       );
  • writeFeatureSystem

       $BMEcat->writeFeatureSystem();

GROUP_SYSTEM

  Writes the BMEcat - Catalog-Structure:
  • setConfigInfo

      $Header->setConfigInfo('GROUP_SYSTEM_ID'      => $GROUP_SYSTEM_ID);
  • creatGroupSystem

      my $GroupSystem = $BMEcat->creatGroupSystem();
  • creatCatalogGroup

      my $CatalogGroup = $GroupSystem->creatCatalogGroup($group_id);
  • getCatalogGroup

      my $CatalogGroup = $GroupSystem->getCatalogGroup($group_id);
  • setData

      $CatalogGroup->setData( 'PARENT'      =>      0,
                              'NAME'        =>      $name02,
                              'SORT'        =>      5 );
    
      $CatalogGroup = $GroupSystem->creatCatalogGroup('04');
      $CatalogGroup->setData( 'PARENT'      =>      2,
                              'NAME'        =>      $name04,
                              'SORT'        =>      5 );
    
      $CatalogGroup = $GroupSystem->creatCatalogGroup('06');
      $CatalogGroup->setData( 'PARENT'      =>      2,
                              'NAME'        =>      $name06,
                              'SORT'        =>      10 );
    
      $CatalogGroup = $GroupSystem->creatCatalogGroup('08');
      $CatalogGroup->setData( 'PARENT'      =>      4,
                              'NAME'        =>      $name08,
                              'SORT'        =>      5,
                              'LEAF'        =>      1 );
  • getData

      $CatalogGroup->getData('PARENT');
  • addDescription

      $CatalogGroup->addDescription($Description08);
  • addMime

      $CatalogGroup->addMime($type, $source, $description, $purpose);
    
      $CatalogGroup = $GroupSystem->creatCatalogGroup('10');
      $CatalogGroup->setData( 'PARENT'      =>      4,
                              'NAME'        =>      $name10,
                              'SORT'        =>      10,
                              'LEAF'        =>      1 );
  • addMember

      $CatalogGroup->addMember('foo');
  • getMembers

      my @members = $CatalogGroup->getMembers;
  • writeGroupSystem

      $BMEcat->writeGroupSystem() and print "not ";

ARTICLES

  Writes the BMEcat - Article-Entrys:

General

  • creatArticleSystem

      my $ArticleSystem = $BMEcat->creatArticleSystem();
  • writeArticleSystem

      $BMEcat->writeArticleSystem();
  • getGroupSystem

      my $GroupSystem = ArticleSystem->getGroupSystem();
  • creatArticle

      my $Article = $ArticleSystem->creatArticle($index);
  • getArticel

      my $Article = $ArticleSystem->getArticle($index);
  • getKey

      my $ArticleKey = $Article->getKey;
  • setMainInfo

      $Article->setMainInfo('mode'          =>      $mode,
                            'SUPPLIER_AID'  =>      $SUPPLIER_AID );

Features

  • setFeatureGroup

      $Article->setFeatureGroup($group_id);
  • setFeatureValues

      $Article->setFeatureValues(
                    $ft_val1,
                    $ft_val2, 
                    $ft_val3,
                    $ft_val4
            );

Details

  • addMime

      Several mimes are possible. See the BMEcat-spezification for more details.
    
      $Article->addMime(
                    $mime_type, 
                    $mime_source,
                    $description,
                    $mime_purpose
            );
  • setDetails

      All in the BMEcat-spezification described elements are allowed to set in free order
      and at several times.
    
      $Article->setDetails(
                    'DESCRIPTION_SHORT'     => $DESCRIPTION_SHORT,
                    'DESCRIPTION_LONG'      => $DESCRIPTION_LONG,
                    'EAN'                   => $EAN,
                    . . .   ,
    
                    'SPECIAL_TREATMENT_CLASS' => [ $type => $val ],
                    . . .
               );

Orderdetails

      All in the BMEcat-spezification described elements are allowed to set in free order
      and at several times.
    
      $Article->setOrderDetails(
                    'ORDER_UNIT'            => $ORDER_UNIT,
                    'CONTENT_UNIT'          => $CONTENT_UNIT,
                    'NO_CU_PER_OU'          => $NO_CU_PER_OU
                    . . .
               );

Pricedetails

      Several prices and types are possible. See the BMEcat-Spezification for more details.

    * setPriceDetails

      $Article->setPriceDetails(
                    'valid_start_date'      => $start_date,
                    'valid_end_date'        => $end_date
               );

    * addPrice

      $Article->addPrice(
                    'price_type'            => $price_type,
                    'PRICE_AMOUNT'          => $price_amount,
                    'PRICE_CURRENCY'        => $currency,
                    'TAX'                   => $tax
               );

ART_GROUP_MAP

      Maps Articles to the BMEcat - Catalog-Structure:

    * map2Group

      $Article->map2Group($group_id);

    * writeArticleGroupMap

      $BMEcat->writeArticleGroupMap();

TAIL

  • writeTail

      Writes the Tail and closes the BMEcat - Document
    
      $BMEcat->writeTail();

BUGS

  At this time not usable:
  - FEATURE_GROUP_NAME
  - DAILY_PRICE

LIMITATIONS

  Not all BMEcat-features (eg. CLASSIFICATION_SYSTEM) have been implemented yet.
  See method-descriptions for detailed informations.

SEE ALSO

The BMEcat-Authors
  http://www.BMEcat.org
Perl-XML FAQ
  http://www.perlxml.com/faq/perl-xml-faq.html

ACKNOWLEDGMENTS

  I'd like to thank Larry Wall, Randolph Schwarz, Tom Christiansen,
  Gurusamy Sarathy and many others for making Perl what it is today.
  I had the privilege of working with a really excellent teacher,
  Robert Krüger. He have guided me through the entire process and his
  criticisms where always right on.

COPYRIGHT

  Copyright 2000-2003  by Frank-Peter Reich (fp$), fpreich@cpan.org
 
  This library is free software; you can redistribute it and/or modify it under
  the same terms as Perl itself.
 
  BMEcat is a trademark of BME - Bundesverband Materialwirtschaft, Einkauf und Logistik e.V.

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 1278:

You can't have =items (as at line 1282) unless the first thing after the =over is an =item

Around line 1302:

You can't have =items (as at line 1306) unless the first thing after the =over is an =item

Around line 1363:

Non-ASCII character seen before =encoding in 'Krüger.'. Assuming ISO8859-1