Skip to Content
Technical Articles
Author's profile photo Ashlin Kandan

Extending SAP SuccessFactors: Creating an Access Card using SuccessFactors, Pixel Perfect Talent Card (PPTC) and Business Intelligence Reporting Tool (BIRT)

Creating solutions for customers is always the fun part of being a Techie. SAP are providing both customers and partners with the tools required to build out their own Intelligent Enterprise.  In this blog post, we use features within SuccessFactors and a flexible reporting tool called Business Intelligence Reporting Tool, which is more commonly known as BIRT Reporting.

Customer Request:

Recently we had a customer request: to design and print a License card containing the Equipment an employee is licensed to operate, along with the expiry date for each license. Employment Information would need to be easily displayed on the card, including a photo.

Investigation and Acknowledgment:

PPTC and BIRT have both been available for a long time. Finding helpful material to implement PPTC and BIRT was a challenge. Special thanks to Chee Seng Ee for getting me on track with BIRT. Sharon Jorgenson for sparking the PPTC idea!

 

Design:

Using Employee Profile, PPTC, and BIRT, we were able to create a custom-sized card, small enough to fit in an employee’s top pocket or attached to a lanyard.

License and Expiry Date are to be stored in the Employee Profile. A License portlet was created with the required fields used in the card. PPTC consumes the data from the portlet to generate the license card. Updates made to the license portlet are automatically updated when creating a new PPTC. The new PPTC is created from the Employee Profile.

Implement:

Here are the implementations steps to create the solution. We start by enabling settings in Provisioning and permission the features needed to configure the solution.

1. Enable the below settings in Provisioning:

  • BI Publisher Scorecard Integration
  • BI Publisher Export Scorecard XML
  • Export Scorecard Xml with additional Information

 

2. Enable the below permissions in Role Based Permissions:

  • Pixel Perfect Talent Card
  • Pixel Perfect Talent Card Publishing Tab Access
  • Pixel Perfect Talent Card Template(s)for the required template.
  • Pixel Perfect Talent Card Export XML, to publish XML output of the talent card.

 

3. Navigate to Admin Center -> Configure People Profile General Settings -> Selected PPTC Section.

 

Note: The PPTC Section selected should contain all the fields you want available in your PPTC/Report.

For more information and a list of sections available, click the SAP Help Portal link: https://help.sap.com/viewer/deb510367ec844b4bc84b8c52442f5e5/2111/en-US/31d710acda5d40a3bb2b6213da7902e3.html

4. Generate the PPTC XML

Navigate to the Employee Profile. Click the Actions button -> Create Talent Card

 

5. Use the dropdown to select the xml Template and click Create.

 

6. The xml file is downloaded to your local machine. The xml will be used to create the report/license card.

7. In this example, BIRT Report Designer was used.

Note: If you already have Eclipse IDE installed on your machine – that works well!

BIRT Report Designer is a 3rd party application and was used for the PPTC design.

BIRT Report Designer can be downloaded from the Eclipse Foundation website using the link below. Version 4.3.2 worked perfectly for me.

https://download.eclipse.org/birt/downloads/drops/

8. The downloaded xml in BIRT Report Designer is selected as the Data Source. The layout, data sets and field mappings are created.

 

9. Once the report is complete, the RPTDESIGN file is imported into Provisioning.

Template Name: The name when generating the card in SuccessFactors
Template Type: BIRT Template
File to Import: File created from BIRT (RPTDESIGN file)
Output Format: Card format in SuccessFactors
Click Import

10. Your report has been uploaded and can be created in SuccessFactors. Navigate to the Employee Profile. Click the Actions button -> Create Talent Card and Select the Template Name

 

11. The License card is displayed and can be printed.

It was a great solution for our customer and felt super excited to show the ability to extend SuccessFactors. Leveraging existing features and system capability – almost an Intelligent Enterprise solution! 😊

Thanks for reading,

Ashlin

Assigned Tags

      13 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Guru Mohan Reddy
      Guru Mohan Reddy

      Hi Ashlin,

       

      Thanks a lot for sharing such a good article. Can you please help me a way out to automate this for the below requirement?

       

      Our client wanted ID card to be generated and available for employees to download. The process outlined above, does it support auto generation or bulk generation of such talent cards?

      Author's profile photo Ashlin Kandan
      Ashlin Kandan
      Blog Post Author

      Hi Guru Mohan,

      Please refer to the below guide for information on batch publishing:

      https://help.sap.com/doc/c50ed10bb4f14c2c9007c427041dcfc6/2111/en-US/SF_ANA_Report_Center_User.pdf

      I hope this helps!

      Regards

      Ashlin

       

       

       

       

      Author's profile photo Luke Marson
      Luke Marson

      Great blog Ashlin!

      Author's profile photo Ajay Kumar
      Ajay Kumar

      Nice Blog! Could you please share steps for adding profile picture in PPTC. 

      Author's profile photo Ashlin Kandan
      Ashlin Kandan
      Blog Post Author

      Hi Ajay,

      Make sure your xml file used in BIRT contains the <photo> <photo-blob>.

      You can then create an image in your layout and map the <photo-blob>

      Regards

      Ashlin

       

      Author's profile photo Kim Sawyer
      Kim Sawyer

      Hi Ashlin

       

      Would you be able to share your XML & row mapping for the photo-blob field?  I have inserted a dynamic image & mapped to he photo-blob field but when I generate the talent card I get the message "the resource of this report item is not reachable".

      Thanks,

      Kim

      Author's profile photo Prince Rajesh Dwivedi
      Prince Rajesh Dwivedi

      Hello Ashlin,

      Thanks for sharing such a great blog.
      I need your help with the dynamic image which I have mapped to the image palette. As the data source is in the xml format when I export it from SuccessFactors the <photo><photo-blob> contains the field which is encoded in the base64 format i.e. String data type not a BLOB data type. So whenever I try to map it directly with the image palette it shows "the resource of this report item is not reachable". I have tried different ways to decode the image in Eclipse and it worked as well and it is visible in the Eclipse view report  as "HTML " or "PDF" preview. But, whenever I upload the same in the SuccessFactors the image shows up as blank. Kindly help me with this issue as I have tried all the possible ways to do the same.

      Thanks and regards,

      Prince Dwivedi.

      Author's profile photo Ashlin Kandan
      Ashlin Kandan
      Blog Post Author

      Hi Prince Dwivedi,

      Thanks for the review!

      Can you copy the below OnCreate script - Click on the Image, and then insert the code below using the script tab.

      try
      {

      importPackage(Packages.sun.misc);
      //importPackage(java.io.ByteArrayInputStream);
      decoder = new BASE64Decoder();
      decodedBytes = decoder.decodeBuffer(this.getRowData().getColumnValue("photo-blob"));
      this.data = decodedBytes;
      bais = new java.io.ByteArrayInputStream( decodedBytes);
      bufimg = javax.imageio.ImageIO.read(bais);
      }
      catch ( e)
      {

      }

      Regards

      Ashlin

      Author's profile photo Prince Rajesh Dwivedi
      Prince Rajesh Dwivedi

      Hello Ashlin,

      Thanks for your reply!

      This script worked for me. Thank you so much for sharing this wonderful article.

       

      Thanks and regards,

      Prince Rajesh Dwivedi.

      Author's profile photo angela reyes
      angela reyes

      Hi Ashlin,

       

      Thank you for sharing this helpful article. I am new to PPTC and there is already an existing working PPTC in the system. I have tried adding a Position Information block in the PPTC section, however, after downloading the xml file in Employee Profile, the position information is not showing in XML but it shows in the PPTC section in Employee Profile. May I ask if I missed anything? Can you kindly help me?

      Thank you in advance!

      Best Regards,

      Angela

      Author's profile photo Ashlin Kandan
      Ashlin Kandan
      Blog Post Author

      Hi Angela,

      Can you refer to Step 3,

      Navigate to Admin Center -> Configure People Profile -> General Settings -> Selected PPTC Section

      Make sure your block is selected correctly.

      Hope this helps!

      Ash

      Author's profile photo Alejandra Farfan
      Alejandra Farfan

      Hi Ashlin,

      Thank you for the blog, quick question regarding the photo-blob.

      I am able to pull the image in eclipse, however, when I am generating the PPTC in successfactros

      the system shows : The resource of this report item is not reachable.

      I found the below code in a guide which is the one I am using. 

      <image id="24">
      <property name="height">144px</property>
      <property name="width">108px</property>
      <property name="dataSet">Photo</property>
      <list-property name="boundDataColumns">
      <structure>
      <property name="name">photo-blob</property>
      <expression name="expression" type="javascript">dataSetRow["photo-blob"]</expression>
      <property name="dataType">string</property>
      </structure>
      <structure>
      <property name="name">PictureBlob</property>
      <expression name="expression" type="javascript">org.apache.commons.codec.binary.Base64.decodeBase64(row["photo-blob"])</expression>
      <property name="dataType">blob</property>
      <property name="allowExport">true</property>
      </structure>
      </list-property>
      <property name="source">expr</property>
      <expression name="valueExpr">row["PictureBlob"]</expression>
      </image>

       

      Could you please advice?

       

      p.s:  I have already tried the code you sent some comments before

      {

      importPackage(Packages.sun.misc);
      //importPackage(java.io.ByteArrayInputStream);
      decoder = new BASE64Decoder();
      decodedBytes = decoder.decodeBuffer(this.getRowData().getColumnValue("photo-blob"));
      this.data = decodedBytes;
      bais = new java.io.ByteArrayInputStream( decodedBytes);
      bufimg = javax.imageio.ImageIO.read(bais);
      }
      catch ( e)
      {

      }

       

      but when I use it I am getting the below error

      + org.mozilla.javascript.EvaluatorException: syntax error (/report/body/image[@id="226"]/method[@name="onPrepare"]#11)
      Author's profile photo Napapatch Clenjans
      Napapatch Clenjans

      Hi,  Do you have any initial Template that you could share ?

       

      Thank you