IBM MDM, ошибка при расширении сущности организации

Я делаю POC в IBM Infosphere MDM, с конкретным физическим MDM.

Я пойду через шаги, которые я сделал.

  1. Без каких-либо расширений или дополнений я запустил addOrganization сервис с моделью по умолчанию, поставляемой с программным обеспечением IBM. Детали организации были добавлены в MDM без каких-либо ошибок. Чтобы было проще, я только продолжал TCRMOrganizationNameBObj (это единственный обязательный объект) в TCRMOrganizationBObj. Пока все было хорошо.

  2. Я добавил расширение. X Организация, с 2 атрибутами. Один из атрибутов не обнуляется (CustomerHierarchyCode). новый addOrganization Сервис, который мы подготовили, приведен ниже.

addOrganization

<?xml version="1.0" encoding="UTF-8"?>
<!--DOCTYPE TCRMService SYSTEM "myTCRM.dtd"-->
<TCRMService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="myTCRM.xsd">
    <RequestControl>
        <requestID>22456</requestID>
        <DWLControl>
            <requesterName>cusadmin</requesterName>
            <requesterLanguage>100</requesterLanguage>
        </DWLControl>
    </RequestControl>
   <TCRMTx>
        <TCRMTxType>addOrganization</TCRMTxType>
        <TCRMTxObject>TCRMOrganizationBObj</TCRMTxObject>
        <TCRMObject>
            <TCRMOrganizationBObj>
                <PartyId/>
                <NewPartyIdReference>333994</NewPartyIdReference>
                <DisplayName>MSI</DisplayName>
                <PreferredLanguageType>100</PreferredLanguageType>
                <ComputerAccessType>1</ComputerAccessType>
                <PartyType>O</PartyType>
                <AlertIndicator>Y</AlertIndicator>
                <SolicitationIndicator>N</SolicitationIndicator>
                <ConfidentialIndicator>N</ConfidentialIndicator>
                <ClientPotentialType>2</ClientPotentialType>
                <ClientImportanceType>4</ClientImportanceType>
                <MandatorySearchDone>Y</MandatorySearchDone>
                <BuySellAgreementType>2</BuySellAgreementType>
                <ProfitIndicator>Y</ProfitIndicator>
                <OrganizationType>1</OrganizationType>
                <EstablishedDate>2006-01-11</EstablishedDate>
                <IndustryType>9</IndustryType>
                <OrganizationLastUpdateDate/>
                <OrganizationLastUpdateUser/>                  
                <TCRMExtension>
                    <ExtendedObject>XOrganizationBObjExt</ExtendedObject>
                        <XOrganizationBObjExt>
                            <PrivateCompanyCustomerInd>Yes</PrivateCompanyCustomerInd>
                            <CustomerHierarchyCodeType>2</CustomerHierarchyCodeType>
                            <CustomerHierarchyCodeValue>name2</CustomerHierarchyCodeValue>
                        </XOrganizationBObjExt>
                </TCRMExtension>   
                <TCRMOrganizationNameBObj>
                    <OrganizationNameIdPK/>
                    <OrganizationPartyId/>
                    <OrganizationName>Media</OrganizationName>
                    <StartDate>2006-01-11</StartDate>
                    <EndDate/>
                    <NameUsageType>1</NameUsageType>
                </TCRMOrganizationNameBObj>                         
            </TCRMOrganizationBObj>
        </TCRMObject>
    </TCRMTx>
</TCRMService>

Я побежал выше addOrganization в котором я получил следующую ошибку. Я считаю, что некоторые теги, либо <TCRMExtension> или же <CustomerHierarchyCodeType> неуместно. Может кто-нибудь помочь с этим?

<?xml version="1.0" encoding="UTF-8"?>
<TCRMService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="tCRMResponse.xsd">
       <ResponseControl>
              <ResultCode>FATAL</ResultCode>
              <ServiceTime>32</ServiceTime>
              <DWLControl>
                     <requesterLanguage>100</requesterLanguage>
                     <requesterLocale>en</requesterLocale>
                     <requesterName>cusadmin</requesterName>
                     <requestID>22456</requestID>
              </DWLControl>
       </ResponseControl>
       <TxResponse>
              <RequestType>addOrganization</RequestType>
              <TxResult>
                     <ResultCode>FATAL</ResultCode>
                     <DWLError>
                           <ComponentType>106</ComponentType>
                           <ErrorMessage>Parser DWLTransaction failed. The format of the message is not correct or an application error occurred.</ErrorMessage>
                           <ErrorType>READERR</ErrorType>
                           <LanguageCode>100</LanguageCode>
                           <ReasonCode>4928</ReasonCode>
                           <Severity>0</Severity>
                            <Throwable>com.dwl.base.requestHandler.exception.RequestParserException: cvc-complex-type.2.4.a: Invalid content was found starting with element &apos;XOrganizationBObjExt&apos;. One of &apos;{ExtendedObject, CommonExtensionBObj}&apos; is expected.</Throwable>
                     </DWLError>
              </TxResult>
       </TxResponse>
</TCRMService>

<TCRMExtension> тег хранится до TCRMOrganizationNameBObj (который указан в TCRMOrganizationBObjType XSD). См. Ниже для xsd.

TCRMOrganizationBObjType
<xsd:complexType name="TCRMOrganizationBObjType" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexContent>
<xsd:extension base="CommonBObjType">
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="0" ref="ObjectReferenceId"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyId"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="NewPartyIdReference"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="DisplayName"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PreferredLanguageType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PreferredLanguageValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ComputerAccessType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ComputerAccessValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="CreatedDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="SinceDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="LeftDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="InactivatedDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="LastStatementDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ReferredByPartyID"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="StatementFrequencyType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="StatementFrequencyValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientStatusType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientStatusValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="AlertIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="SolicitationIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ConfidentialIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientPotentialType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientPotentialValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientImportanceType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ClientImportanceValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="MandatorySearchDone"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyActiveIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="DoNotDeleteIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="LastUsedDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="LastVerifiedDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="SourceIdentifierType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="SourceIdentifierValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyLastUpdateDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyLastUpdateUser"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PartyLastUpdateTxId"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="AccessTokenValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationPartyId"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="BuySellAgreementType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="BuySellAgreementValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ProfitIndicator"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="EstablishedDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="IndustryType"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="IndustryValue"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationLastUpdateDate"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationLastUpdateUser"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="OrganizationLastUpdateTxId"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="TCRMExtension"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="PrimaryKeyBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMOrganizationNameBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyAddressBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyContactMethodBObj"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="TCRMFinancialProfileBObj"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="TCRMInactivatedPartyBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyIdentificationBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyRelationshipBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMSuspectBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMAlertBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMAdminContEquivBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyLobRelationshipBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyPrivPrefBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyValueBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="DWLAccessDateValueBObj"/>
<!-- ######## response element ######## -->
<xsd:element minOccurs="0" ref="ComponentID"/>
<xsd:element minOccurs="0" ref="PendingCDCIndicator"/>
<xsd:element minOccurs="0" ref="AddPartyStatus"/>
<xsd:element minOccurs="0" ref="PartyHistActionCode"/>
<xsd:element minOccurs="0" ref="PartyHistCreateDate"/>
<xsd:element minOccurs="0" ref="PartyHistCreatedBy"/>
<xsd:element minOccurs="0" ref="PartyHistEndDate"/>
<xsd:element minOccurs="0" ref="PartyHistoryIdPK"/>
Chapter 4. InfoSphere MDM Server business objects 905
<xsd:element minOccurs="0" ref="SearchPartyDone"/>
<xsd:element minOccurs="0" ref="OrganizationHistActionCode"/>
<xsd:element minOccurs="0" ref="OrganizationHistCreateDate"/>
<xsd:element minOccurs="0" ref="OrganizationHistCreatedBy"/>
<xsd:element minOccurs="0" ref="OrganizationHistEndDate"/>
<xsd:element minOccurs="0" ref="OrganizationHistoryIdPK"/>
<xsd:element minOccurs="0" ref="DWLStatus"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyLinkBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMDefaultPrivPrefBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartySearchBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMOrganizationSearchBObj"/>
<xsd:element minOccurs="0" ref="TCRMMultiplePartyCDCBObj"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="TCRMPartyDemographicsBObj"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

2 ответа

Следующее будет работать..

<TCRMService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.ibm.com/mdm/schema" xsi:schemaLocation="http://www.ibm.com/mdm/schema MDMDomains.xsd">
        <RequestControl>
                <requestID>3</requestID>
                <DWLControl>
                        <requesterName>Sankar</requesterName>
                        <requesterLanguage>100</requesterLanguage>
                </DWLControl>
        </RequestControl>
        <TCRMTx>
                <TCRMTxType>addParty</TCRMTxType>
                <TCRMTxObject>TCRMOrganizationBObj</TCRMTxObject>
                <TCRMObject>
                        <TCRMOrganizationBObj>
                                <PartyType>O</PartyType>
                                <DoNotDeleteIndicator>1</DoNotDeleteIndicator>
                                <OrganizationType>1</OrganizationType>
                                <EstablishedDate>1978-01-03</EstablishedDate>
                                <IndustryType>10</IndustryType>
<TCRMOrganizationNameBObj>
                    <OrganizationNameIdPK/>
                    <OrganizationPartyId/>
                    <OrganizationName>Medteck</OrganizationName>
                    <StartDate>2006-01-11</StartDate>
                    <EndDate/>
                    <NameUsageType>1</NameUsageType>
                </TCRMOrganizationNameBObj>
        </TCRMOrganizationBObj>
                </TCRMObject>
        </TCRMTx>
</TCRMService>

Последние версии MDM не позволяют легко расширять сторонние объекты. Раньше мы использовали обходной путь, при котором мы копировали банку (в частности, свойство) из более старой версии MDM в RAD, что позволяет расширять объекты группы.

После сборки с этим изменением в jar, хотя RAD не позволяет использовать все возможности, он позволит их расширить и в PhysicalMDM.xsd, чего достаточно для работы расширения.

PS: у меня нет банки и имущества под рукой; Я обновлю здесь, как только получу.

Другие вопросы по тегам