Well, If you work on any Oracle Cloud finance project, Check ( Cheque if you speak queen’s English) Printing will be one of the most crucial tasks in the project. If you have developed any report, check printing is more of a simple minded job which requires more efforts in alignment of the fields. Except one tricky part: Overflow. To handle the overflow condition either you can take the route of code or you can do check printing set up in the system.
So what is overflow? If you have ever received a refund from a company or had been paid by one, chances are that you would have received a check with remittance ( why are they paying you) info on it. If you had observed, this check is not of the size of regular checks which we get in check books. Rather it is a special paper with bottom part containing the regular check and upper part having remittance info. Now consider a scenario where a check is issued to a vendor to pay multiple invoices. Of course, this page has a finite length and can contain only so many of invoice information in top section. If the number of invoices exceed the limit, we will need another check to print the remittance info. In this case first check must be marked as VOID ( so that it is not misused by anyone) and subsequent check will be used to make a payment.
So what is the tricky part: Since check ( portion of the paper which will be sent to bank for payment) has a predefined position on the paper, number of invoices must not shift it up or down. And in case of overflow, we must mark the check as VOID pragmatically.
Since you will be developing an RTF template, following posts can be helpful:
RTF- Looping Finite Number Of Times
RTF Number Formatting With Examples
RTF Date Formatting With Example
Options available:
- Find out with hit and trial the number of lines your check can take. Obviously it will depend on the font you choose to print the invoice info along with layout of the check which will differ bank to bank. Then keep counting the lines till you reach the threshold and mark the check void. Continue on next page.Keep repeating the steps till you reach the check which can be printed as normal check.
- Set up your system to mark the checks void when limit is reached.
Lets discuss the second option because first method anyway is more of dumb work.
Check Printing Set up:
- Find out how many lines can the check take.
- Now every check will correspond to the account which will be used to pay the money. This account needs to be edited for number of lines you want to print on a check. Navigation is
- Go to Set Up and Maintenance. Query the task “Manage Bank Accounts”. Query the bank account which will be used for payments. Scroll down to bottom. Open the document which you want to control ( Unless set up was done by a creative person, it’s name must have word “Check” in it).
- Now set the field “Number of Lines per Remittance Stub” to number of lines you want to print on the check.
So what does this set up do? If this value is not set, Oracle will try to print all the invoices on same check ( remember Oracle does not know how long your check paper is!!). Check screenshot below. Oracle tried to print all 4 invoices on same check. ( Yes, I chose only 4 invoices to be paid)
But once this option is set up, same payment will be broken in multiple checks. Only one of the check in payment will not be void. Since I set the value to 3, my first payment will have 3 invoices but they will be marked as overflow while second payment will have 1 invoice and will have the amount same as sum of all the 4 invoices.
So Oracle split the payment into 2. Using the status of the payment, we can programmatically mark it as void. No need to keep a counter to see if check has to be marked VOID.
This payment has 1 invoice and amount same as sum of all 4 invoices.
So it brings us to our second question: how to pin down the check at the bottom of the page at designated place. After all, our check data should not shift up or down based on the lines in remittance information. So here is the simple trick:
Create 2 tables one above another. Upper table will be used for remittance info. Lower one will be used to print the check properly. Now select upper table –> right click –> Row Tab –> Check “Specify Height” checkbox. Fill the height (You will have to see how many lines do you want your upper table to have. This obviously will depend on the font and size you choose). Make “Row Height Is:” option as “Exactly”. Now format your lower table for your requirements. As height of lower table will always remain same for check of a particular bank. so you dont have to do trial and error here. But fix the height of this table too. and you are all set with your template. Upload it in Oracle Fusion Instance and if other set ups are fine, your checks will print as expected. And one more thing, borders of both the tables unless really required.
Happy check printing. Hopefully your client, vendors and bank will be happy. If any question, do let me know. Who knows I might have stumbled on that problem already.
Disclaimer: This method has been tested till release 13 of Fusion finance. Though I don’t see it failing unless Oracle changes the payment XML structure it generates.
Related posts:
Check Printing Set Up in Oracle Fusion
How To Fetch (Query) The Payment Details In Fusion
Payment Process Request Query in Fusion
RTF- Looping Finite Number Of Times
RTF Number Formatting With Examples
RTF Date Formatting With Example
Feedback:
Hope the article helped you. If it did, please rate the post. In case it didn’t, do leave a comment to let us know what did we miss.
Reference:
support.oracle.com
Hi Mohit,
Thanks for the info. Our client has requirement like they have two trays one for pre printed cheque stock and another normal white paper, so actual cheque should be printed on cheque stock and remaining remittance details should be on normal white paper. Is it achievable in Oracle? How to handle this. Please do let me know if you have any idea.
Thanks.
Hi Ganesan,
I would highly doubt if it can be done in Fusion. But nonetheless raise an SR for an official confirmation. Reason: check printing is a single job which will take the XML and your template will format it. So at best you can create 2 pages in same template. One to print the check info and other to print the remittance details. But even if you have this type of PDF available, no printer in my knowledge can split the job in trays ( printer can use the second tray after paper is consumed in first, but can’t switch the trays for same job).
Now this brings a question to me: is it the requirement or is it the structure of the check stock that it can accommodate only the check info. If it is check stock problem, I’ll suggest you check with the back once. If it is a requirement, try to push back.
And if the client doesn’t budge, you can send the XML to a sftp folder which your middleware can keep pinging. Once a file is found, you can use the schedule web service to fire 2 reports, having destination as same printer but different trays. Once both the reports are printed, manual intervention will be required to keep the check and the remittance in same envelop. It’s a matter of time that wrong remittance is sent to the vendor.
In short, try to convince the client to use correct check stock and print the remittance and check on same paper. I know it costs more but will be much more efficient.
That’s the best I can think of.
You are correct Mohit, but in the current existing legacy system, it picking from two different tray and printing. So they are expecting the same behaviour in Fusion too. Anyway we have raised an SR, will post you the outcome.