About Me

My photo
Oracle Apps - Techno Functional consultant
Showing posts with label XMLP. Show all posts
Showing posts with label XMLP. Show all posts

Tuesday, August 6

How To Create/Install (Register) a New Font Using XML Publisher

1. Introduction
Introduced in XML Publisher 5.6.0 is a new tab named Administration. This replaces the xdo.cfg configuration file and its goal is to simply the administration of XML Publisher as part of an Oracle E-Business Suite environment.

2. How to create a new font in XML Publisher?
Fonts can be uploaded directly via the Administration pages. They are then stored in the database instead of on the file system.
The Administration tab has 3 more sub tabs:
  1. Configuration
  2. Font Mappings and Font Files
  3. Currencies
The creation of a font requires only a few steps to be performed:
  1. Log in as XML Publisher Administrator
  2. Navigate to Administration --> Font Files --> Create Font File
  3. Available fields are Font Name and File
    --> for Font Name, choose any descriptive name
    --> file will browse your PC to locate the font file
  4. Navigate to Font Mappings -->Create Font Mapping Set
  5. Mapping name is the name you will give to a set of fonts.
  6. Mapping code is the internal name you will give to this set
  7. Type: 'PDF Form' for PDF templates. 'FO to PDF' for all other template types.
  8. Create Font Mapping (this allows you to add fonts to a set)
  9. Font Family is the exact same name you see in MS Word under Font. If you don't use the same name the font will not be picked up at runtime.
  10. Style and weight must also match how you use the font in the RTF or PDF layout template. Normal and Normal are good defaults.
  11. Language and Territory should remain blank (NULL) unless you have a strong business reason, as these fields can cause the font not to be picked up at runtime.
  12. Navigate to Configuration General -> FO Processing -->Font Mapping Set. This can also be done at Data Definition and Template level, via the corresponding Edit Configuration button on those pages. The hierarchy is Site-> Data Def à Template.
  13. Select your new mapping set.
  14. Make sure the font is not referenced under File àProperties à Custom in the RTF template file.
  15. Under General, set a Temporary Directory. The font will be stored under a /fonts directory at runtime, initially created the first time the font is used.
  16. Upload a template that uses your special font and test using preview or by submitting a concurrent request.
For more information, kindly refer to the XML Publisher documentation accessibly via the References section of this document.

Note: It is still possible to define custom fonts via the xdo.cfg file though that does require for the font files to physically exist on the server.

Friday, June 28

Extended Function Support in RTF Templates

SQL Statement or XSL Expression
Usage
Description
2+3
<?xdofx:2+3?>
Addition
2-3
<?xdofx:2-3?>
Subtraction
2*3
<?xdofx:2*3?>
Multiplication
2/3
<?xdofx:2/3?>
Division
2**3
<?xdofx:2**3?>
Exponential
3||2
<?xdofx:3||2?>
Concatenation
lpad('aaa',10,'.')
<?xdofx:lpad('aaa',10,'.')?>
The lpad function pads the left side of a string with a specific set of characters. The syntax for the lpad function is:
lpad(string1,padded_length,[pad_string])
string1 is the string to pad characters to (the left-hand side).
padded_length is the number of characters to return.
pad_string is the string that will be padded to the left-hand side of string1 .
rpad('aaa',10,'.')
<?xdofx:rpad('aaa',10,'.')?>
The rpad function pads the right side of a string with a specific set of characters.
The syntax for the rpad function is:
rpad(string1,padded_length,[pad_string]).
string1 is the string to pad characters to (the right-hand side).
padded_length is the number of characters to return.
pad_string is the string that will be padded to the right-hand side of string1
decode('xxx','bbb','ccc','xxx','ddd')
<?xdofx:decode('xxx','bbb','ccc','xxx','ddd')?>
The decode function has the functionality of an IF-THEN-ELSE statement. The syntax for the decode function is:
decode(expression, search, result [,search, result]...[, default])
expression is the value to compare.
search is the value that is compared against expression.
result is the value returned, if expression is equal to search.
default is returned if no matches are found.
Instr('abcabcabc','a',2)
<?xdofx:Instr('abcabcabc','a',2)?>
The instr function returns the location of a substring in a string. The syntax for the instr function is:
instr(string1,string2,[start_position],[nth_appearance])
string1 is the string to search.
string2 is the substring to search for in string1.
start_position is the position in string1 where the search will start. The first position in the string is 1. If the start_position is negative, the function counts back start_position number of characters from the end of string1 and then searches towards the beginning of string1.
nth appearance is the nth appearance of string2.
substr('abcdefg',2,3)
<?xdofx:substr('abcdefg',2,3)?>
The substr function allows you to extract a substring from a string. The syntax for the substr function is:
substr(string, start_position, [length])
string is the source string.
start_position is the position for extraction. The first position in the string is always 1.
length is the number of characters to extract.
replace(name,'John','Jon')
<?xdofx:replace(name,'John','Jon')?>
The replace function replaces a sequence of characters in a string with another set of characters. The syntax for the replace function is:
replace(string1,string_to_replace,[replacement_string])
string1 is the string to replace a sequence of characters with another set of characters.
string_to_replace is the string that will be searched for in string1.
replacement_string is optional. All occurrences of string_to_replace will be replaced with replacement_string in string1.
to_number('12345')
<?xdofx:to_number('12345')?>
Function to_number converts char, a value of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype containing a number in the format specified by the optional format model fmt, to a value of NUMBER datatype.
to_char(12345)
<?xdofx:to_char('12345')?>
Use the TO_CHAR function to translate a value of NUMBER datatype to VARCHAR2 datatype.
to_date
<?xdofx:to_date ( char [, fmt [, 'nlsparam']] )
TO_DATE converts char of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype to a value of DATE datatype. The fmt is a date format specifying the format of char. If you omit fmt, then char must be in the default date format. If fmt is 'J', for Julian, then char must be an integer.
sysdate()
<?xdofx:sysdate()?>
SYSDATE returns the current date and time. The datatype of the returned value is DATE. The function requires no arguments.
minimum
<?xdoxslt:minimum(ELEMENT_NAME)?>
Returns the minimum value of the element in the set.
maximum
<?xdoxslt:maximum(ELEMENT_NAME)?>
Returns the maximum value of the element in the set.
chr
<?xdofx:chr(n)?>
CHR returns the character having the binary equivalent to n in either the database character set or the national character set.
ceil
<?xdofx:ceil(n)?>
CEIL returns smallest integer greater than or equal to n.
floor
<?xdofx:floor(n)?>
FLOOR returns largest integer equal to or less than n.
round
<?xdofx:round ( number [, integer ] )?>
ROUND returns number rounded to integer places right of the decimal point. If integer is omitted, then number is rounded to 0 places. integer can be negative to round off digits left of the decimal point. integer must be an integer.
lower
<?xdofx:lower (char)?>
LOWER returns char, with all letters lowercase. char can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The return value is the same datatype as char.
upper
<?xdofx:upper(char)?>
UPPER returns char, with all letters uppercase. char can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The return value is the same datatype as char.
length
<?xdofx:length(char)?>
The "length" function returns the length of char. LENGTH calculates length using characters as defined by the input character set.
greatest
<?xdofx:greatest ( expr [, expr]... )?>
GREATEST returns the greatest of the list of exprs. All exprs after the first are implicitly converted to the datatype of the first expr before the comparison.
least
<?xdofx:least ( expr [, expr]... )?>
LEAST returns the least of the list of exprs. All exprs after the first are implicitly converted to the datatype of the first expr before the comparison.


The following table shows supported combination functions:
SQL Statement
Usage
(2+3/4-6*7)/8
<?xdofx:(2+3/4-6*7)/8?>
lpad(substr('1234567890',5,3),10,'^')
<?xdofx:lpad(substr('1234567890',5,3),10,'^')?>
decode('a','b','c','d','e','1')||instr('321',1,1)
<?xdofx:decode('a','b','c','d','e','1')||instr('321',1,1)?>

XSL Equivalents
The following table lists the BI Publisher simplified syntax with the XSL equivalents.
Supported XSL Elements
Description
BI Publisher Syntax
<xsl:value-of select= "name">
Placeholder syntax
<?name?>
<xsl:apply-templates select="name">
Applies a template rule to the current element's child nodes.
<?apply:name?>
<xsl:copy-of select="name">
Creates a copy of the current node.
<?copy-of:name?>
<xsl:call-template name="name">
Calls a named template to be inserted into/applied to the current template.
<?call:name?>
<xsl:sort select="name">
Sorts a group of data based on an element in the dataset.
<?sort:name?>
<xsl:for-each select="name">
Loops through the rows of data of a group, used to generate tabular output.
<?for-each:name?>
<xsl:choose>
Used in conjunction with when and otherwise to express multiple conditional tests.
<?choose?>
<xsl:when test="exp">
Used in conjunction with choose and otherwise to express multiple conditional tests
<?when:expression?>
<xsl:otherwise>
Used in conjunction with choose and when to express multiple conditional tests
<?otherwise?>
<xsl:if test="exp">
Used for conditional formatting.
<?if:expression?>
<xsl:template name="name">
Template declaration
<?template:name?>
<xsl:variable name="name">
Local or global variable declaration
<?variable:name?>
<xsl:import href="url">
Import the contents of one stylesheet into another
<?import:url?>
<xsl:include href="url">
Include one stylesheet in another
<?include:url?>
<xsl:stylesheet xmlns:x="url">
Define the root element of a stylesheet
<?namespace:x=url?>

Using FO Elements
You can use most FO elements in an RTF template inside the Microsoft Word form fields. The following FO elements have been extended for use with BI Publisher RTF templates. The BI Publisher syntax can be used with either RTF template method.
The full list of FO elements supported by BI Publisher can be found in the Appendix: Supported XSL-FO Elements.
FO Element
BI Publisher Syntax
<fo:page-number-citation ref-id="id">
<?fo:page-number-citation:id?>
<fo:page-number>
<?fo:page-number?>
<fo:ANY NAME WITHOUT ATTRIBUTE>
<?fo:ANY NAME WITHOUT ATTRIBUTE?>