Debatching messages from Oracle Adapter 3.0 – WCF generated Schema

Home Page Forums BizTalk 2004 – BizTalk 2010 Debatching messages from Oracle Adapter 3.0 – WCF generated Schema

Viewing 2 reply threads
  • Author
    Posts
    • #21664

      I’m having a problem modifying the generated schema. I recieve a message that has many records as a POLLINGSTMT typed message. If I try to map fields to another schema, I only map the first record.

      I’ve tried to use enveloping, but I either get a message saying there are no subscribers or a message about not finding the schema.

      Does anyone know of a good example of debatching using the WCF Adapter to poll an oracle table?

    • #21667

      The art to debatching lies in the schema specification and is adapter agnostic.

      Check out this sample from Richard Seroter:
      http://seroter.wordpress.com/2007/01/03/debatching-inbound-messages-from-biztalk-sql-adapter/

      If you still have problems can you post your schema.

      • #21673

        Thanks!

        I’ve run through this example, and needless to say the Oracle adapter gerated schema is not so elegant and easy to modify. It’s structured with an extra tier that makes this not one to one with the SQL adapter.

        responses are similar to the following:

        <POLLINGSTMT>

        <POLLINGSTMTRECORD>

        <POLLINGSTMTRECORD> … records repeat here </POLLINGSTMTRECORD>

        </POLLINGSTMTRECORD>

        </POLLINGSTMT>

         

        I think it’s the extra lvl of POLLINGSTMTRECORD giving me trouble. When I set the body XPATH to the lowest level, it complains that there is no schema named after the first entry for a datafield. When I set body XPATH to the next higher level POLLINGSTMTRECORD the message isn’t getting routed at all.

        • #21674

          SCHEMA as generated, copy and paste (now that I’m at work)

          _______________________________________________________________

          <?xml version=”1.0″ encoding=”utf-8″?>
          <xs:schema xmlns:tns=”http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAccountPoll” elementFormDefault=”qualified” targetNamespace=”http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAccountPoll” version=”1.0″ xmlns:xs=”http://www.w3.org/2001/XMLSchema“>
            <xs:complexType name=”POLLINGSTMTRECORD”>
              <xs:sequence>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”ID”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CUNO”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CTIT”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAMA”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”35″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAMB”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAMC”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAMD”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAME”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NAMF”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PSTC”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”10″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_COMP”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CREG”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PCPR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PCTX”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PCTF”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_SNDR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRTE”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”5″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CDEL”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCOR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_REFA”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_REFP”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_OSNO”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”15″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TELP”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”15″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TELX”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”15″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TEFX”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”15″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_SEAK”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”16″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CBRN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CBAN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CREP”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CFRW”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CPAY”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCRS”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CDEC”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCTY”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CLAN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCUR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CVYN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRLR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CLIN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCIC”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_RFCI”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”15″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_MREM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_EDED”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CNPA”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_ITPR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_NCIN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CINM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_INFQ”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCUS”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_BACK”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CPLS”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_SCOM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PLDD”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CFCG”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CCSU”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_FOVN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”20″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PAYM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_MSTM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_BUOR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_BUIN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_ODIS”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRYR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TOVR_x0024_1″>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TOVR_x0024_2″>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TOVR_x0024_3″>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TOVR_x0024_4″>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TOVR_x0024_5″>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CADR”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”6″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_INRL”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_ISCN”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_PRIO”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_COTP”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TRTM”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_GEOC_x0024_L”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”10″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_ACKX”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_TXTA”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRRA”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRBU”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”30″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_CRAT”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”3″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_REFCNTD”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”T_x0024_REFCNTU”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”4000″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element minOccurs=”0″ maxOccurs=”1″ name=”REFLAG” nillable=”true”>
                  <xs:simpleType>
                    <xs:restriction base=”xs:string”>
                      <xs:maxLength value=”1″ />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
            <xs:element name=”POLLINGSTMTRECORD” nillable=”true” type=”tns:POLLINGSTMTRECORD” />
            <xs:complexType name=”ArrayOfPOLLINGSTMTRECORD”>
              <xs:sequence>
                <xs:element minOccurs=”0″ maxOccurs=”unbounded” name=”POLLINGSTMTRECORD” type=”tns:POLLINGSTMTRECORD” />
              </xs:sequence>
            </xs:complexType>
            <xs:element name=”ArrayOfPOLLINGSTMTRECORD” nillable=”true” type=”tns:ArrayOfPOLLINGSTMTRECORD” />
            <xs:element name=”POLLINGSTMT”>
              <xs:annotation>
                <xs:documentation>
                  <doc:action xmlns:doc=”http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation”>http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT</doc:action>
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs=”0″ maxOccurs=”1″ name=”POLLINGSTMTRECORD” nillable=”true” type=”tns:ArrayOfPOLLINGSTMTRECORD” />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name=”POLLINGSTMTResponse”>
              <xs:annotation>
                <xs:documentation>
                  <doc:action xmlns:doc=”http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation”>http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT/response</doc:action>
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence />
              </xs:complexType>
            </xs:element>
          </xs:schema>

    • #21679

      I found a solution this afternoon. (my own question)

      The generated schema doesn’t have a root reference set. Set this to POLLINGSTMT. Set to Envelope=yes.

      I then deleted the POLLINGSTMTRECORD entry from the generated schema. I created a new schema named POLLINGSTMTRECORD, INCLUDED the original schema, named the root POLLING STMTRECORD and set it’s type to POLLINGSTMTRECORD from the generated schema. I set this new “record” to be the root node.

      I could probably have just set the root to the original entry for POLLINGSTMTRECORD. I’m going to try this next.

      I was able to successfully debatch 10 rows from oracle using this minor change for the oracle adapter.

      • #21682

        I find setting the Root Reference is generally a bad idea.
        When you deploy a schema with Root Reference = (Default), each root level element in the schema is registered as a message type.
        In your case there will be 4 message types: POLLINGSTMT, ArrayOfPOLLINGSTMTRECORD, POLLINGSTMTRECORD, POLLINGSTMTResponse.
        If you specify the Root Reference then only that element is registered as a message type, i.e. POLLINGSTMT

        When the Xml Disassembler receives a message that is an envelope it debatches each child of the Body Xpath node and tries to find the message type. If you have set the Root Reference it cannot find the message type, which is why you need to create your separate schema.

        A simpler way of enabling debatching, staring with the generated schema:
        1. Select <Schema> and set Envelope = Yes
        2. Select POLLINGSTMT and set Body Xpath = POLLINGSTMT/POLLINGSTMTRECORD

        There is a potential issue if you ever expect to receive a POLLINGSTMTResponse message using the Xml receive pipeline, but in your case this should not happen.

        • #21683

          Setting Envelope=Yes and the body Xpath was my first of many attempts. This resulted in  the error about no subscribers:

          The published message could not be routed because no subscribers were found

          The only setting in body XPath that even produced the “schema not found” error was POLLINGSTMT/POLLINGSTMTRECORD/POLLINGSTMTRECORD… of course telling me it couldn’t fnd the Schema for “ID,” my first entry in the POLLINGSTMTRECORD.

          Only after setting the root node to “POLLINGSTMT” did I get the error stating that the schema for POLLINGSTMTRECORD couldn’t be found. At this point I followed the standard new schema / include method mentioned in the blog posted previously.

          The only message I get back is of type POLLINGSTMT…. so like you said, I wouldn’t be able to handle messages of this type.

          I guess my real beef is lack of documentation for how it was designed to work.

      • #22012

        I need your help for debatching messages in WCF Oracle Adapter, In Oracle genarated schema have POLLINGSTMTRECORD(Complex Type) do i need to remove from following three record nodes POLLINGSTMTRECORD, ArrayOfPOLLINGSTMTRECORD and POLLINGSTMT  Could you please send me steps how to implement debatch in oracle generated schema

        Thanks In Advance

        Jana

      • #22020

         

         Hi, Iam also having the same requirement and trying to implement  what you mentioned.my question is the new schema named POLLINGSTMTRECORD target name space and generated schema target name space should be same?I tried giving different target name space to new schema and iam not alble to include new schema in the generated schema.

        I created new schema named POLLINGSTMTRECORD, INCLUDED the
        original schema, named the root POLLING STMTRECORD and set it’s type to
        POLLINGSTMTRECORD from the generated schema. I set this new “record” to
        be the root node
        .”

        Could you please clarify the above underlined statement mentioned by you. I am trying to understand but iam not clear exactictly what you mean. I appreciate your time

        Thanks

        Gopal

Viewing 2 reply threads
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.