Profiles and Publication
I have been searching on Profiling and Publication data, but always ended up getting something general and hardly came across something concrete. Anyways, here is a document which will give you a head start in this capability of SAP BO.
There are 2 ways of Publication, Dynamic Recipient (ii) Enterprise Recipient
Now, let’s see what is the difference between the two:
Dynamic Recipient: – Primarily is aimed at sending to someone outside of your network or if you dont want to have maintenance headaches for users/groups/profiles/security and so forth. For example: The Supplier of your company needs monthly data regarding his supplies and inventory levels with us, we can send out a report with only his data to the suppliers email id without maintaining any other things for user(s) in our system. In general the objective of Dynamic Recipient is to send data to non-Enterprise users.
“Business Objects Inbox(es) are invalid destinations for dynamic recipients because they do not have BusinessObjects Enterprise user accounts”
Enterprise Recipient: – From the name itself it can be understood that this capability is specifically targeted for Enterprise Users wherein all the information regarding them are present in the system while creating the users. Reports for these kind of users can be sent to Business Objects Inboxes, File System, Email ID and so forth.
Lets look at the 2 different types now:
Let’s now look at how to prepare a Dynamic Recipient publication
In this scenario we need two files created in WebI
Source File: This file should be the actual file with all supplier inventory and supplies data. The important thing over here is that the source file should have a unique id in it, mainly Supply ID. You will see how it works later.
(ii) Recipient File: This file should again have the Supply ID as an important field in the report, then remaining data like name of the supplier & email are required also.
Ex: My source file looks like this
Here the SKU Number is the kind of primary key which I am going to use further.
Ex: My Recipient file will look like this
Email Id has been blanked out, but your source should have email id’s for SKU Numbers.
Here the SKU Number is the kind of primary key which I am going to use and also we need Category Name and Email Id for proper working of Dynamic Recipient.
Once these 2 files are prepared, we should next create the publication.
To create publication, from Infoview, click on NEW and select Publication
Enter next the name of the publication and map the source document which we created initially.
Once these are mapped, you will get additional options like below:
In this since we are dealing with Dynamic Recipient, click on that next. Under “Choose the source for the dynamic recipients ”, click on the drop down and select WebI/DeskI if you recipient list is in a WebI document.
From here, drill down to the place where the Dynamic Recipient file is and select the same.
Next select the Datasource from the drop down from which we need to consider the columns to be mapped (basically the query from which Supply ID is coming in our example and w.r.t E-fashion, wherever SKU Number is coming). In my example, it’s Query1. Once selected, we get the below
Map the SKU Number, Category and Email Id. By default, SKU Number is mapped, Full Name has to be mapped to Category and Email to Email ID.
In our hypothetical example, the Supplier Dynamic Recipient file will have be mapped like below:
– Recipient identifier(required) : Supplier ID
– Full Name : Supplier Name
– Email : Email Id
You can either send data to the entire suppliers or selected suppliers. That totally depends on the checkbox as shown below.
Once this is done, move on to the next important bit – Personalization
In the above piece you can see Global Profiles and Local Profiles. Dynamic Recipient piece can only be done with Local Profiles.
In the first field, Report Field, select the Supplier ID from our example or in E-fashion case select SKU Number. Next map it to the Dynamic Recipient field of SKU Number. Similarly, if REQUIRED ONLY map the remaining like Category.
Now the important bit which I noticed is that, the splitting of the file happens based on the mapping here. The Source file SKU Number is mapped to Recipient files SKU Number and the source file data will be split using this SKU Number. If for example Category is also mapped, then the file will be split based on SKU Number and Category.
This is how the splitting of data happens from the source and personalized data is prepared for each user.
Next up is the Format of report you would like to generate which will be in my case I am going to generate a PDF – Adobe Acrobat file.
After this we have to ‘Select Destinations’. In Dynamic Recipient case we have to map it to an email ID. I am not quite sure if we can actually send to an FTP Server or File System through Dynamic Recipient functionality, but you are free to try and let all know about the same ..
Check the Package as ZIP File, Deliver objects to each user and enter details like “From Email ID”, “To Email ID” as %SI_EMAIL_ADDRESS% (which will be taken from the recipient file). Enter subject, message and file naming convention. Pg. 64 in the below link talks about the check box in detail. http://help.sap.com/businessobject/product_guides/boexir31SP3/en/xi31_sp3_publisher_en.pdf
Once this piece of setting is done, we may/may not need to select Prompts under Additional Options tab. The prompts are not necessary bit here in Dynamic Recipients. It can run for all the values coming from the source and recipient files and send the data accordingly. In my example I have not given any prompts. But if you do have prompts, please select the list of values for which the publication should run. Ex. If you select SKU Number from 1-100 of 1000 in the LoV, the publication will only run for 1-100 and the 1-100 SKU’s will be sent to the corresponding email id with the Category name and Sales ($) information. The remaining 101-1000 will not be considered at all.
Remaining options are self-explanatory and I didn’t fiddle around with it much.
Once the publication is created, right click on the corresponding publication and go into test mode and test your publication. Otherwise you can also run your publication by actually scheduling it to run now, in either case it will work.
The output I got is shown below, if there are 10 SKU’s in the prompt selected while creating the publication, then 10 SKU will be picked from the source, mapped to the recipient, and each SKU will be sent as a separate file to each email id. I actually posted it to my own email id which looked like below
Note: SMTP configurations have to be done and up and running before actually posting data to Email ID.
Let’s now look at how to prepare an Enterprise Recipient publication
In this scenario we need 1 file to be created in WebI
Source File: This file should be the actual file with all supplier inventory and supplies data. The important thing over here is that the source file should have a unique id in it, mainly Supply ID. You will see how it work later.
So it’s the same way like earlier. But the source file has to be created with Prompts. Prompts are important here else the publication won’t know what to filter on. So please ensure that your Source file has prompts.
Once we have this Source file ready, go to CMC and click on Profiles.
Create Users, add these users to Group and design however you want.
In my case I createed 3 users and added 2 users to 1 group and the other user to another group.
Then click on PROFILES.
Click on “Create New Profile”, top left button. Enter the name and description.
In the User Security give necessary access rights. I haven’t explored much on this, but mine looked like this
which I believe should be good enough.
Next is the Profile Targets. This is what will be used to recognize based on which field the data needs to be broke down in the source field. Here the local profile comes from the webi/crystal file whereas Global profile comes from the Universe.
Profile Targets are filter for any source file that will be using this universe.
In my case I want SKU Number as my Profile Target which will act as a filter for the report.
Profile Values are values by which the filtered values for each user/group will be personalized and sent across. For Ex.: PUC_POC1 user group has 2 users under it, and they will receive data related to SKU Numbers ‘115121’,’119427’ and ‘116256’. Similarly for PUB_POC2. For doing this click on Edit (as shown in the below image), and on the subsequent pop-up click on edit and select all the values from the LoV for the user group PUB_POC1. Similary do it for PUB_POC2
Once these are done, our Profiles are ready.
Next is to Create Publication, follow same process to create Dynamic Recipient, except deviations are in the following tabs:
Enterprise Recipients: In this tab, select the group PUB_POC1 and PUB_POC2. These are the users for which the publication will be performed.
Next click on Personalization tab, select Efashio_Profile (the profile that you created in CMC) from under Global Profiles –> Enterprise Recipient Mapping.
Next Destination can be anything including the Enterprise User Inbox.
Notice that I have entered prompt values 136786, 137635, 137638 which is not there in any of the profile value of the user groups. These values should not come in your output as well. The report will run only for the 12 SKU Numbers selected but only 9 values will be sent to users. 3 to PUB_POC1 user group and the remaining 6 to the other user group.
Prompts needs to be entered in the source which is kind of mandatory as per my findings. If no prompt was present the data coming to specific users were not filtered out at all based on the values which I had mentioned for each user under Profile Values.
How it works is that, when we actually run the publication, the source file has a prompt for which the publication runs the data and then from the entire data for which it ran, it then looks up the profile values for each target users and splits the data based on the Profile target. The new file is prepared and sent to each users inbox, FTP Location and so forth.
I hope this doc has helped you in some way. Feedback , alternative methods, mistakes in my writeup are all welcome.