IBM MDM, ошибка при расширении сущности организации
Я делаю POC в IBM Infosphere MDM, с конкретным физическим MDM.
Я пойду через шаги, которые я сделал.
Без каких-либо расширений или дополнений я запустил
addOrganization
сервис с моделью по умолчанию, поставляемой с программным обеспечением IBM. Детали организации были добавлены в MDM без каких-либо ошибок. Чтобы было проще, я только продолжалTCRMOrganizationNameBObj
(это единственный обязательный объект) в TCRMOrganizationBObj. Пока все было хорошо.Я добавил расширение. 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 'XOrganizationBObjExt'. One of '{ExtendedObject, CommonExtensionBObj}' 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: у меня нет банки и имущества под рукой; Я обновлю здесь, как только получу.