cancel
Showing results for 
Search instead for 
Did you mean: 

Still confused about XSD files

Former Member
0 Kudos

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>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

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>

Former Member
0 Kudos

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??

justin_santhanam
Active Contributor
0 Kudos

Shane,

<i><b>When I test my mapping</b></i> <i>and look at the resulting XML file</i>

Please let us know whether you have defined the mapping object or not.

Best regards,

raj.

Former Member
0 Kudos

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

justin_santhanam
Active Contributor
0 Kudos

Shane,

In the message mapping doublick on the target <Table> node and can you check any source field has been mapped to it, or any UDF.

Best Regards,

raj.

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Raj,

When I double click on it, nothing shows up other than a box with the word 'table' in it. So, there are no mappings to table.

Also, when I look at the message mapping, before I double click on 'table', table appears with a red dot beside it.

Any ideas?

Former Member
0 Kudos

Hi Ahmad,

I can't find any reference to sfx.job_copy in the SOAP headers. Where would I see UDFs ??

Thanks

Shane

justin_santhanam
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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