监管传输委派接口
监管传输委派接口可用于自定义 Windchill 与监管部门的交互,并实施要提交给监管部门的特定传输逻辑和协议。可以自定义与监管部门进行通信所需使用的传输方法。也可以自定义向监管部门传输所需的初始化处理。监管传输委派接口的类名称为 RegulatoryTransmissionDelegateInterface。对于实施 RegulatoryTransmissionDelegateInterface 类的每个类,都会在该类的方法服务器启动过程中调用 initialize() 方法。
AbstractTransmissionDelegate 类会检查从 getTransmissionPayloadCategory() API 返回的有效载荷类别,并使用此有效载荷类别来确定有效载荷使用的是主要内容还是与此有效载荷类别关联的监管内容。transmit() API 的预设 ContentWriterTransmissionDelegate 类实现会将 getPayloadStream(RegulatorySubmission regulatorySubmission, Logger transmissionLogger) API 返回的内容写入基于文件或基于 Azure 的位置。
范围、适用性或假设
• 假定您已掌握 Java 类和概念 (例如类扩展) 的一般知识
• 假定您已掌握用于注册服务类的 xconf 机制的一般知识
先决条件
要应用此最佳做法,需要了解以下内容:
• Java 类扩展
• Xconfmanager
解决方案元素
下一张表格介绍各种解决方案元素。
元素
|
类型
|
说明
|
void initialize()
|
API
|
用于改写传输方法所需的任何初始化的方法。
|
boolean transmit(RegulatorySubmission regulatorySubmission)
|
API
|
用于改写代码以将信息传输至监管部门的方法。
|
getPayloadStream(RegulatorySubmission regulatorySubmission, Logger transmissionLogger)
|
API
|
用于返回要传输至监管部门的有效载荷的方法。
|
默认行为
默认配置会注册一个名为 SimulateTransmissionDelegate 的类,用于将 RegulatoryTransmissionDelegateInterface 作为默认委派实施。该委派可用于在开发过程中仿真传输操作。在生产中,应为每种监管提交类型 (RPS、UDI、AER 和 ER) 注册自定义传输委派,以启用传输功能。SimulateTransmissionDelegate 不执行初始化功能。它会在传输方法中记录错误消息,以显示条目信息和现有监管提交有效载荷内容。该消息还表明正在调用 SimulateTransmissionDelegate 类。
默认委派被定义为 REGMSTR.service.properties.xconf 文件中 SimulateTransmissionDelegate 类的 xconf 条目:
<Service name="com.ptc.qualitymanagement.regmstr.impl.RegulatoryTransmissionDelegateInterface">
<Option requestor="null" serviceClass="com.ptc.qualitymanagement.regmstr.impl.SimulateTransmissionDelegate"
selector="default" cardinality="duplicate" />
</Service>
发送至监管部门的实际内容可以在
监管提交处理器接口上提供的
getTransmissionPayloadCategory() API 中进行配置。默认实施会发送 AER、ER 和 UDI 监管提交有效载荷的监管内容,以及 RPS 监管提交有效载荷的主要内容。
创建自定义类
要自定义传输功能,需创建一个 Java 类来扩展 RegulatoryTransmissionDelegateInterface 类。改写 initialize() 和 transmit(RegulatorySubmission regulatorySubmission) 方法,并提供自定义代码以初始化用于将内容传输给监管部门的传输功能。
以下示例显示为 AdverseEventRegulatorySubmission 注册的自定义委派 CustomTransmissionDelegate 的 xconfiguration 条目:
<Service name="com.ptc.qualitymanagement.regmstr.impl.RegulatoryTransmissionDelegateInterface">
<Option requestor="null" serviceClass="com.ptc.qualitymanagement.regmstr.impl.CustomTransmissionDelegate"
selector="com.ptc.qualitymanagement.regmstr.AdverseEventRegulatorySubmission" cardinality="duplicate" />
</Service>
如果子类型不存在服务类,则会检查子类型的父类型,直到找到服务类为止。如果未找到服务类,则使用默认 SimulateTransmissionDelegate 类。
有关用于调用委派和执行传输的监管提交自定义区域的详情,请参阅
开发提交处理器。