View Issue Details

IDProjectCategoryView StatusLast Update
0006595OXID ERP InterfaceOXID ERP Interface - subpublic2024-04-03 11:06
Reportermichael_keiluweit Assigned To 
PrioritylowSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Product Version2.14.1 
Summary0006595: Read methods doesn't support _set tables (language feature)
DescriptionAll OXERPGet* methods can only handle multilanguage fields until language 7.

When the eighth language is created, the shop adds a new table with the naming object_set1. For example oxarticles_set1. It contains only multilanguage fields but with the language number > 7.

By reading multilanguage fields above 7, the ERP module will always return the value for language 0 as fallback. The reason is located in the method \oxERPType::_getMultilangualFields which uses always the "normal" table name, instead of the name the possible set table.
The specific line is: $aData = oxDb::getInstance()->getTableDescription($this->_sTableName);

If you return the value of $aData you will get an array of available fieldnames of the table oxarticles. The set table is ignored and therefore the multilanguages fields > 7 are missing.

By changing the line to:
$aData = oxDb::getInstance()->getTableDescription($this->getTableName());

you will get an array with all of the multilanguage fields. From 0 to 8 if 8 is the highest language identifier.
Steps To Reproduce1. Shop: Install the Enterprise Edition (currently 5.3.3).
2. Shop: Add the ERP module (currently 2.14.1).
3. Shop: Create 8 languages, regenerate the views and empty the shop tmp folder.
4. Shop: Fill the multilanguage fields for an article title.
5. ERP: Login with language id 8.
6. ERP: Execute the method "OXERPGetArticle for the example article from step 4.
7. ERP: Verify if the title for language 8 will be the value for OXTITLE. It won't. It will be the title for language 0.
Additional InformationWorkaround
Edit the method \oxERPType::_getMultilangualFields

Replace the line:

$aData = oxDb::getInstance()->getTableDescription($this->_sTableName);

with:

$aData = oxDb::getInstance()->getTableDescription($this->getTableName());

TagsERP, Internationalization Rework, Product domain and basket rewrite, SOAP

Relationships

has duplicate 0006597 closedSven Brunk OXERPGet* methods doesn't return the values of multi language fields which have a number larger than 9 

Activities

There are no notes attached to this issue.