FAQs on PO Output for Communication Report

By | April 19, 2015 | 12,761 views | Category: Purchasing XMLP

Here is a summary of what I have learnt of PO Output for Communication report on my recent engagement.

What is PO Output for Communication?

PO Output for Communication usually called as PO Print Report is one of the most important and standard report in Purchasing to communicate Purchase order information to supplier through an email in the format of PDF or text.

How to run PO Output for Communication report?

  1. This reports gets triggered as soon as a PO is approved. An email is sent to the supplier with PO information as an attachment and a copy of email is sent to the email address configured in the profile option “PO: Secondary Email address” as a backup.
  2. We can also view this report output by opening an Approved Purchase Order and then navigating to “Inquire –> View Document” through menu option.
  3. We can also run “PO Output for Communication” manually as a concurrent request.

How does PO Output for Communication report work?

PO Output for Communication is a Java concurrent program which is triggered through a PO Approval workflow. This java program generates XML data whose XSD(XML Schema Definition) is defined as XML Publisher Data definition and output layout is defined in XSL-FO format as a template in XML Publisher.

Data Definition Name: Standard Purchase Order Data Source
Template Name: Standard Purchase Order Stylesheet

PO Approval workflow uses standard package “PO_COMMUNICATION_PVT.POXMLGEN” to generate XML Data. The XML data generated contains all the columns of the below SQL views


How to create a custom layout for PO Output for Communication report?

To customize the layout of this report one must make a copy of seeded XSLFO stylesheet and modify it. But modifying XSLFO is not that easy as many of us dont know XSLFO markup language. The other way is to create traditional rtf layout. Below are the steps to apply rtf layout for this report.

  1. Navigate to Purchasing Super user responsibility –> Setup –> Organizations –> Purchasing Options
    under Document Control section set value for “PO Output Format” field as PDF
  2. 1.PO Output for Communication - Purchasing Options

  3. Create a custom rtf layout “XX Test PO Print” with data source as “Standard Purchase Order Data Source”
    Note: Application of template should be “Purchasing” not the custom application
  4. 3.PO Output for Communication -New Template

  5. Navigate to Purchasing Super user responsibility –> Setup –> Purchasing –> Document Types
    Find for document type “Purchase Order Standard” and update it with “XX Test PO Print” rtf layout as “Document Type Layout”.
  6. 4.PO Output for Communication - Document Types

    2.PO Output for Communication - Document Types

    5.PO Output for Communication - Document Types

    6.PO Output for Communication - Document Types

    How to see XML tags generated by PO Output for Communication report?

    Usually we can see data in XML format in diagnostics form but for this report “View XML” option will be disabled.
    7.PO Output for Communication - View XML Disabled

    To get the XML data we need to run the report with parameter “Test” value as “Debug” which generates a log file with XML Data along with some debug information. We need to save log file and remove content apart from XML Data and save the file with .xml as extension which can be used for rtf layout development.

    PO should not be in “Approved” status to generate XML data

    8.PO Output for Communication - Parameters

    Note: To reflect the changes made on rtf layout, we need to run the report on the newly approved PO. Or to run the report for already approved PO run the concurrent program “PO Output for Communication” with ‘Regenerate Document‘ parameter as ‘Yes’.

    How to add additional columns to PO Output for Communication Report?

    As a seeded functionality we can add only the fields which are generated by seeded package “PO_COMMUNICATION_PVT.POXMLGEN” which lists all the columns of below SQL Views:


    To add any additional field, we need to customize “PO_COMMUNICATION_PVT.POXMLGEN” package as well as POAPPR workflow, but this is very herculean task which involves lot of effort and it is not upward compatible, means the customizations may go away on applying patches.

    The easiest way is to populate the additional values in attributes of underlying tables of above views, so that we can easily reference them in rtf layout without any customization.

    Query to find if the Purchase Order information is sent to Supplier through email or not

     SELECT segment1,
           polc.displayed_field po_status,
      FROM po_headers_all poh, wf_notifications wn,po_lookup_codes polc
     WHERE     1=1
         AND polc.lookup_type(+)= 'AUTHORIZATION STATUS'
            AND poh.authorization_status = polc.lookup_code(+)
           AND wn.user_key(+) = poh.segment1
           AND wn.item_key(+) = poh.wf_item_key    
           AND supplier_notif_method = 'EMAIL'
           AND NVL (edi_processed_flag, 'N') <> 'Y'
           AND NVL(xml_flag,'N') <> 'Y'
           AND message_name(+) = 'AME_EMAIL_PO'
           AND  displayed_field='Approved'     
    ORDER BY poh.po_header_id DESC;
    1. If mail_status is MAIL, it means the email delivery is pending for workflow mailer to send the notification.
    2. If mail_status is SENT, its means mailer has sent email
    3. If mail_status is NULL & status is NULL or OPEN, its means that no need to send email as notification preference of user is “Don’t send email” or the Workflow mailer is not Up and Running

    Note: XML tag names are changed in R12 when compared with 11i

WOW! Did you like this post? We'll send more interesting posts like FAQs on PO Output for Communication Report to you!
Enter your Email Address:
  • Pingback: Printing Dynamic Signatures on PO Output for Communication Report | OracleAppsDNA()

  • Lohitha Sannathi

    I have a requirement of adding Preparer of the Requisition in PO
    Communication Layout Template .I request you please help me in Achieving

    • Hello Lohitha,

      Preparer name is readily available in PO_HEADERS_XML view, with fields “DOCUMENT_BUYER_FIRST_NAME” and “DOCUMENT_BUYER_LAST_NAME”.

      You can access these fields in template by using below tags


    • Preparer name is readily available in PO_HEADERS_XML view, with fields “DOCUMENT_BUYER_FIRST_NAME” and “DOCUMENT_BUYER_LAST_NAME”.

      You can access these fields in template by using below path



      • Lohitha Sannathi

        I dont need buyer details , All i need is Requisition Preparer details which is not available in PO_HEADERS_XML


  • kp

    Hello Shailender
    Thanks for the info. You mentioned that when we update the Template, we can test that only on a New PO. Is there any other way to reflect the new changes on an already approved PO?

    This Rule applies for any custom field OR even if we add a standard field already there in the XML tag generated.

    please advise.


    • Hello KP,

      To run the report on already approved PO run the concurrent program “PO Output for Communication” with ‘Regenerate Document’ parameter as ‘Yes’


  • Srinivasa Gowtham

    Hello Shailender,
    Good Information. Is there a way I can have different PO Print templates for Suppliers. For eg, Supplier ‘A’ should get Customized PO Print Template and Supplier ‘B’ should get the Standard PO Print Template?


    • Hi Srinivas,

      As far as I know, there is no option to provide different templates for different suppliers.


  • Chanakya Kolapalli

    Super article Shailender, thank you!

  • Krishna Jagannath

    HI Shailender,

    If i run the PO output for communication for different languages manually , will the report is emailed to Suppliers.


    • Hi Krishna,

      Email functionality is irrespective of language.


  • ankur jain

    Hi Shailender,
    Very Helpful document, need to know, Is it possible to print PO report at supplier site level that can be in English but OU level of same supplier is set to Chinese language ?
    Where to define that language preference for supplier?


  • Vivek

    how to populate attribute for the seeded table to populate additional fields.
    Please share the steps.

    • You can use user hook PO_CUSTOM_XMLGEN_PKG to add any custom fields to the xml payload.

  • Surbhi Jain

    Thank You. This is really helpful.