因为 RosettaNet 不时会添加 PIP,所以您可能要创建自己的 PIP 包 以支持新的 PIP 或对 PIP 的更新。如果没有其它注明,本节的过程描述了如何创建 PIP 5C4 V01.03.00 的 PIP 文档流包。 Business Integration Connect 提供了 PIP 5C4 V01.02.00 的 PIP 文档 流包,因此这里的过程实际上记录了如何执行升级操作。 但是,创建 PIP 文档流包的过程是相似的,并且这些过程说明了创建过程以外的其它步骤。
在开始之前,请从 www.rosettanet.org 下载 PIP 规范以获得新版本, 如果您执行的是升级操作,则还需要以前的版本。 例如,如果您正在执行以下过程中描述的升级操作,则需要下载 5C4_DistributeRegistrationStatus_V01_03_00.zip 和 5C4_DistributeRegistrationStatus_V01_02_00.zip。规范中包括以下文件类型:
创建或更新 PIP 文档流包涉及下列步骤:
PIP 文档流包包含 XML 模式文件,这些文件定义了消息格式和对于元素可接受的值。 下面的过程说明如何根据 PIP 规范文件的内容创建这些文件。
对 PIP 规范文件中的每个 DTD 文件至少创建一个 XSD 文件。 在升级到 PIP 5C4 V01.03.00 的示例中,因为消息格式发生变化, 所以该过程以如何创建 BCG_5C4RegistrationStatusNotification_V01.03.xsd 文件作为示例。 要了解关于 XSD 文件的信息,请参阅关于验证。
要创建 PIP 文档流包的 XSD 文件,请执行以下步骤:
通常,指导原则中的元素与 DTD 文件中的元素定义匹配。 但是,指导原则中可能包含一些元素,它们具有相同的名称,但基数不同。 因为 DTD 在此情况下无法提供基数,所以您需要修改 XSD。 例如,5C4_MG_V01_03_00_RegistrationStatusNotification.htm 指导原则 文件在第 15 行有 ContactInformation 的定义,ContactInformation 有 5 个 子元素,其基数如下:
1 contactName
0..1 EmailAddress
0..1 facsimileNumber
0..1 PhysicalLocation
0..1 telephoneNumber
第 150 行的 ContactInformation 定义有 4 个子元素,基数如下:
1 contactName
1 EmailAddress
0..1 facsimileNumber
1 telephoneNumber
但是,在 XSD 文件中,ContactInformation 的每个子代都有与两个定义都符合的基数:
<xsd:element name="ContactInformation"> <xsd:complexType> <xsd:sequence> <xsd:element ref="contactName"/> <xsd:element maxOccurs="1" minOccurs="0" ref="EmailAddress"/> <xsd:element maxOccurs="1" minOccurs="0" ref="facsimileNumber"/> <xsd:element maxOccurs="1" minOccurs="0" ref="PhysicalLocation"/> <xsd:element maxOccurs="1" minOccurs="0" ref="telephoneNumber"/> </xsd:sequence> </xsd:complexType> </xsd:element>
如果您根据另一版本的包更新 PIP 文档流包,并希望重用另一个版本的 定义,则可以对每个定义执行以下步骤:
<xsd:complexType name="ContactInformation_type7"> <xsd:sequence> <xsd:element name="contactName" type="common_FreeFormText_R"/> <xsd:element name="EmailAddress" type="common_EmailAddres_R" minOccurs="0"/> <xsd:element name="facsimileNumber" type="common_CommunicationsNumber_R" minOccurs="0"/> <xsd:element name="PhysicalLocation" type="PhysicalLocation_type1" minOccurs="0" /> <xsd:element name="telephoneNumber" type="common_CommunicationsNumber_R minOccurs="0" /> </xsd:sequence> </xsd:complexType>
<xsd:include schemaLocation="BCG_ContactInformation_Types.xsd"/>
name="ContactInformation type="ContactInformation_type7"
如果您正在创建 PIP 文档流包或正在升级 PIP 文档流包,但您需要的定义在 其它版本中不存在,则可以对指导原则中元素的每个实例执行以下操作:
<xsd:complexType name="ContactInformation_localType1"> <xsd:sequence> <xsd:element ref="contactName"/> <xsd:element maxOccurs="1" minOccurs="0" ref="EmailAddress"/> <xsd:element maxOccurs="1" minOccurs="0" ref="facsimileNumber"/> <xsd:element maxOccurs="1" minOccurs="0" ref="PhysicalLocation"/> <xsd:element maxOccurs="1" minOccurs="0" ref="telephoneNumber"/> </xsd:sequence> </xsd:complexType>
name="ContactInformation type="ContactInformation_localType1"
修改之前的 productProviderFieldApplicationEngineer 元素
<xsd:element name="productProviderFieldApplicationEngineer"> <xsd:complexType> <xsd:sequence> <xsd:element ref="ContactInformation"/> </xsd:sequence> </xsd:complexType> </xsd:element>
修改后的元素 productProviderFieldApplicationEngineer
<xsd:element name="productProviderFieldApplicationEngineer"> <xsd:complexType> <xsd:sequence> <xsd:element name="ContactInformation" type="ContactInformation_localType1"/> </xsd:sequence> </xsd:complexType> </xsd:element>
因此,在 PIP 5C4 V01.03.00 消息中,GlobalRegistrationComplexityLegelCode 只能有以下值:Above average、Average、Maximum、 Minimum、None 和 Some。
如果您正根据另一版本的包更新 PIP 文档流包,并希望重用其它版本的 一组枚举值,则可以对每组值执行以下操作:
<xsd:simpleType name="_GlobalRegistrationComplexityLevelCode"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Above average"/> <xsd:enumeration value="Average"/> <xsd:enumeration value="Maximum"/> <xsd:enumeration value="Minimum"/> <xsd:enumeration value="None"/> <xsd:enumeration value="Some"/> </xsd:restriction> </xsd:simpleType>
<xsd:include schemaLocation= "BCG_GlobalRegistrationComplexityLevelCode_Types.xsd" />
name="GlobalRegistrationComplexityLevelCode" type="_GlobalRegistrationComplexityLevelCode"
如果您正在创建 PIP 文档流包或正在升级 PIP 文档流包,但您需要的枚举值定义在 其它版本中不存在,则可以对指导原则中包含枚举值的每个元素执行以下操作:
<xsd:simpleType name="GlobalRegistrationComplexityLevelCode_localType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Above average"/> <xsd:enumeration value="Average"/> <xsd:enumeration value="Maximum"/> <xsd:enumeration value="Minimum"/> <xsd:enumeration value="None"/> <xsd:enumeration value="Some"/> </xsd:restriction> </xsd:simpleType>
name="GlobalRegistrationComplexityLevelCode" type="GlobalRegistrationComplexityLevelCode_localType"
修改前的元素 DesignAssemblyInformation
<xsd:element name="DesignAssemblyInformation"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" ref="assemblyComments"/> <xsd:element maxOccurs="1" minOccurs="0" ref="demandCreatorTrackingIdentifier"/> <xsd:element maxOccurs="unbounded" minOccurs="0" ref="DesignPartInformation"/> <xsd:element ref="DesignRegistrationIdentification"/> <xsd:element maxOccurs="1" minOccurs="0" ref="GeographicRegion"/> <xsd:element maxOccurs="1" minOccurs="0" ref="GlobalRegistrationComplexityLevelCode"/> <xsd:element maxOccurs="1" minOccurs="0" ref="GlobalRegistrationInvolvementLevelCode"/> <xsd:element maxOccurs="1" minOccurs="0" ref="RegistrationStatus"/> </xsd:sequence> </xsd:complexType> </xsd:element>
修改后的元素 DesignAssemblyInformation
<xsd:element name="DesignAssemblyInformation"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" ref="assemblyComments"/> <xsd:element maxOccurs="1" minOccurs="0" ref="demandCreatorTrackingIdentifier"/> <xsd:element maxOccurs="unbounded" minOccurs="0" ref="DesignPartInformation"/> <xsd:element ref="DesignRegistrationIdentification"/> <xsd:element maxOccurs="1" minOccurs="0" ref="GeographicRegion"/> <xsd:element maxOccurs="1" minOccurs="0" name="GlobalRegistrationComplexityLevelCode" type="GlobalRegistrationComplexityLevelCode_localType"/> <xsd:element maxOccurs="1" minOccurs="0" ref="GlobalRegistrationInvolvementLevelCode"/> <xsd:element maxOccurs="1" minOccurs="0" ref="RegistrationStatus"/> </xsd:sequence> </xsd:complexType> </xsd:element>
如果您根据另一版本的包更新 PIP 文档流包,并希望重用其它版本的 某个数据实体,则可以对每个集执行以下步骤:
<xsd:simpleType name="_common_DateStamp_R"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{8}Z" /> </xsd:restriction> </xsd:simpleType>
<xsd:include schemaLocation="BCG_common.xsd" />
name="DateStamp" type="_common_DateStamp_R"
如果您正在创建 PIP 文档流包或升级 PIP 文档流包,但您需要的数据实体定义在 其它版本中不存在,则可以对每个数据实体元素执行以下操作:
<xsd:simpleType name="DateStamp_localType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{8}Z" /> </xsd:restriction> </xsd:simpleType>
name="DateStamp" type="DateStamp_localType"
修改前的元素 beginDate
<xsd:element name="beginDate"> <xsd:complexType"> <xsd:sequence> <xsd:element ref="DateStamp"/> </xsd:sequence> </xsd:complexType> </xsd:element>
修改后的元素 beginDate
<xsd:element name="beginDate"> <xsd:complexType"> <xsd:sequence> <xsd:element name="DateStamp" type="DateStamp_localType"/> </xsd:sequence> </xsd:complexType> </xsd:element>
创建 PIP 文档流包的 XSD 文件之后,就可以创建 RNIF 包的 XML 文件 和后端集成包的 XML 文件。例如,可以创建两个分别名为 BCG_RNIFV02.00_5C4V01.03.zip 和 BCG_RNSC1.0_RNIFV02.00_5C4V01.03.zip 的包。以下过程描述如何创建 RNIF 包的 XML 文件:
要更改的信息 | 旧值 | 新值 |
PIP 标识
|
5C4
|
5C4
|
PIP 版本
|
V01.02
|
V01.03
|
不含文件扩展名的请求消息 DTD 文件名
|
5C4_MS_V01_02_
RegistrationStatusNotification
|
5C4_MS_V01_03_
RegistrationStatusNotification
|
不含文件扩展名的确认消息 DTD 文件名(仅用于两个操作的 PIP)
|
N/A
|
N/A
|
不含文件扩展名的请求消息 XSD 文件名
|
BCG_5C4RegistrationStatusNotification_
V01.02
|
BCG_5C4RegistrationStatusNotification_
V01.03
|
不含文件扩展名的确认消息 XSD 文件名(仅用于两个操作 PIP)
|
N/A
|
N/A
|
请求消息的 XSD 文件中的根元素名称
|
Pip5C4RegistrationStatusNotification
|
Pip5C4RegistrationStatusNotification
|
确认消息的 XSD 文件中的根元素名称(仅适用于两个操作 PIP)
|
N/A
|
N/A
|
要更新的信息 | 描述 | 5C4 包中的值 |
活动名
|
在表 3-2 中指定
|
分发注册状态
|
发送方角色名称
|
在表 3-1 中指定
|
产品供应商
|
响应方角色名称
|
在表 3-1 中指定
|
需求创建者
|
请求操作名
|
在表 4-2 中指定
|
注册状态通知
|
确认操作名
|
在表 4-2 中指定(仅用于两个操作 PIP)
|
N/A
|
要更新的信息 | 描述 | 5C4 包中的值 | XML 文件中的元素路径 |
NonRepudiationRequired
|
在表 3-3 中指定
|
N
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationRequired)
ns1:AttributeValue
AttributePickListItem
ATTRVALUEKEY
|
NonRepudiationOfReceipt
|
在表 3-3 中指定
|
N
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 NonRepudiationOfReceipt)
ns1:AttributeValue
AttributePickListItem
ATTRVALUEKEY
|
DigitalSignatureRequired
|
在表 5-1 中指定
|
Y
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 DigitalSignatureRequired)
ns1:AttributeValue
AttributePickListItem
ATTRVALUEKEY
|
TimeToAcknowledge
|
在表 3-3 中指定
|
2
(120 分钟)
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 TimeToAcknowledge)
ns1:AttributeValue
ATTRVALUE
|
TimeToPerform
|
在表 3-3 中指定
|
2
(120 分钟)
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 TimeToPerform)
ns1:AttributeValue
ATTRVALUE
|
RetryCount
|
在表 3-3 中指定
|
3
|
ns1:Package
ns1:Protocol
ns1:Process
ns1:Attribute(它的 ATTRIBUTEKEY 是 RetryCount)
ns1:AttributeValue
ATTRVALUE
|
要创建后端集成包,除了以下的不同之处外,可重复上述过程:
创建 XML 和 XSD 文件后,就可以创建 PIP 文档流包。
要创建 RNIF 包,请执行以下步骤:
要创建后端集成包,可重复上述过程,但是要使用后端集成 XML 文件而不是 RNIF 文件。