Dear @KIMKIMANDREW
Based on our inputs, the following is my thoughts.
- Change the conditions to being mutually exclusive of each other. In this case Rule 1 should be for SITE CODE equals ( say A), and Rule 2 Should be for Site Code Not Equals ( to A).
- Set Logical Printer Id = HARD_COPY . I assume there is a physical printer named as HARD_COPY, installed on the a specific machine to receive these prints. There will be a necessity to configure a print agent , to frequently check if any job is being sent to the Logical Printer, and to forward this to the printer , on that server/system, with the same name called HARD_COPY. The details of the config needed are in IFS technical documentation for reference. https://wit.ifsworld.com/f1docs/apps9/ -
Regards
Vivek
Thanks for the reply Vivek
Unfortunately, that would result in output going to EITHER connect OR HARD_COPY
I want an output to BOTH
You could do this with some custom code and using the PDF_REPORT_CREATED event to print a report out to a different printer. (I use a similar solution to reprint an operational report using different Crystal Layout and also email out the PDFs at the same time)
https://community.ifs.com/technology-infrastructure-cloud-integration-dev-tools-50/automate-purchase-order-pdf-email-590
https://community.ifs.com/technology-infrastructure-cloud-integration-dev-tools-50/batch-print-work-instructions-for-shop-orders-ifs9-286 - See last post
Or you could use PDF_REPORT_CREATED to handle the output to file instead of using Route to connect - here I have some code which is triggered when an invoice is printed to save a PDF copy to file.
declare
pdf_file utl_file.file_type;
Stor_buf_ raw(32000);
pdf_blob blob;
pdf_blob_len integer;
vstart number := 1;
addmax binary_integer := 32000;
result_key_ number;
x number;
l_filename_ varchar2(100);
ora_dir_ varchar2(1000) :='INVOICE';
invoice_no_ varchar2(2000);
customer_po_no_ varchar2(2000);
customer_no_ varchar2(2000);
begin
select pdf into pdf_blob from ifsapp.pdf_archive_tab a where a.id = ifsapp.pdf_archive_api.Get_Id(&RESULT_KEY,&PRINT_JOB_ID);
customer_no_ := REGEXP_SUBSTR('&NOTES', '\Customer No: (e^,]+)', 1,1,NULL,1);
invoice_no_ := REGEXP_SUBSTR('&NOTES', '\Invoice No: (c^,]+)', 1,1,NULL,1);
customer_po_no_ := ifsapp.customer_order_api.get_customer_po_no(REGEXP_SUBSTR('&NOTES', '\Order No: (e^,]+)', 1,1,NULL,1));
pdf_blob_len := dbms_lob.getlength(pdf_blob);
-- Open the destination files.
l_filename_ := '#DB_SID#' || ' - ' || invoice_no_ ||' - '|| replace(customer_po_no_,'/','') ||'.pdf';
pdf_file := utl_file.fopen(ora_dir_, l_filename_, 'wb', 32764);
vstart := 1;
-- Save blob length
x := pdf_blob_len;
-- If small enough for a single write
if pdf_blob_len < 32760 then
utl_file.put_raw(pdf_file, pdf_blob);
utl_file.fflush(pdf_file);
else
-- Doesn't fit, have to write it in pieces
vstart := 1;
while vstart < pdf_blob_len and addmax > 0 loop
dbms_lob.read(pdf_blob, addmax, vstart, Stor_buf_);
utl_file.put_raw(pdf_file, Stor_buf_);
utl_file.fflush(pdf_file);
-- Set the start position for the next cut
vstart := vstart + addmax;
-- Set the end position if less than 32000 bytes
x := x - addmax;
if x < 32000 then
addmax := x;
end if;
end loop;
end if;
-- Close the files.
utl_file.fclose(pdf_file);
end;
Note: I used the code found in this thread: https://community.ifs.com/people-human-capital-management-payroll-38/document-attachments-1806