on 06-04-2007 4:20 PM
Hi Experts,
I have a questions about XSD files. I have an XSD file associated with my DT_UPDATE_STATUS data type. I do not have any message mappings, but when I test the mapping, I get the value sfx.job_copy returned between the <TABLE> tags. I did not do the configuration, but I need to understand it. How is a value returned if there was no mapping?? I assume it is from the XSD. My XSD file looks as follows. How can I edit the output, since I need to change sfx.job_copy to sfx.job_history ???
Reward points for helpful answers
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tssi.tssi.ca" targetNamespace="http://tssi.tssi.ca">
<xsd:complexType name="DT_UPDATE_STATUS">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
f0819aa012ad11dc943a00145e7e174e
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="STATEMENTNAME">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
e32d9234a31b11da8ecad82c0a690329
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="dbTableName">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
e32d9235a31b11daa436d82c0a690329
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TABLE" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
e32d9236a31b11daa9bed82c0a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="access">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2110ebc0cb2011da9af7dcd60a690329
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="status1" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2110ebc1cb2011da9c03dcd60a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="status2" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
f67c5b10f4af11dab865e2540a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="key">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2110ebc2cb2011daad17dcd60a690329
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="jobId" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2110ebc3cb2011daae51dcd60a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="status1" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
927a9270d3c711dac48bf9160a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="messagenm" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
6c7b22b0fc8511daaeddf7c80a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="action" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
e32d9240a31b11dac242d82c0a690329
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Hi,
When there is no mapping, then no values will be "returned". Whatever is in the source XML will be send to the target XML. The identical source XML will be send to the target XML.
The XSD is simply a schema definition, like an SQL schema. It returns no values. It can be used to validate the XML (in the next release), but cannot return or insert any values to the target XML.
Regards,
Bill
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bill,
When I test my mapping and look at the resulting XML file, there are values between the <TABLE> </TABLE>, <STATUS1> </STATUS1> and <STATUS2> </STATUS2> fields. The XML file looks like:
But where do these values come from, if it is not through a mapping???
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_UPDATE_STATUS xmlns:ns0="http://tssi.tssi.ca">
<STATEMENTNAME>
<dbTableName action="UPDATE">
<TABLE>sfx.job_copy</TABLE>
<access>
<status1>DONE</status1>
<status2>DONE</status2>
</access>
<key>
<jobId />
<status1 />
<messagenm />
</key>
</dbTableName>
</STATEMENTNAME>
</ns0:MT_UPDATE_STATUS>
Also, the source XML looks like:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_ABS_ATT_RT xmlns:ns0="http://tssi.tssi.ca">
<MESSAGE_ID />
<STATUS />
<objectID />
<Return>
<number />
<message />
<id />
</Return>
</ns0:MT_ABS_ATT_RT>
So, TABLE, STATUS1 and STATUS2 values must come from somewhere else. How do they get populated on the outbound side??
Hi Raj,
Everthing is defined. It even works (technically). The problem is, I need to change the table name being output from sfx.job_copy to sfx.job_history, and I can't find where that value is set.
I have the data types, message types, message interfaces, interface mapping and message mapping all defined.
Any help is greatly appreciated.
Thanks
Shane
hey
i remember few weeks ago there was a similar question in sdn:)
well the solution is be either u have a UDF defined,or ur getting this value from header.
lemme see if i can find that exact thread and will update u
in the mean time,check for any UDF's or values coming from SOAP header
thanx
ahmad
Shane,
In your target field the two nodes <Status1>DONE</Status1>
<Status2>DONE</Status2> has been populated.. How come these fields are populated I want to know whether you mapped any source to target struture.
It helps to anylyze further.
Shane , one more thing open the Interface mapping and check whether the Interface mapping uses the Mapping program you defined or its using some other mapping like XSLT,ABAP...
Best Regards,
raj.
Hi Raj,
I don't know how status1, status2 and table get populated, but it's not through a mapping, since there definitely isn't one.
Also, the inbound message doesn't even contain a status1 or status2 field. It is a hard-coded response (but I can't find where it is coded). When I look at the message mapping and put my mouse over the inbound nodes, it says 'Node not used' and all the elements have gray dots beside them.
I opened the interface mapping and it uses 'Message Mapping' as the program. It has the name that I expect it to have.
The thing I need to know is where this additional configuration comes from. I can't seem to find it ????
Any ideas
Thanks
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.