Running PxTAL
Px Bundle Support
Bundle Compatibility
TAL supports Servigistics InService 6.5 and 7.1 bundles. The version is identified based on publishing information present in the bundle.
|
You must load either 6.5 or 7.1 bundles. You cannot load different types.
|
Bundle Limitations
Following are some limitations for bundle data:
• Do not use the “#” character in filenames that are in Servigistics InService bundles.
If a filename contains this character, the transform and load process will fail with the following error:
[ERROR,ProcessActionHandler] Failed node: fetchApplicableFilesForPartsList within flow:getRegistryFromIMANSubFlow_PD , reason #path to a partslist item(The system cannot find the file specified) java.io.FileNotFoundException:#path to a partslist item(The system cannot find the file specified)
• Do not use the vertical bar ( | ) character in APEX property values unless you are using it to represent a logical OR.
Px Bundle Contents
A Px bundle consists of the folders and files shown in the following table:
Name
|
File/Folder
|
Description
|
com.ptc.arbortext.windchill.partlist.PartList
|
Folder
|
Contains part lists as referenced from *-DMPmap.xml. The folder name is usually the type name based on which data is created in SIM/SP.
|
com.ptc.ptcnet.DynamicDocument
|
Folder
|
Contains dynamic documents as referenced from *-DMPmap.xml. Typically, the contents is specific to DITA XML, General XML, PDF, or images. The folder name is usually the type name based on which data is created in SIM/SP.
|
reps
|
Folder
|
Contains associated images for *_Hierarchy.xml.
|
*_Hierarchy.xml
|
File
|
Product Hierarchy file providing the hierarchical information of the product structure.
|
*_Hierarchy.xml.meta
|
File
|
Product Hierarchy metadata file
|
*-DMPmap.xml
|
File
|
Information Structure (IS) or Publication Structure (PS) file, which usually provides a table of contents. Data is also present in the hierarchical structure.
|
*-DMPmap.xml.meta
|
File
|
IS or PS companion metadata file
|
OptionsDefinition.xml
|
File
|
List of Options and Choices definition along with its association to the context (PH or IS).
|
partThumbnails.zip
|
File
|
Images associated with parts.
|
ProductInstances.xml
|
File
|
Product Instance file providing the serial number to context mapping. This file contains multiple values in a single file.
|
publishInfo.xml
|
File
|
Metadata information related to the published bundle. It typically indicates bundle ID, published date, locale, bundle sequence, and a flag indicating whether this is a full or incremental bundle.
The file contains a parameter Bundle-Source to identify the bundle owner. If this property does not exist, TAL defaults to using the property orgName from the Rootobjects of the bundle source.
Whether a bundle is full or incremental is determined by the following properties:
• JobSpecification/@increment
• JobSpecification/@incremental
A full bundle will have values as increment="0" or incremental="false". An incremental bundle will have values as increment="1" or incremental="true".
The language of the bundle is identified by the Language parameter under the JobSpecification element:
<JobSpecification ………………………….. <Parameter token="com.ptc.arbortext. wvs/Language"> <Value>ja</Value> </Parameter> <Parameter token="Language"> <Value>ja</Value> </Parameter> ………………. </JobSpecification>
|
ReadyForTAL
|
File
|
Zero-byte sentinel file indicating the bundle is ready for TAL. If this file is not present, then the bundle will not be processed.
|
referencedObjects.xml
|
File
|
Indicates various objects referenced from different objects.
In a typical IS bundle, this contains the URI of the context (as a target attribute) to which it is connected through relatedContext.xml. The details about the URI and related objects is also in this file, as is the PRODUCT details related to the ServiceInformation attribute.
|
referencedParts.xml
|
File
|
Part specific file providing the details of all parts referenced from the parts list.
|
relatedContexts.xml
|
File
|
Indicates the context to which the bundle (typically IS or PS) is associated.
|
relatedParts.xml
|
File
|
Provides information on part relations, such as Alternate, Supersession, and Cross Reference.
|
translation.xml
|
File
|
Provides the localized values of the localized attributes used in different business objects such as PH, IS, PS, PL, IEXML, PDFM, Graphics and Part.
|
excludedObjects.xml
|
File
|
Provides the URIs of content to be gets deleted from previous published content.
|
ModelItemPartObjects.xml
|
File
|
Generic IE artifact used to create links from a source IEXML to zero or more related IEXML objects.
|
contentMap.xml
|
File
|
Mapping file providing URI to physical file mappings. Also holds values for checksum, meta checksum, and collected date used to decide whether data needs to be loaded.
|
Information Structures and Publication Structures
The *-DMPMap.xml file represents the IS or PS file. The components of these entities are described in this section. The terminology used comes from the language used in SIM/SP. For example, IsRoot is the wt.part.WTPart soft type ending in …|com.ptc.sis.IsRoot.
Information structures contain the following nodes:
• Nodes <topicref>
◦ IsRoot
◦ IsGroup
◦ ContentRef (that is Content Holder)
• Usage Links from parent node to child
• Service Effectivity targeting any of the above nodes
• Selected representations of these nodes
The structure might reference Graphics, XML Documents, or Parts lists. It also might get metadata from these referenced objects.
Publication structures contain the following nodes:
• Nodes (including the generated hook) <topicref>
◦ PsRoot
◦ PsSection
◦ PsToc
◦ PsIndex
◦ ContentRef
• Usage Links from parent node to child
• Service Effectivity targeting any of the above nodes
The structure might reference XML Documents or Parts lists. It also might get metadata from these referenced objects.
A typical node from one of these structures would look like the following:
<topicref id="..."
href="uri of node"
copy-to="relative path of Information Element (IE)"
format="dita|pdf|xml|…"
...>
In an incremental bundle with no changes to the Information Elements, the copy-to attribute is not present.
Information Elements
All information elements are comprising of the main content and its metadata. The following different types of content are supported in Px bundles.
Partslist Components
• Partlist itself
• Image GDD (graphic dynamic document) or its post published GDD
◦ Primary content,
◦ Its representations
◦ Its attachments
• PartListItem
◦ Part
• Usage Links from parent node to child
• Service Effectivity targeting any of the above
XML Document Components
• Primary DD (dynamic document)
◦ Its metadata
◦ Its primary content
• Referenced Image
◦ Primary content
◦ Its representations
◦ Its attachments
• XML content resolved during the publishing process
◦ Xinclude
◦ DITA topic reference
◦ DITA conref, conkeyref, and so forth
Cross references to external XML Documents are not components of the entity.
Graphic Content
• Primary GDD (graphic dynamic document)
◦ Its metadata
◦ Its primary content
◦ Its representations
◦ Its attachments
Part
• Part
◦ Metadata (master and instance)
◦ Related parts
◦ Service effectivity that targets the part
◦ Thumbnails
Currently parts are extracted as well as published, but publishing does not consider it an entity, but rather a component of a parts list. Publishing currently includes related parts.
Service Effectivity Markup
Service effectivity is not an entity, but is information associated with many entities. It represents the filtering information on the different IE objects. It appears as metadata inside any object that it targets. For example:
<Metadata ...
<Property token="ServiceEffectivity">
<Value>(OR (AND (PRODUCT '0000016602') (INSTANCE 'SUV_WE_EV4_SN001'
'SUV_WE_EV4_SN002')) (AND (PRODUCT '0000016610') (INSTANCE
'SUV_WE_EE_SN002' 'SUV_WE_EE_SN001')) (AND (PRODUCT '0000016611')
(INSTANCE 'SUV_WF_EV6T_SN001' 'SUV_WF_EV6T_SN002')) (AND (PRODUCT
'0000016617') (INSTANCE )))</Value>
</Property>
...
</Metadata>
Bundle Types
In Servigistics InService there are two types of Px bundles. The type of bundle is identified based on the publishInfo.xml file.
The following types are supported:
• PH bundle
This type of bundle carries the information about the unified Product Hierarchy and related Product Instance. Usually this bundle has the following types of data:
◦ Product Hierarchy (PH) (*Hierarchy.xml)
◦ Product Instances (PI) (ProductInstances.xml)
◦ Options and Choices (OptionsDefinitions.xml)
◦ PublishInfo.xml
• IS or PS bundle
These types of bundles carry the information about the Information Structure (IS) or Publication Structure (PS). Usually this bundle has the following types of data:
◦ relatedContext.xml
◦ IS
◦ Information Elements (IEXML, PDFM, Graphics, Parts List) – Usually connected through IS
◦ Generic Information Elements
◦ Parts associated with parts lists
◦ Part Relations
◦ Part Related documents
◦ Options and Choices
◦ Symptom Tree
◦ PublishInfo.xml
• Non-Product bundle
This bundle is like the IS bundle, but without the relatedContext.xml file. This indicates the bundle is not associated with any product context. Usually these types of bundles are associated with a category that is defined in the publishInfo.xml file.
Identifying the Context and Category of a Bundle
Context information indicates the product context to which an item is associated to. In Servigistics InService the context is used to store, filter, and locate various items in the system. Usually an IS or PS bundle is associated with a context. Note that a PH bundle is not associated to any context, as this type of bundle is itself the context. In Servigistics InService PH bundles are loaded into every segment
In a Px bundle, there is a relatedContext.xml file that is used to identify the context to which the bundle is associated. Note that a bundle can refer to a single or multiple contexts. Following is part of the relatedContext.xml file. The src attribute refers to the IS or PS. The target attribute refers to context information.
For example:
The category of a bundle is in the PublishInfo.xml file. For example:
Bundle Sentinel Files
Sentinel files are special zero byte files created in the bundle to signal different states of processing. The following sentinel files might be present:
• ReadyForTAL
This file is generated by the bundle owner. Presence of this file means the bundle is generated completely and can be processed by TAL.
• PrepTAL
This file is created when multiple bundles are loaded at once with the transform and load task.
• TransformInProgress_Collection or TransformInProgress_BundleID
The name of this file is determined by whether you have enabled content sharing. It is named TransformInProgress_Collection when content sharing is not enabled. It is named TransformInProgress_BundleID when content sharing is enabled. The file is created when the transform is in progress.
• TransformFailed_Collection or TransformFailed_BundleID
The name of this file is determined by whether you have enabled content sharing. It is named TransformFailed_Collection when content sharing is not enabled. It is named TransformFailed_BundleID when content sharing is enabled. This file is created by the transform task when it begins its execution. The file is deleted if the transform task is successful.
• TransformCompleted_Collection or TransformCompleted_BundleID
The name of this file is determined by whether you have enabled content sharing. It is named TransformCompleted_Collection when content sharing is not enabled. It is named TransformCompleted_BundleID when content sharing is enabled. This file is created by the transform task when it begins its execution. This file is created on the successful completion of the transform task for a collection.
• tal_completed
This file is created when the transform task is done.
• tal_failed
This file is created when the transform task fails.
Excluding Objects From a Bundle
If there are objects that you want to specifically exclude from a bundle, then you need to include the excludedObjects.xml file in the bundle. In this file is a series of Object tags where you provide the id and uri of the objects you do not want to load with the bundle.
Following is an example of this file:
<?xml version="1.0" encoding="UTF-8"?>
<ExcludedObjects>
<Object id="PartListItem_8153223"
uri="x-wc://com.ptc.arbortext.windchill.partlist.PartListItem:8153223"/>
<Object id="PartListItem_8153222"
uri="x-wc://com.ptc.arbortext.windchill.partlist.PartListItem:8153222"/>
<Object id="WTPartMaster_8118901"
uri="x-wc://f5e0179d8f894049:wt.part.WTPartMaster:0069313461"/>
<Object id="WTPartMaster_8118955"
uri="x-wc://134e815ca9117606:wt.part.WTPartMaster:0069313463"/>
<Object id="WTPartMaster_8118947"
uri="x-wc://ce2ace730699a033:wt.part.WTPartMaster:0069313462"/>
<Object id="EPMDocumentMaster_8143009"
uri="x-wc://file=0000020874.png"/>
</ExcludedObjects>