Tuesday Feb 26, 2013

E-Business Suite 12 - XML Publisher enabled reports

With some help from the EBS folks, I recently re-ran a report on the latest EBS environment that stores the seeded content that we ship to customers. The document here (sorry,I had to zip it), lists the reports and their publisher templates. The vast majority are still based on an Oracle Reports extract rather than a publisher extract. I can not say that 100% of the reports have a Publisher template but its close. Hopefully it'll be a useful reference.

For more information on the reports check the specific products' documentation.

Thursday Nov 29, 2012

Spring Cleaning

I recently got a shiny new laptop; moving my shiz from old to new, was not the nightmare it used to be. I have gotten into the habit of using a second hard drive in the media bay where the CDROM normally sits. That drive contains my life's work with BIP. I can pull it out and plug it into another machine very easily. I have been sorting through some old directories and files, archiving some, sharing others with colleagues.

For instance, a little dated but if you were looking for a list of Publisher reports available in EBS R12.1, here it is. Im trying to track down a more recent R12 instance and will re-post the document.

I also found another gem; its a little out there in terms of usefulness but Im sharing it none the less. You can embed, locally or remotely reference SVG graphics (in XML format) and bring the images into the BIP outputs. Template and sample data here.

A nice set of templates showing page number control and page suppression - they will need some explanation, so I'll save them for another post.

The list goes on but I'll save them for later. Back to the clean up!

Thursday Sep 13, 2012

Dynamic Bursting ... no really!

If any of you have seen me or my colleagues present BI Publisher to you then we have hopefully mentioned 'bursting.' You may have even seen a demo where we talk about being able to take a batch of data, say invoices. Then split them by some criteria, say customer id; format them with a template; generate the output and then deliver the documents to the recipients with a click. We and especially I, always say this can be completely dynamic! By this I mean, that you could store customer preferences in a database. What layout would each customer like; what output format they would like and how they would like the document delivered. We (I) talk a good talk, but typically don't do the walk in a demo. We hard code everything in the bursting query or bursting control file to get the concept across. But no more peeps! I have finally put together a dynamic bursting demo! Its been minutes in the making but its been tough to find those minutes! Read on ...

It's nothing amazing in terms of making the burst dynamic. I created a CUSTOMER_PREFS table with some simple UI in an APEX application so that I can maintain their requirements. In EBS you have descriptive flexfields that could do the same thing or probably even 'contact' fields to store most of the info.

Here's my table structure:

Name                           Type
------------------------------ -------- 
CUSTOMER_ID                    NUMBER(6)
TEMPLATE_TYPE                  VARCHAR2(20)
TEMPLATE_NAME                  VARCHAR2(120)
OUTPUT_FORMAT                  VARCHAR2(20)
DELIVERY_CHANNEL               VARCHAR2(50)
EMAIL                          VARCHAR2(255)
FAX                            VARCHAR2(20)
ATTACH                         VARCHAR2(20)
FILE_LOC                       VARCHAR2(255)

Simple enough right? Just need CUSTOMER_ID as the key for the bursting engine to join it to the customer data at burst time. I have not covered the full delivery options, just email, fax and file location. Remember, its a demo people :0) However the principal is exactly the same for each delivery type. They each have a set of attributes that need to be provided and you will need to handle that in your bursting query. On a side note, in EBS, you use a bursting control file, you can apply the same principals that I'm laying out here you just need to get the customer bursting info into the XML data stream so that you can refer to it in the control file using XPATH expressions.

Next, we need to look up what attributes or parameters are required for each delivery method. that can be found in the documentation here.

 Now we know the combinations of parameters and delivery methods we can construct the query using a series a decode statements:

select distinct cp.customer_id "KEY",
     cp.template_name TEMPLATE,
     cp.template_type TEMPLATE_FORMAT,
     'en-US' LOCALE,
     cp.output_format OUTPUT_FORMAT,
     'false' SAVE_FORMAT,
     cp.delivery_channel DEL_CHANNEL,
     decode(cp.delivery_channel,'FILE', cp.file_loc 
      , 'EMAIL', cp.email
      , 'FAX', cp.fax) PARAMETER1,
     decode(cp.delivery_channel,'FILE', c.cust_last_name||'_orders.pdf'
      ,'EMAIL','cc@BIPublisher.com'
      ,'FAX', 'faxserver.com') PARAMETER2,
     decode(cp.delivery_channel,'FILE',NULL
      ,'EMAIL','customer_service@bipublisher.com'
      ,'FAX', null) PARAMETER3,
     decode(cp.delivery_channel,'FILE',NULL
      ,'EMAIL','Your current orders'
      ,'FAX',NULL)    PARAMETER4,
     decode(cp.delivery_channel,'FILE',NULL
      ,'EMAIL','Please find attached a copy of your current orders with BI Publisher, Inc'
      ,'FAX',NULL)  PARAMETER5,
     decode(cp.delivery_channel,'FILE',NULL
      ,'EMAIL','false'
      ,'FAX',NULL) PARAMETER6,
     decode(cp.delivery_channel,'FILE',NULL
      ,'EMAIL','reply@bipublisher.com'
      ,'FAX',NULL) PARAMETER7
from cust_prefs cp, 
customers c,
orders_view ov
where cp.customer_id = c.customer_id
and cp.customer_id = ov.customer_id
order by  cp.customer_id

Pretty straightforward, just need to test, test, test, the query and ensure it's bringing back the correct data based on each customers preferences. Notice the NULL values for parameters that are not relevant for a given delivery channel.

You should end up with bursting control data that the bursting engine can use:

 Now, your users can run the burst and documents will be formatted, generated and delivered based on the customer prefs.

If you're interested in the example, I have used the sample OE schema data for the base report. The report files and CUST_PREFS table are zipped up here. The zip contains the data model (.xdmz), the report and templates (.xdoz) and the sql scripts to create and load data to the CUST_PREFS table.  Once you load the report into the catalog, you'll need to create the OE data connection and point the data model at it. You'll probably need to re-point the report to the data model too.

Happy Bursting!

Thursday May 03, 2012

Proxy Images in EBS

Gareth Roberts, founder of Virtuate, a consulting outfit based in New Zealand, came up with a doh! moment for me this week. He has been working with Publisher and trying to get images into his reports that are sitting behind a proxy server. This is all inside E Business Suite so no means to use the JVM proxy settings when the concurrent manager starts up. The support folks found the solution that I had completely forgotten about ... I have been away from EBS too long :(

When the concurrent manager (CM) starts a java based job (concurrent program) such as a Publisher one. It fires up a new JVM instance for it. In their wisdom the CM development folks left an 'options' field on the concurrent program definition where you can add JVM start up parameters.

So to allow Publisher to reach the proxied images adding the following to the options field:

-Dhttp.proxyHost=<proxyhost> -Dhttp.proxyPort=<proxyport>

did the trick. Why a Doh! moment? Because we also used the same field when we knew a report was going to be BIG and wanted to increase the memory heap available to that particular report at runtime i.e. -Xmx, -Xmn, etc. You can catch Gareth over on his blog waxing lyrical about all things EBS.

Pieter from support pointed out that if the application requires a proxy server then it can be done at a more global level, that is via the context file using these CP context variables:

AFJSMARG="%s_afjsmarg%"
AFJCPARG="%s_afjcparg%"

[vispb12@pbreugel4 ~]$ grep s_afjsmarg $CONTEXT_FILE
            <AFJSMARG oa_var="s_afjsmarg" osd="Linux">-server -Xmx384m -XX:NewRatio=2 -XX:+UseSerialGC -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc</AFJSMARG>
[vispb12@pbreugel4 ~]$ grep s_afjcparg $CONTEXT_FILE
            <AFJCPARG oa_var="s_afjcparg" osd="Linux">-client</AFJCPARG>

More on that approach here - 


Wednesday Feb 01, 2012

Get thee to University!

Friends of BIP, STR Software have put together a great web based resource 'BIP University'

Focused on  the E Business Suite flavor and their own integrations with BIP under EBS R12; its a great resource and well worth a few clicks and a read. Check it out here - http://www.bipuniversity.com/

Friday Aug 19, 2011

BI Publisher and WebDAV ... done!

A suitable sub title for this post might be, 'Tim, taking a tiny step forward after several days of misery is now a happy camper.' Isn't it amazing in the world of software and development how:

1. What looks to be the simplest thing in the world can trip you up, kick you in the googlies while you're down and generally be a bit of a meany and 

2. Once you have beaten said bully into submission you feel so glad; you stand at your desk and smile a very self congratulatory smile (even cheer, I did) that no one else around you understands. Especially your dog, who is sitting faithfully at your feet and interprets this exuberant display as the signal that he is going to get to go outside and play ball. Sorry, Bandit, I got a blog post to write dude! But I digress ...

By the way, if you are interested, that's Bandit on the left, quite mad of course. Digby, the bear chasing jail bird, center and the fluff puff, fatty cakes on the right, is Hazel. What you can not see is my wife dangling a juicy red steak out of picture to get all three of them to pay attention for just an 1/8 of a second. It's a dogs life in the Dexter household I can tell you!

To the meat of this post and the reason for my misery followed by elation, setting up BIP to send documents to Oracle Universal Content Manager (UCM) using webdav in particular. I should state at this point that here is some documentation on how to set up 'webdav' however its generic. I know Leslie (doc person) will be the first to admit, its probably not enough. I also know that the meat of this post will make it into the official documentation. I shared my success with Leslie this afternoon, she at least understood my happiness and did not want to go out and play ball. At least I don't think she did?
Update:
Having read this back, I would like to publicly apologise to Leslie for intimating that she enjoys going outside and playing ball and any connotations that may have given rise to in your head dear reader!

Of course, it's actually quite simple to set up and my happiness is tinged slightly with a feeling of stupidity. I'm sure even my 10 year nephew could have worked it out in minutes, maybe my brain is finally giving up on me. I take comfort in the fact that the setup, in my  humble opinion lacks a field. Looking at the setup page, I know its small:

There are very few fields to fill:

  • Server Name
  • Host
  • Port
  • Username
  • Password
  • Authentication Type - this needs to be set to 'Basic' for UCM, so I am assured.

Simple right? Thats what I thought too. In fact it is simple, it's knowing what you need to put into said fields to get BIP to talk to UCM is the key.

I have been working with some customers who are using UCM 11.1.1.4 so Im going to base my instructions on 11.1.1.4 but the basics are going to be the same for whatever version you are using. Firstly, you need to know the webdav URI for the server. This is what tripped me up for the longest time. Scouring the intertubes I got to a small post from Oracle's own Kevin Smith stating:

The format for the WebDAV URL has changed in 11g. It is now

   http://server:16200/_dav/cs/idcplg/webdav/

If you are using OHS in front of UCM it will be

   http://server/_dav/cs/idcplg/webdav/

and you will have to add _dav location to themod_wl_ohs.conf file

   <Location /_dav>
   .
   .
   .
   </Location>

This moved me forward a little. I had the server name and the port and that all important, webdav string for my 11g server, '_dav/cs/idcplg/webdav/' For those of you wondering what OHS is, its Oracle HTTP Server, yeah I had to go look that up too! After conversing with Kevin and Kyle (another great blogger) I found that the 16200 port was a bit of a red herring. If you use the default install of UCM, its actually running on port 7001. With that nugget I could move further forward. Now just take a look at the delivery page for a webdav channel at runtime:

Again a bit small, sorry, the fields this time are:

  • Web Folder Server
  • Remote Directory
  • Remote Filename
  • Username
  • Password

Well, looking at my UCM instance and the folders I have, you could reasonably expect to be able to use 'WebCenterSpace-Root/bipublisher' as the remote folder field value, right? Wrong! you also need the '_dav/cs/idcplg/webdav/' string too aaand a leading and trailing slash. So to get my content to by bipublisher folder I need:

 /_dav/cs/idcplg/webdav/WebCenterSpace-Root/bipublisher/

as my remote folder entry. If you're wondering, yes, I am working on some WebCenter-BIP integration at the moment too.

So, yes, your users are going to need to remember to put that 'prefix' string in every time. Hence my observation that we need another field in the server config page. Once you understand how BIP puts the URL string together it all becomes clear:

http://+server+:+port+/remote_folder/+remote_filename in my case
http://owcvm03:7001/ /_dav/cs/idcplg/webdav/WebCenterSpace-Root/bipublisher/1.pdf

UCM is not alone, Sharepoint and other webdav servers also have their own 'prefix' strings. I'll be logging that enhancement on Monday! For Sharepoint customers, some brave soul has already worked out what you need to get BIP posting docs - http://obieegurus.blogspot.com/2009/07/bi-publisher-sharepoint-integration.html

Now I had the correct remote folder string, all was well with the world. I can push content in, as long as the folder was either public or accessible by the user you specify in the username/password fields. Which gets me back to the set up page, whats the username/password there for? That's something Im still playing with and will update this post with results as I find out. But you got the basics, right?

For the file name, of course, you do not necessarily want to be fixed. I have tested all of the dynamic naming support documented here and it all works. The millisecond option that looks like an uppercase 'I' is actually a lower case 'L', go figure.

This solution has been tested with 11.1.1.5 and 10.1.3.4.1.

An Update: As Barb asked in the comments, can this be applied to EBS? Not out of the box but you can use the delivery APIs to send the document via webdav via virtual printer channel attached to the concurrent request. More on a series of virtual channel entries start here.

Dropping docs into any document repository is all well and good. I had a warm fuzzy glow for all of 30seconds when I got this working. However, whats the use of a document in a repository without any meta data to describe it? BIP can not do that right now, at least not out of the box. That particular nut is being cracked and I'll post once I have more info.
For now, I'm off to play with the dogs, Bandit, bring that ball back!


Thursday Jul 07, 2011

Start BI Publisher Enterprise Server for your E-Business Suite Data!

[image%255B90%255D.png]

BI Publisher has always supported the EBS (Oracle E-Business Suite) security as one of the security model options. However, when it comes to the EBS data level security there was no straight forward way to support it before. And this has prevented many folks from moving to BI Publisher Enterprise Server for the EBS reporting even when we know that BI Publisher Enterprise Server would provide a great deal of benefits that come with it such as Data Model Editor, Layout Editor, Interactive View, just to name a few. So, we added the EBS data level security support with the latest release of 11.1.1.5 to help our EBS customers to move to BI Publisher Enterprise Server and take advantage of such benefits. I created a quick video demo for this new feature, if you are interested check the following video.

If you prefer reading or like to know more detail please continue.

What is the EBS Role Based Data Security?

If you are familiar with EBS you probably know the data level security comes with the responsibility and org_id combination. Each responsibility is associated with an org_id and the user selects a responsibility before running a report. And many of the EBS database views, which typically many of the EBS reports query against, use the org_id to filter the data. Therefore, based on your selection of the responsibility you will get a different set of the data for a single report. And of course this means that another user with a different responsibility would see a different set of the data from the one you would see.

image

And that’s exactly what we did with BI Publisher Enterprise Server with the release of 11.1.1.5. Now the user can select one of the responsibilities that are assigned to the user at the login time or from the My Account profile setting. Once the user select it BI Publisher automatically takes care of that by setting an application context passing the org_id when it opens a EBS database connection for the user.

How to Configure?

There is no extra configuration to enable the Role Based Data Security at all. Once you have integrated your BI Publisher Enterprise Server with your EBS by selecting ‘Oracle E-Business Suite’ as the security model and upload the EBS application dbc file, then BI Publisher will take care of all the security related stuff from there based on the user’s selection of the responsibility!

image

How It Works?

Right after you login to BI Publisher Enterprise Server with your EBS user id and password, you will be asked to select one of the responsibilities assigned to you. Once you select one then it’s all set. Any following database query will have the application context with the org_id that is associated with your responsibility. 1. Login to BI Publisher Enterprise Server with EBS user id and password.

image

2. When you login you’ll be asked to select one of the responsibilities you have. And BI Publisher will use this information to support the EBS role based security.

image

If you want to change the responsibility after you have logged in then you can go to ‘My Account’ dialog by clicking your username at the right hand side top and select one of the responsibilities listed under ‘Group’ tab.

image

Here is a sample report ‘Customer Open Balance Report’, which I have migrated from the EBS instance by using the BI Upgrade Assistant Utility and added some report layouts. The following screenshot shows when I select a responsibility ‘Receivables Vision Germany’.

image

When I change the responsibility to ‘Receivables Vision France’ in the My Account dialog box, now I get a different set of the data.

image

The above example is based on the RTF template that I have downloaded from the EBS instance, which is one of the out-of-box report layout templates that come with EBS R12, and uploaded to this report. Now, because I’m in BI Publisher Enterprise Server I can use the Layout Editor, which is the pure web browser based report design tool, so I created a similar layout with the Layout Editor. Here is the one.

image

And, one step further, since I can now use the Interactive capability of BI Publisher Enterprise Server why not create another layout that takes full advantage of that ! And here is the one.

image

This sample layout actually shows the Role Based Data Security much more obvious. The above example is when I select ‘Receivables Vision Germany’ where you can see the Country list shows ‘DE’ and ‘US’. The below example is when I select ‘Receivables Vision France where you can see the Country list is showing ‘FR’ and other components in the report showing a different set of data compares to the above. 

image

Start BI Publisher Enterprise Server for your EBS data!

With the new EBS Role Based Data Security support this is the best time to start moving your Oracle E-Business Suite reporting to BI Publisher Enterprise Server to take advantage of all the great features that come with the Bi Publisher Enterprise Server. It’s not just that it offers better usability and rich functionality over the embedded version inside the EBS and it allows you to extract data from many other different data sources and combine and aggregate, but also it enables you to deliver the next generation operational reporting that satisfies both pixel perfect customer facing requirements and interactive analytical reporting requirements to gain much greater insights from your operational/transactional data. Happy Operational Reporting 2.0! If you have any feedback to share please contact me directly at ‘kanichiro.nishida@oracle.com’
About

Follow bipublisher on Twitter Find Us on Facebook BI Publisher Youtube ChannelDiscussion Forum

Join our BI Publisher community to get the most and keep updated with the latest news, How-to, Solutions! Share your feedback and let us hear your voice @bipublisher on Twitter, on our official Facebook page, and Youtube!

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today