This chapter discusses:
Designing batch applications for XML Publisher.
Understanding the XML output.
Comparing the XML output formats.
When you design batch applications and batch versions for JD Edwards EnterpriseOne XML Publisher, consider how you use page headers and page footers.
Do not include page headers and page footers in report templates or batch versions that are designed for the XML Publisher. Page headers and page footers should be included in the XML Publisher template.
Report developers commonly use page headers as both a page header and a level break header. This combination usage of page headers and level break headers does not work well with XML Publisher.
The XML output is generated by running a batch version or a report definition with a batch version. You use the XML output when creating XML Publisher templates with the Microsoft Word Template Builder.
See Oracle XML Publisher Core Components Guide 10.1.3.3
The XML output contains information from the batch version specifications. Some of the information that you should consider when you review your XML output are:
Section tags.
Item tags.
Formatted numbers.
Formatted dates.
Page headers and page footers.
Conditional sections.
Special characters.
Level break sections.
Child sections.
Report properties.
Section tags are determined by the name that is specified in JD Edwards EnterpriseOne Report Design Aid (RDA). The name that you see in the XML output is the same as the name found in the Description field of the Section Properties form.
Because multiple sections in an RDA report template can be named the same, the section tag in the XML output is appended with a section ID. The section ID begins with the letter S to indicate that it is a section from the report. The section ID is assigned by RDA to ensure that each report section is unique. The section ID is retrieved from the report specifications and cannot be modified.
This is an example of the sections that are included in the XML output for a batch version of the Purchase Order Print report:
- <R43500> + <Properties> + <Purchase_Order_Print_S42_Column_Headings Language=""> + <PageHeaders> + <Purchase_Order_Print_S42_Group> </R43500>
The first node of the XML output displays the name of the Purchase Order Print report template, R43500. All other nodes are nested under this report template node:
The first node under the report template name is the Properties node.
The second node is the Column Headings Language node.
This node appears only when the batch version includes columnar sections.
The third node is the PageHeaders node.
The fourth node is a section that groups all associated level break headers and level break footers with the report detail section.
Item tags that you see in the XML output are determined by the data dictionary name of the fields used in the RDA report template. An exception to this rule is that if the data dictionary name has been overridden in RDA, then the override is used as the item tag.
Because multiple data items in an RDA report template can be named the same, the item tag in the XML output is appended with an object ID. The object ID begins with the letters ID to indicate that it is a field from the report. The object ID is assigned by RDA to ensure that each report object is unique. The object ID is retrieved from the report specifications and cannot be modified.
This is an example of an individual section that is included in the XML output for a batch version of the Purchase Order Print report:
- <Purchase_Order_Print_S42_Group> - <On_Ship_To_S45> <PageHeaderNumber1</PageHeaderNumber> <DocumentOrderInvoiceE_ID135>Order Number</DocumentOrderInvoiceE_ID135> <OrderSuffix_ID140>000</OrderSuffix_ID140> <OrderType_ID138>OD</OrderType_ID138> <DocumentOrderInvoiceE_ID136>1</DocumentOrderInvoiceE_ID136> <Order_Revision_Notes_S65/> + <On_Order_Suffix_S58> <Total_Order__ID12>Total Order</Total_Order__ID12> <Order_Extended_Price_ID13>969.10</Order_Extended_Price_ID13> + <Taxes_S49> + <Grand_Total_S50> + <Buyer_S51> </On_Ship_To_S45>
In this XML output example:
The <On_Ship_To_S45> node is a level break header.
The page header number indicates where the data resides in the RDA report.
The <On_Order_Suffix_S58> is also a level break.
The information that resides directly under the <On_Order_Suffix_S58> node is level break footer information.
The level break footer information is at the same level as the level break header information because both level break sections break on the same field.
The <Taxes_S49>, <Grand_Total_S50>, and <Buyer_S51> nodes are all conditional sections that are called by the level break footer.
When the node of a section is expanded, you can view the item tags of the individual records. Each piece of data is enclosed within descriptive item tags that include the object ID.
Many special characters that are used in RDA and included in EnterpriseOne data are replaced in the XML output. For example:
'<' is replaced with “<”.
'>' is replaced with “>”.
'&' is replaced with “&”.
apostrophes are replaced with “&apos”.
quotes are replaced with “"”.
Other special characters that are prohibited, as defined in the XML 1.0 specifications, are replaced with an underscore.
Numbers are formatted in the XML Publisher output using JAVA BigDecimal String format. This formatting consists of an optional sign (“–”) followed by a sequence of decimal digits. These digits can be followed by a fraction and additionally by an exponent, for example, –123456.3455e-3.
Dates are formatted in Canonical format.
Information that is contained in page headers and page footers of RDA reports is grouped together at the top of the XML output. This ensures that the headers and footers do not break up the report data.
Design your reports in RDA without including page headers and page footers. You should design the page headers and page footers in the XML template.
This is an example of the page header information that is included in the XML output for a batch version of the Purchase Order Print report:
- <PageHeaders> - <Page_Header_S43> <PageHeaderNumber>1</PageHeaderNumber> <R43500_ID1>R43500</R43500_ID1> <Variable_000004_ID4>2007-09-20</Variable_000004_ID4> <szCompanyDescription_ALPH_ID17>06969</szCompanyDescription_ALPH_ID17> <Page__ID7>Page</Page__ID7> <Variable_000006_ID6>1</Variable_000006_ID6> <szReportDescription_ALPH_ID18>Purchase Order Print</szReportDescription_ALPH_ID18> </Page_Header_S43>
There are individual page header nodes nested under the PageHeaders node, one for each page of the report. In this example, the PageHeaderNumber is the same as the Variable_000006_ID6. The PageHeaderNumber is the sequential page number generated by the system. The variable page number is the page number printed in the page header of the report.
Conditional sections appear in the XML output as children of the section from which they are called.
This is an example of conditional sections that are included in the XML output for a batch version of the Purchase Order Print report:
- <Purchase_Order_Print_S42_Group> - <On_Ship_To_S45> <PageHeaderNumber1</PageHeaderNumber> <DocumentOrderInvoiceE_ID135>Order Number</DocumentOrderInvoiceE_ID135> <OrderSuffix_ID140>000</OrderSuffix_ID140> <OrderType_ID138>OD</OrderType_ID138> <DocumentOrderInvoiceE_ID136>1</DocumentOrderInvoiceE_ID136> <Order_Revision_Notes_S65/> + <On_Order_Suffix_S58> <Total_Order__ID12>Total Order</Total_Order__ID12> <Order_Extended_Price_ID13>969.10</Order_Extended_Price_ID13> - <Taxes_S49> <PageHeaderNumber1</PageHeaderNumber> <Tax_Group_Summary_ID2>Tax Group Summary</Tax_Group_Summary_ID2> <DescriptionTaxArea_ID3>CA</DescriptionTaxArea_ID3> <Tax_Rate_1_ID4>10.5000</Tax_Rate_1_ID4> <__ID5>%</__ID5> <Taxable_Amount_ID9>969.10</Taxable_Amount_ID9> <Tax_Amount_ID11>101.76</Tax_Amount_ID11> </Taxes_S49> + <Grand_Total_S50> + <Buyer_S51> </On_Ship_To_S45>
The <Taxes_S49> node is a conditional section called by the level break footer section. The <Grand_Total_S50> and <Buyer_S51> nodes are also conditional sections called by the level break footer section.
Level break sections are used in RDA to group large amounts of data into manageable groups. Level break headers typically display a descriptive heading for the group while the level break footer typically displays an aggregate. These level break sections appear in the XML output as children of the section on which they were created.
Child sections appear in the XML output as children of the section from which they are called.
The following report properties are included in the XML output for auditing and informational purposes:
Property |
Description |
Version |
The object name of the submitted batch version. |
Title |
The title of the submitted batch version. |
Machine |
The name of the machine where the batch version was submitted. |
Host |
The name of the machine where the submitted batch version was processed. |
Environment |
The name of the environment where the batch version specifications reside. |
User |
The name of the user that submitted the batch version. |
Role |
The role of the user that submitted the batch version. |
Language |
The language in which the batch version was processed. |
Company |
The name of the company whose data is reported in the submitted batch version. |
Release |
The JD Edwards EnterpriseOne release that was used to process the batch version. |
Date |
The date that the batch version was processed. |
Time |
The time that the batch version was processed. |
This is an example of report properties that are included in the XML output for a batch version of the Purchase Order Print report:
- <Properties> <Version>JENTEST1</Version> <Title>Purchase Order Print</Title> <Machine>JEHOOD-LAP1</Machine> <Host>JEHOOD-LAP1</Host> <Environment>STGAWSC1</Environment> <User>JDE</User> <Role>*ALL</Role> <Company>Oracle - JD Edwards</Company> <OneWorldRelease>E90</OneWorldRelease> <Date>2007-09-20</Date> <Time>12:57:02</Time> </Properties>
There are some differences between the XML output file that is generated for XML Publisher Phase 2 compared to the XML output file generated for XML Publisher Phase 1.
The differences between the Phase 2 and Phase 1 XML output include:
Supported object types
General XML format differences
Properties node
Column headings node
Page headers node
Report details node
Supported Object Types
The following RDA object types that were not supported in XML Publisher Phase 1 are supported in XML Publisher Phase 2:
Report constants
Column headers
System date
System time
Page number
Total pages
Some of the differences that affect the entire XML output include:
Empty tags have been removed.
Hidden fields and sections appear in the output.
Utimes are formatted in canonical format.
Constant text appears in the output.
Conditional sections are displayed as children of the parent section.
Conditional sections were not displayed as children of the parent section in Phase 1, rather, they appeared at the same level as the detail report section.
Due to the differences between the XML output file that is generated for XML Publisher Phase 2 compared to the XML output file generated for XML Publisher Phase 1, Oracle recommends that you create new templates if you are migrating to XML Publisher Phase 2.
See Understanding JD Edwards XML Publisher Phases.
The Properties node of the XML output includes property information regarding the submitted batch version. The Properties node of the XML output for Phase 2 differs from the XML output for Phase 1 in these ways:
Includes the version name as a separate tag.
Includes the host machine name.
Each columnar section of the submitted batch version is preceded with a Column Headings Language node. This node lists all column headings included in the columnar section. The column headings are represented by beginning and ending tags that include the ID assigned to each heading. In between the beginning and ending tags is the column heading as is appears in the batch version.
This section does not exist in the Phase 1 XML output.
The Page Header nodes of the XML output include page information from the submitted batch version. The Page Header nodes of the XML output for Phase 2 differs from the XML output for Phase 1 in these ways:
Includes the page header number.
Includes the report name.
Includes the date that the batch version was submitted.
Includes the page number.
The report detail node of the XML output for Phase 2 differs from the XML output for Phase 1 in these ways:
The report detail node Includes the page header number where the associated data appears.
Conditional sections are nested under the parent section.