Now fax your documents through RightFax server!!
Good news for all EBS BI Publisher enthusiasts! Now you can deliver faxes directly from the BI Publisher Delivery
Manager to any fax destination through RightFax 9.3 or above. To learn more about RightFax you can visit their
website - http://www.captaris.com/rightfax.
Oracle Collections team has implemented BI Publisher - RightFax integration for Strategy Dunning Program. You can find the details of this implementation and patch download option in metalink (patch details at the end).
BI Publisher Delivery Manager can now make use of RightFax XML interface to submit a fax job and to query the
status of the job. These XML requests and responses are transmitted over HTTP/S. RightFax can convert the XML request into FCL (Facsimile Command Language) on the server side. So we do not have to worry about embedding FCL code on client (BI Publisher) side anymore. RightFax supports PDF, Postscript and PCL documents and may also support Microsoft Office documents depending on its Server configuration. The Delivery Manager supports a single fax destination per delivery request; therefore, to send fax to multiple destinations, you will have to submit multiple delivery jobs.
Here are the steps to set up the RightFax Delivery Channel in BI Publisher Delivery Manager
- Create a Delivery Manager instance
- Create a Delivery Request instance
- Add the request properties
- Set your document to the DeliveryRequest instance
- Submit the delivery request
And here is a sample code.....
// create delivery manager instance DeliveryManager dm = new DeliveryManager();
// create a delivery request DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);
// required host information (hostname / IP address / reference name from config file) req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_HOST,"myhost");// required sender information req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_RFUSER,"Administrator");// Optional properties req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_FROM_NAME,"Dave Taylor"); req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_FROM_COMPANY,"ABC, Ltd.");// required destination req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_NUMBER,"555-1111");// Optional properties req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_NAME,"Fred Flintstone"); req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_COMPANY,"Acme, Inc.");// set the document req.setDocument("/document/invoice.pdf");// submit the request req.submit();// close the request req.close();
Did you say what all RightFax Delivery Properties?
Ok, so here goes a long list of delivery properties supported for RightFax delivery channel. It shows the corresponding RightFax XML interface element for submitting a fax job. Here RIGHTFAX_HTTP_HOST, RIGHTFAX_SENDER_RFUSER, RIGHTFAX_FAX_TO_NUMBER are the only required properties, rest are optional.
Delivery Property |
Description |
Rightfax XML |
RIGHTFAX_HTTP_HOST |
Required. |
|
RIGHTFAX_HTTP_PORT |
Optional. |
|
RIGHTFAX_HTTP_REMOTE_DIRECTORY |
Optional. |
|
RIGHTFAX_HTTP_REMOTE_FILENAME |
Optional. |
|
RIGHTFAX_HTTP_AUTHTYPE |
Optional. |
|
RIGHTFAX_HTTP_USERNAME |
Optional. |
|
RIGHTFAX_HTTP_PASSWORD |
Optional. |
|
RIGHTFAX_HTTP_ENCTYPE |
Optional. |
|
RIGHTFAX_HTTP_USE_FULL_URL |
Optional. |
|
RIGHTFAX_HTTP_TIMEOUT |
Optional. |
|
RIGHTFAX_HTTP_PROXY_HOST |
Optional. |
|
RIGHTFAX_HTTP_PROXY_PORT |
Optional. |
|
RIGHTFAX_HTTP_PROXY_AUTHTYPE |
Optional. |
|
RIGHTFAX_HTTP_PROXY_USERNAME |
Optional. |
|
RIGHTFAX_HTTP_PROXY_PASSWORD |
Optional. |
|
RIGHTFAX_SENDER_FROM_NAME |
Optional. |
SENDER/FROM_NAME |
RIGHTFAX_SENDER_EMPID |
Optional. |
SENDER/EMP_ID |
RIGHTFAX_SENDER_FROM_COMPANY |
Optional. |
SENDER/FROM_COMPANY |
RIGHTFAX_SENDER_FROM_DEPARTMENT |
Optional. |
SENDER/FROM_DEPARTMENT |
RIGHTFAX_SENDER_FROM_PHONE |
Optional. |
SENDER/FROM_PHONE |
RIGHTFAX_SENDER_RETURN_EMAIL |
Optional. |
SENDER/RETURN_EMAIL |
RIGHTFAX_SENDER_BILLINFO1 |
Optional. |
SENDER/BILLINFO1 |
RIGHTFAX_SENDER_BILLINFO2 |
Optional. |
SENDER/BILLINFO2 |
RIGHTFAX_SENDER_RFUSER |
Required. |
SENDER/RF_USER |
RIGHTFAX_FAX_TO_NUMBER |
Required. |
DESTINATIONS/FAX/TO_FAXNUM |
RIGHTFAX_FAX_TO_NAME |
Optional. |
DESTINATIONS/FAX/TO_NAME |
RIGHTFAX_FAX_TO_COMPANY |
Optional. |
DESTINATIONS/FAX/TO_COMPANY |
RIGHTFAX_FAX_TO_ALTNUMBER |
Optional. |
DESTINATIONS/FAX/ALT_FAX_ |
RIGHTFAX_FAX_TO_CONTACTNUMBER |
Optional. |
DESTINATIONS/FAX/TO_ |
RIGHTFAX_FAX_COVERSHEET |
Optional. |
DESTINATIONS/FAX/COVERSHEET |
RIGHTFAX_COVERTEXT |
Optional. |
COVERTEXT |
RIGHTFAX_COVERTEXT_TYPE |
Optional. |
COVERTEXT/type |
RIGHTFAX_COVERTEXT_ENCODING |
Optional. |
COVERTEXT/encoding |
RIGHTFAX_CONTENT_TYPE |
Optional. |
Set to Content-Type field |
Note: In addition to the above listed RightFax specific properties, all delivery manager common properties, including BUFFERING_MODE (for document redelivery) and FILTER (for document conversion), are supported.
You want to set the RightFax Server in a configuration file?
I am sure you already know that BI Publisher supports a delivery configuration file to
manage delivery servers, delivery properties and custom delivery channels. Now RightFax
server has been added to this list with server type as 'rightfax'
<server name="myhost" type=”rightfax”>
This server type expects values for Host, port, uri, username, password, authType,
encType, proxyPort, proxyUsername, proxyPassword, proxyAuthType, filter and
filterOutputContentType.
Please check the BI Publisher ‘Administrator’s and Developer’s Guide’ to know more
about the delivery configuration file.
Sample Delivery Configuration file (xdodelivery.cfg) -
<?xml version='1.0' encoding='UTF-8'?>
<config xmlns="http://xmlns.oracle.com/oxp/delivery/config">
<!-- ======================================================== -->
<!-- servers section -->
<!-- List your pre-defined servers here. -->
<!-- ======================================================== -->
<servers>
<server name="myhost" type="rightfax" default="true" >
<host>myrightfax1.companyname.com</host>
<port>80</port>
<uri/>
<username/>
<password/>
<authType/>
<encType/>
<proxyHost/>
<proxyPort/>
<proxyUsername/>
<proxyAuthType/>
<filter/>
<filterOutputContentType/>
</server>
</servers>
<!-- ======================================================== -->
<!-- properties section -->
<!-- List the system properties here. -->
<!-- ======================================================== -->
<properties>
<property name="ds-temp-dir">/tmp</property>
<property name="ds-buffering">true</property>
</properties>
<!-- ======================================================== -->
<!-- channels section -->
<!-- List the custom delivery channels here. -->
<!-- ======================================================== -->
<channels/>
</config>
Can we monitor the Job Status?
When the BI Publisher Delivery Manager submits a job, it receives an XML response from
RightFax server. This response includes the unique id for the fax job, which can be used to
check status of the job by submitting a separate request to RightFax server. However, BI
Publisher Delivery Manager is not using this unique fax job id approach. Instead, we
recommend the standard approach used by all delivery channels to get the job status.
In this approach, after a job is submitted the client program can make ‘asynchronous’
call using delivery manager APIs. You can create your own callback logic by implementing
DeliveryResponseListener interface. You must implement the responseReceived() method.
This method should be called when the delivery request completes. You can pass this
callback when you invoke the submit() method of the DeliveryRequest. This will initiate
the delivery process in the background and the submit() method will immediately return
the control to DeliveryResponseListener to get the delivery status. Sample code follows:
static class MyListener implements DeliveryResponseListener{
public void responseReceived(DeliveryResponse pResponse){
System.out.println("Request done!");
int status = pResponse.getStatus();
System.out.println("Request status id : " + status);
String msg = pResponse.getStatusMessage();
System.out.println("Request status message : " + msg);
// Update the status in database here...
}
}
public static void main(String[] args){
try
{
DeliveryManager dm = new DeliveryManager();
DeliveryRequest req =
dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);
req.setDocument("d:/tmp/test.ps");
req.submit(new MyListener());
}
catch (Exception e)
{
e.printStackTrace();
}
}
In asynchronous mode, server status is checked once per minute by default but you can control this interval by setting ASYNCH_CHECK_INTERVAL delivery property before submitting the request.
Check the status codes returned by the Delivery Manager and its corresponding status codes/error codes on the RightFax server.
Delivery Manager Status/Error Code |
RightFax Status/Error Code |
STATUS_CLIENT_IN_PROCESS |
|
STATUS_FAILED_BUSY |
|
STATUS_FAILED_CLIENT_ERROR |
-1 (failure to load XML DOM – possibly XML |
STATUS_FAILED_INVALID_RECIPIENT |
|
STATUS_FAILED_INVALID_REQUEST |
|
STATUS_FAILED_INVALID_USER |
|
STATUS_FAILED_IO_ERROR |
|
STATUS_FAILED_SERVER_ERROR |
-3 (failed to connect to RightFax Server) -2 (failed to load XSL into DOM) 0 (submit/query failure) 9 (Too many errors) 10 (Duplicate) 11 (Error) 12 (Needs attention) 13 (Needs attention) Any other status code |
STATUS_FAILED_TIMEOUT |
|
STATUS_NOT_DELIVERED |
So I believe you are all set to try the document delivery to a RightFax Server.. Happy faxing !! Please note down the patch numbers -
The patch number for EBS 11i (for XML Publisher 5.6.3) is -
7665602 - RIGHT FAX CHANNEL SUPPORT WITH PROVISION FOR DELIVERY STATUS AT LATER TIME
The patch number for EBS 11i (for Collections) is -
8435600 - UNABLE TO SEE FAILURE REASON IN THE CONCURRENT PROGRAM LOG FILE