XMLport - Import and XMLport have same structure but error

samemery
Member Posts: 60
Hi,
The error I receive is "The element <int> is expected by the Min Occurs value: Once. Element recieved: <struct>."
I have checked all the import files <struct> nodes and have found that they are in the same structured as my XMLport. Any other things I can check to fix this error?
Thank you,
Sam
The error I receive is "The element <int> is expected by the Min Occurs value: Once. Element recieved: <struct>."
I have checked all the import files <struct> nodes and have found that they are in the same structured as my XMLport. Any other things I can check to fix this error?
Thank you,
Sam
0
Comments
-
Could you put a screenshot of your xmlport and the xmlfile?
Also did you try and use the xmlportgenerator? It automatically creates the xmlport based on your xml file. It's in the download section.0 -
Hi,
Thank you in advance. I tried to use the XMLport generator but it wouldn't load any root elements to choose from and I got an error saying:
"Unhandled exception has occurred in your application. If you click continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately. Object reference not set to an instance of an object."
Attached is the beginning of my XMLport and my XML schema is here:
<?xml version="1.0"?>
<methodCall>
<methodName>send_ready_orders</methodName>
<params>
<param>
<value><int>1</int></value>
</param>
<param>
<value>
<struct><member><name>order_0</name>
<value><struct>
<member><name>order_id</name>
<value><int>4404576</int></value>
</member>
<member><name>order_date</name>
<value><string>2011-02-02</string></value>
</member>
<member><name>mfg_id</name>
<value><int>3969</int></value>
</member>
<member><name>catalog_id</name>
<value><int>1</int></value>
</member>
<member><name>first_name</name>
<value><string>Implementation</string></value>
</member>
<member><name>last_name</name>
<value><string>Team</string></value>
</member>
<member><name>recipient</name>
<value><string></string></value>
</member>
<member><name>message</name>
<value><string></string></value>
</member>
<member><name>address1</name>
<value><string>Post Office Box 5555</string></value>
</member>
<member><name>address2</name>
<value><string></string></value>
</member>
<member><name>address3</name>
<value><string></string></value>
</member>
<member><name>city</name>
<value><string>Test City</string></value>
</member>
<member><name>state</name>
<value><string>CA</string></value>
</member>
<member><name>zip</name>
<value><string>44444</string></value>
</member>
<member><name>country</name>
<value><string>United States of America</string></value>
</member>
<member><name>country_code</name>
<value><string>US</string></value>
</member>
<member><name>phone</name>
<value><string>444-444-4444</string></value>
</member>
<member><name>subtotal</name>
<value><double>149.99</double></value>
</member>
<member><name>shipping</name>
<value><double>0</double></value>
</member>
<member><name>fulfiller_shipping</name>
<value><double>0</double></value>
</member>
<member><name>tax</name>
<value><double>14.62</double></value>
</member>
<member><name>fulfiller_tax</name>
<value><double>14.1814</double></value>
</member>
<member><name>package_fee</name>
<value><double>0.75</double></value>
</member>
<member><name>total</name>
<value><double>164.61</double></value>
</member>
<member><name>fulfiller_total</name>
<value><double>153.07</double></value>
</member>
<member><name>total</name>
<value><double>11.54</double></value>
</member>
<member><name>shipment_id</name>
<value><int>3126504</int></value>
</member>
<member><name>currency_id</name>
<value><int>1</int></value>
</member>
<member><name>language_id</name>
<value><int>1</int></value>
</member>
<member><name>cust_comments</name>
<value><string>TEST ORDER - DO NOT PROCESS</string></value>
</member>
<member><name>ship_type</name>
<value><string>standard</string></value>
</member>
<member><name>packing_list</name>
<value><string></string></value>
</member>
<member><name>num_items</name>
<value><int>1</int></value>
</member>
<member><name>items</name>
<value><struct>
<member><name>item_1</name>
<value><struct>
<member><name>item_id</name>
<value><int>6045134</int></value>
</member>
<member><name>part_number</name>
<value><string>COBO-2011-20-B</string></value>
</member>
<member><name>quantity</name>
<value><int>1</int></value>
</member>
<member><name>price</name>
<value><double>149.99</double></value>
</member>
<member><name>fulfiller_total</name>
<value><double>153.8314</double></value>
</member>
<member><name>_total</name>
<value><double>10.7851</double></value>
</member>
<member><name>line_item_tax</name>
<value><double>14.62</double></value>
</member>
<member><name>line_item_subtotal</name>
<value><double>149.99</double></value>
</member>
<member><name>line_discount</name>
<value><double>0</double></value>
</member>
<member><name>options</name>
<value><struct>
<member><name>option_1</name>
<value><string>Color: Blue</string></value>
</member>
</struct></value>
</member>
</struct></value>
</member>
</struct></value>
</member>
</struct></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>0 -
you have two child elements <Param> line 4 and 7. And Xmlport cannot distinguish them. Thus it thinks that on second <Param> after Value it should be int.
What you need to do is load the xml in MSXMLDOM. If you need the first param, change the name in MSXMLDOM to something else then load it to xmlport. Otherwise if you don't need the first <Param> element, delete it and then load the xml to XMLPORT.
The way it's currently setup you cannot import it using XMLPORT.0 -
Hi,
Thank you for your responses. Is there a page I where I could learn how to use MSXMLDOM? I have no idea what it is and would like to see how to use it. Thank you.0 -
here is a link
http://msdn.microsoft.com/en-us/library/aa468547.aspx
There is also a NA V CU 6224 "XML DOM Management" That you can take a look.
Your code will look like this if you don' t need that element.CLEAR(XMLDoc); IF ISCLEAR(XMLDoc) THEN CREATE(XMLDoc); XMLDoc.async(FALSE); XMLDoc.load('C:\Temp\YourXMLFile.xml'); IF NOT FindNode(XMLDoc,'MethodCall/Params/Param',XMLNode) THEN ERROR('Could not find the node'); IF NOT FindNode(XMLDoc,''MethodCall/Params',XMLNodeChild) THEN ERROR('Could not find the node'); XMLNode.removeChild(XMLNOdeChild); XMLDoc.save('c:\Temp\NewXML.xml');
Then run your xmlport
I have not tested this. But it should give you an idea on what to do.0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions