It’s seems like it’s time for a new post in the series about importing vendor catalogs in Dynamics AX 2012. The previous couple of blog posts covered setup and importing a sample catalog. It’s all well and nice but what if something went wrong somewhere along the way of setting up the feature. Below you will find a list of problems that can arise during vendor catalog import setup. And of course the solutions to the problems will be described in detail.
I try to import a Vendor catalog with Dynamics AX. I generate the XSD File but it is really not clear how to populate it.
The XSD file that you can generate from the vendor catalog form provides you with the schema of the CMR file that can be imported. XSD (XML Schema Definition) is one of several XML schema languages. The blog post about importing a sample catalog contains a detailed list of steps that you need to take to generated a sample CMR file.
I’d like to see an example of a CMR file with data to import?
It is important to note that the XSD schema for CMR files depends on the procurement hierarchy that you set up in Dynamics AX so the chances of successfully importing sample CMR files are really-really low because the XSD schema produced from your system will most probably differ from the one that was used to generate the sample file. However it’s always nice to see a sample file just to have an idea of what kind of beast the CMR file is. Below is the XML that a sample file might contain:
<?xml version="1.0" encoding="utf-8"?>
<VendorCatalog VendorName="CatImpVend" LoadDate="1900-01-01T01:01:01+01:00" ProductClassification="Procurement Category" xmlns="http://dax.com/vendorcatalog">
<Product xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="root" Delete="No" ProductCode="ProductCode1" ProductSearchName="ProductSearchName1">
<Price Currency="USD" UnitOfMeasure="%" Value="100">
I’m getting the error “Imported schema for namespace ‘http://www.w3.org/XML/1998/namespace’ was not resolved” when trying to generate in Visual Studio a sample CMR file based on the XSD schema.
This is a known issue. The workaround is to remove the line below from the XSD file:
<xs:import schemaLocation="http://www.w3.org/2001/xml.xsd" namespace="http://www.w3.org/XML/1998/namespace" />
When I run the AIF job for processing no error is given but the status of the import in the Catalog file history does not change
The error was most probably logged in the AIF exception log: System administration\Periodic\Application integrationServices and Application Integration Framework\Exceptions.
In the AIF exception log there is an error: Could not find schema information for the element 'http://dax.com/vendorcatalog:VendorCatalog'.
Make sure that you set up the inbound port in AIF as in Walkthrough: Configuring an inbound integration port for catalog import [AX 2012]. Pay special attention to the paragraph about setting up the pipeline component:
The catalog import service requires a special component that processes CMR documents. To enable this component, follow these steps.
In the Inbound ports form, on the Processing options tab, select the Preprocess service operation requests check box, and then click Inbound pipelines.
In the Inbound pipelines form, click Add. Then, in the Class name list, select CatVendorXmlTransform.
In the Purpose field, enter an optional description, such as “Transform vendor XML files,” and then close the Inbound pipelines form.
Click Activate to deploy the integration port.
When I'm trying to set the Root folder path in the Vendor catalog import parameters nothing happens when I click the OK button.
The reason is most probably because the user account that is used to run AOS does not have permissions to the folder you chose.
I uploaded the CMR file but after running the AIF import jobs the status in the event log is still "Catalog upload complete ".
Verify the AIF exception log.
Verify that you set up the inbound port for vendor catalog import correctly
Verify that you used correct URI in the inbound port. It should be set up with CatalogImportPickup subfolder rather than with the root folder.
I hope this information was useful. I would like to make this article into a live blog post. So if you have any problems with setting up vendor catalog import please write to me or post a comment and I will do my best to resolve your problem and post the resolution in this article.
we have a problem with the vendor catalog. We get to the point that the catalog is imported, but according to the event log it is not validated against the xsd schema.
What could case failing this validation? is the validation controlled by the workflow?
Thanks a lot for your answer
Have you tried looking in the AIF exception log (System administration\Periodic\Application integrationServices and Application Integration Framework\Exceptions)? There might be some context there about which tag/attribute is incorrect.
Essentially the validation of the CMR file is performed against the XSD schema that you generated from the Vendor Catalog form so you should be able to use any standard xsd validation tool to get more info.
P.S. I think there is an error in the second blog post in the series that I forgot to correct (now it's fixed). When generating the sample CMR file from visual studio you should right click the VendorCatalog (instead of Product) node in the XML schema explorer and then click Generate Sample XML. Could you also try that?
Thanks for you quick response!
I checked the expections log, but there is no message on the vendor catalog import and i've created the XML sample by right click on the VendorCatalog.
According to the event log on the catalog file history the catalog upload was completed, however the next step 'validating with schema' is not performed. See status descriptions in step 9 of technet description technet.microsoft.com/.../hh242762
could this be a problem with a workflow or with the inbound port.
Did you run the AIF processing jobs (see the first blog post in the series: blogs.msdn.com/.../import-vendor-catalogs-from-setup-to-importing-a-sample-catalog-part-1-setup.aspx)?
1: static void runAIFReceive(Args _args)
3: new AifGatewayReceiveService().run();
4: new AifInboundProcessingService().run();
6: info('AIF processing done');
Thanks for your help!
we found the problem, we used an incorrect URI in the inbound port, it was setup with the root folder, instead of the catalogimportpickup subfolder.
I have used you guides regarding Import Vendor Catalog (all 3 parts) and found them very usefull.
We succeded in setting up the entire Vendor Catalog import and it works like a charm on the basis of a simplified xml test file (as illustrated in your blog above).
I have run into some problems with the XSD file generated from the vendor catalog. We have resolved the issue with the 'Imported schema for namespace ‘www.w3.org/.../namespace’ by deleting it as described, but when we try to map the XSD file in Excel (Developer - Source - XML Maps), we get a error:
"The following Scema elements and structures cannot be mapped to a worksheet. They will not be visible in the XML Source task pane.
- Substitution groups
- Abstract elements
- Recursive structures
- Mixed content
Will you continue ..... and so on.
When we continue, then the only available VendorCatalog_Map in the Source is:
Could you point me in the right direction of a solution to the matter, I would me most pleased.
Hi, thanks for this great article.
I would like to whether we can import both the product masters and its variants in the same XML/CMR file.
I have tried by changing the product type = product variant for the variant in the same file. But while importing I get an error that there is a duplicate product code.
It should be there since the product code for all the variants is same and the unique will be the product barcode.
Awaiting to know, if there are any work arounds.
Michael, i have same problem you. How import a xml file on excel for work/generate catalog ?
Another question : How imported two catalogs of different vendor who have same product number ?
I have the same issue of micheal, how open the xsd with excel to populate the XML file?
Or how to convert the XSD to XML with the right data ?
Thanks in advance,
I have an issue, which is not listed here.
I'm trying to import an XML file. I have no XSLT file which will transform my XML.
I've configured my inbound port using "Walktrough".
When I have in my inbound port configured "Inbound pipelines" I have an exception "An 'xsl:choose' element must have at least one 'xsl:when' child.".
But as I mentioned above, I have no XSLT file attached, where would be possible to find any xsl:when statement. My XML document is already prepared as it should be.
I think that a class CatVendorXmlTransform is trying to transform something, but there is nothing to transform. Am I right? So, does it mean that I should not use "Inbound pipelines" in that case?
When Inbound pilelines is switched off, I have a message "Invalid document schema. The following error was returned: Could not find schema information for the element 'schemas.microsoft.com/.../Message:VendorCatalog&.
Any advise? :)
I think I'm stuck