6 Replies Latest reply: Nov 5, 2012 5:47 AM by SinfoMichele RSS

    BI Publisher Integration

      Hi, I have a problem with BI Publisher.
      I'm using BI Publisher version and PLM fo Process
      I have used a xml file to generate a template in BI Publisher (I clicked on the "Print" button in Trade Spec and I selected "xml" output).
      I followed all the documentation (I set the config files, created a new template on BI Publisher using the xml here above as sample data).
      When I clicked on "Print" button (in Trade Spec) and I selected the "BI Publisher" output the system generated the same pdf as the template.
      Unfortunately no PLM data is shown.

      Does someone have any idea?

        • 1. Re: BI Publisher Integration
          Ron M-Oracle
          What does it mean the it generated the same pdf as the template? If you mean that the data in the pdf includes the same data as the xml provided originally to build the template, I think that you have to make sure you have defined the placeholders correctly in the BI Publisher template. Though BI Publisher might show the "Deafult" data (which came in your original XML) if it can't handle the input.

          However, part of the printing process on our side is a part that takes the XML and translforms it using XSL-FO. In the printSettings, this is the "StandardTransformation" print pipe within the PrintManager.
          Have you removed that step? Can you provide the PrintManager xml settings you are using?
          • 2. Re: BI Publisher Integration
            this is my configuration:
            <PrintManager id="BIPublisher10_1_3_4" outputExtension="pdf">
            <Pipe id="StandardXml" sequence="1" objectURL="Class:Xeno.Prodika.Printing.PrintPipes.XmlPrintPipeFactory,PrintService"/>
            <Pipe id="StandardTransformation" sequence="2" objectURL="Class:Xeno.Prodika.Printing.PrintPipes.XDocServiceTransformationPrintPipeFactory,PrintService"/>
            <Pipe id="BIPublisherFORender" sequence="2" objectURL="Class:Xeno.Prodika.Printing.PrintPipes.OracleBIPublisher.v10_1_3_4.BIPublisherFORenderPrintPipeFactory,PrintService">
            <add key="EndPoint" value="@@VAR:Prodika.Print.BIPublisherIntegration.EndPoint@@"/>                              
            <add key="ReportPath" value="/BIPublisher/test3/test3.xdo" comments="Overridable on the print template by specifying reportPath attribute"/>
            <add key="ReportTemplate" value="Template1" comments="Overridable on the print template by specifying reportTemplate attribute"/>
            <add key="ReportFormat" value="PDF" comments="Overridable on the print template by specifying reportFormat attribute"/>
            <PrintConfigurations configChildKey="id">
            <PrintConfiguration configChildKey="id" id="2147" model="TradeSpecificationPrintObject" printconfigurl="Class:Xeno.Prodika.PrintObjects.GSMPrintCommon.TradeSpecPrintConfig,PrintObjects$PrintObjects/GSMPrintCommon|lblType">
            <PrintTemplate id="BIPublisherTest" library="XSL_FO_LIBRARY" sequence="1" report="GSM$xlate$.xsl" printmanager="BIPublisher10_1_3_4" reportPath="/BIPublisher/test3/test3.xdo" reportTemplate="Template1"/>
            <PrintTemplate id="Default" sequence="3" setting="basic" library="XSL_FO_LIBRARY" report="GSM$xlate$.xsl"/>
            <PrintTemplate id="Xml" sequence="4" setting="basic" library="XSL_FO_LIBRARY" report="GSM$xlate$.xsl" printmanager="XML" guardCondition="Class:Xeno.Prodika.Security.DummyGuardCondition,ProdikaLib$false"/>
            <PrintTemplate id="FO" sequence="5" setting="basic" library="XSL_FO_LIBRARY" report="GSM$xlate$.xsl" printmanager="FO" guardCondition="Class:Xeno.Prodika.Security.DummyGuardCondition,ProdikaLib$false"/>

            When I generate pdf directly from BI Publisher, the system shows the correct Document (template + data).
            When I generate pdf from PLM (I selected "BIPublisherTest" and I clicked on the Print button), the system shows a pdf with only template (without data).

            This is the first passage of my sample xml data:
            <ImplicitMasterSpecs />
            <SpecTypeName>Trade Specification</SpecTypeName><SpecNum>5077539</SpecNum><IssueNum>001</IssueNum><SpecName>BBQ Beef and Vegetable Dinner - 11 oz</SpecName><SpecShortName>BBQ Beef and Vegetable Dinner - 11 oz</SpecShortName><pkid>2147a1182a75-71b3-4350-bc2a-9bc64e08fd4f</pkid><EffectiveDate>03-Oct-2004</EffectiveDate><OriginatorFirstName>Kenneth</OriginatorFirstName><OriginatorLastName>Crain</OriginatorLastName><ReasonForChange/><Supercedes>New Item</Supercedes><Status>Approved</Status><StatusInstructions>Approved - This specification has been approved.</StatusInstructions><LastEdit>19-Jan-2012</LastEdit>
            <InactiveDate />
            <Category>Meat, Poultry and Game</Category>
            <SubCategory>Meat, Poultry and Game - Prepared and Processed</SubCategory>
            <Group>Meat, Poultry and Game - Prepared and Processed (Frozen)</Group>
            <ClassificationCode />

            Would you please let me know what I am missing?
            • 3. Re: BI Publisher Integration
              Ron M-Oracle
              Try removing the StandardTransformation print pipe from the printmanager, since that is transforming the XML to XSL-FO, which is used for PDFs, and which your template is not expecting.

              <Pipe id="StandardTransformation" sequence="2" objectURL="Class:Xeno.Prodika.Printing.PrintPipes.XDocServiceTransformationPrintPipeFactory,PrintService"/>

              restart IIS, and try again
              • 4. Re: BI Publisher Integration
                Hi Ron,
                I removed the line and restarted iis but now I have this error when I clik on Print button:

                Stack Trace:

                [NullReferenceException: Object reference not set to an instance of an object.]
                Xeno.Prodika.Printing.PrintManagerBuilder.Create(String ManagerID) +190
                Xeno.Prodika.Printing.PrintService.GetPrintManager(IPrintTemplate printTemplate) +29
                Xeno.Web.UI.Printing.StandardPrintPage.Print(Object printObject, String configId, String templateId, IPrintOptions printOptions, String filename) +55
                prodika.frmPrintTradeSpec.Page_PreRender(Object sender, EventArgs e) +584
                System.EventHandler.Invoke(Object sender, EventArgs e) +0
                System.Web.UI.Control.OnPreRender(EventArgs e) +8679510
                Xeno.Web.UI.Printing.StandardPrintPage.OnPreRender(EventArgs e) +12
                System.Web.UI.Control.PreRenderRecursiveInternal() +80
                System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

                • 5. Re: BI Publisher Integration
                  Ron M-Oracle
                  OK, one alternate option to try is to revert that change, and then instead of using the xsl specified in your print template "report="GSM$xlate$.xsl", create a new, simple pass-through xsl file that just passes all the xml through, and reference that.

                  For instance:
                  create a file called XmlPassthrough.xsl:
                  <?xml version='1.0'?>
                  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
                       <xsl:template match="/">
                            <xsl:copy-of select="/" />

                  Put it in the Reports\FO folder
                  Change the PrintTemplate attribute 'report' to use that new xsl file, like report="XmlPassthrough.xsl"

                  See if that does it.
                  • 6. Re: BI Publisher Integration
                    Now it works correctly. Thanks.