NAME
XML::BMEcat - Perl extension for generating BMEcat-XML
SYNOPSIS
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:
HEADER
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
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 CP1252