Technical Articles
Enabling XECM Business Workspace in My Inbox Fiori App
Business workspace from XECM is used to contain documents related to business objects in SAP system. It is one of the Document Management Solution provided by Open Text.
My Inbox 2.0 Fiori app provided by SAP is used to Approve/Reject work items assigned to user. Work items are rendered in My Inbox using two ways
AnnotaionbasedtaskUI
Webapp based
Here we are going to talk about how to enable business workspace for Purchase Order, Purchase Requisition and Contract in My Inbox.
PO, PR and Contact use annotation based UI configured in backend using transaction SWFVISU.
This blog explain the solution accelerator provided by Open Text in order to incorporate Business workspace in Fiori Apps.
Prerequisites:
XECM is already enabled in SAP system which could be accessed using GUI transactions.
Steps to enabled business workspace in My Inbox 2.0 Fiori app:
Step 1: According to version of XECM installed in your landscape , you need to add add-ons in both SAP frontend and Backend system.
Document reference: SAP_Extended_ECM_Solution_Accelerator_for_SAP_Fiori_Business_Object_Browsing (OpenText)
For Version 16:
Backend SAP system
OTEXBAS 1600_700
OTEXBASO 1600_700
OTEXRL 1600_700
OTEXRLO 1600_700
FrontEnd SAP system
OTEXBASF 1600_740
OTEXRLF 1600_740
For Version 16.2:
Backend SAP system
OTEXBAS 1620_700
OTEXBASO 1620_700
OTEXRL 1620_700
OTEXRLO 1620_700
FrontEnd SAP system
OTEXBASF 1620_740
OTEXRLF 1620_740
Step 2: Import Transports to SAP system (Download sol_acc_fiori_bob_docacc_xecm_sap_1_0.zip from OpenText)
BackEnd SAP System
Import DALK900376, DALK900388 and DALK900334
FrontEnd SAP System
Import D5OK900639 and D5OK900374
Step 3: Enabled following SICF service in Front End system
sap/bc/ui5_ui5/otbcwui/pf07_bc_ui_02
sap/bc/ui5_ui5/otbcwui/pf07_bc_ui_02_t
sap/bc/ui5_ui5/otx/alf_docs4bc
sap/bc/ui5_ui5/otx/alf_doc_ui
sap/bc/ui5_ui5/otx/rmf_bws4bc
sap/bc/ui5_ui5/otx/rmf_bws_ui
Step 4: Register following Services in FrontEnd system using Transaction /IWFND/MAINT_SERVICE (You can register using Local system alias in case of Embedded system)
/OTX/RM_WSC_ODATA_SRV
/OTX/PF05_DATA
Step 5: Now we need to extend My Inbox Fiori application using SAP WebIDE
Open SAP WebIDE and click on File -> New -> Extension Project
Select SAP Front End system from dropdown
Extended My Inbox Project
A list of fiori apps will appear, select CA_FIORI_INBOX and click OK.
Now an Extension Project of My Inbox Fiori Application would be created by SAP WebIDE.
Step 6: Register rmf_bws_ui application component inside My Inbox application by putting below code in Component.js.
jQuery.sap.registerModulePath('otx.ecmlink.businessworkspace','/sap/bc/ui5_ui5/otx/rmf_bws_ui');
try {
jQuery.sap.require('otx.ecmlink.businessworkspace.Component');
} catch(err) {
jQuery.sap.log.error(
"Cannot create business workspace component", err.message);
var sBwsActive = false;
}
Step 7: Create Frag Folder under webapp folder of your extended application
Create file businessworkspace.fragment.js under the Frag Folder
Add below piece of code to it.
sap.ui.jsfragment("cross.fnd.fiori.inbox.CA_FIORI_INBOXExtension.frag.businessworkspace", {
createContent: function (oController) {
var obj = sap.ui.getCore().getComponent("OtBwsComp");
if (obj) {
obj.destroy();
}
try {
var oCompBws = sap.ui.getCore().createComponent({
name: "otx.ecmlink.businessworkspace",
id: "OtBwsComp",
settings: {
SystemOrigin: "OTBCWUI_BACKEND",
// you can use system alias defined by use for the odata service /OTX/RM_WSC_ODATA_SRV
AppMode: false,
UseClassicConfig: true
}
});
var oComponentContainerBws = new sap.ui.core.ComponentContainer({
component: oCompBws
});
var oContBws = oComponentContainerBws;
} catch (err) {
// Generate error output
oContBws = new sap.m.Label({
design: sap.m.LabelDesign.Bold,
text: "No Data",
textAlign: sap.ui.core.TextAlign.Center,
width: "100%",
visible: true
});
// Log an error to the console
// jQuery.sap.log.error("Cannot create BW component", err.message);
}
// Define the IconTabFilter for Business Documents
var oIconTabFilterBws = new sap.m.IconTabFilter({
key: "OTXBWDocuments",
icon: "sap-icon://documents",
tooltip: "Business Workspace",
visible: true,
content: oContBws
});
oIconTabFilterBws.data("OtComponent", oCompBws);
return oIconTabFilterBws;
}
});
Note: useClassicConfig parameter will help you in not replacing the content server hostname and port name with Fiori Launchpad.
Step 7: Extend TaskUI_S3.view.xml and TaskUI_S3.controller.js Controller
Copy TaskUI_S3.view.xml and TaskUI_S3.controller.js Controller file from standard CA_FIORI_INBOX application to your view folder of your extended application
Write below piece of code in Manifest .json of your extended application
In TaskUI_S3.view.xml file add new item under icontabbar in order to call above create fragment (Businessworkspace.fragment,js)
Fragment insertion
Step 8: On click of Business Workspace in Detail page of My Inbox application, handleTabSelect method will be called so need to refresh the content of our icontabfilter with values of Business Object and Business Object ID.
if (k === "OTXBWDocuments") // Logic to Refresh Business Workspace Widget on click of Business Workspace tab
{
var oComp = sap.ui.getCore().getComponent("OtBwsComp");
var y = this.getView();
var d = y.getModel("detail");
var taskId = d.oData.TaskDefinitionID;
var taskTitle = d.oData.TaskTitle;
var sObjectId = taskTitle.match(/(\d+)/);
if (taskId === "TS20000166") {
var sSapObject = "BUS2012"; // Business Object for Purchase Order
oComp.refresh(sSapObject, sObjectId[0]);
}
if (taskId === "TS20000172") {
var sSapObject = "BUS2014"; // Business Object for Contract
oComp.refresh();
sap.ui.commons.MessageBox.alert("No Business Workspace Exists");
}
if (taskId === "TS20000159") {
var sSapObject = "BUS2105"; // Business Object for Requisition
oComp.refresh(sSapObject, sObjectId[0]);
}
}
Step 9: Deploy the application to your FrontEnd application and configure the tile using this extended application.
Enjoy using Business Workspace in your My Inbox Fiori Application for PR , PO and Contract.
Happy learning!
This is going to be a strange comment. The first thing I want to say is that I did not set up our Fiori inbox. Someone else did.
Next - for approvals, rejects, reworks. All of these are driven by a workflow. Part of the workflow is saving the documents. Another part of the workflow would save any comments made in the approval/reject/rework. I can pull all of that from our workflow logs. The PDFs attachments themselves are saved in a separate area.
The above seems like a lot of work to get to the above. Our workflow items are in an HTML format.
Is this simply a different way of doing things? I know there are 1001 different ways to do the same thing in SAP. For me, it would have helped to see the final result.
It's an interesting blog for my morning - it made me think.
Hi Nishant,
Thanks for the blog. I was able to follow the blog till step 7 but the Code to be added in Manifest.json appears to be missing from the blog.
Can you please update the blog and add the code which needs to be added in Manifest.json
Also, please confirm how to handle the parameters (PO/PR number )that needs to be passed to Business Workspace app for opening the relevant attachments in Business Workspace.
Thanks
Gaurav
Hi Gaurav,
I need the same code partition. Did you find any solution ?
Best Regards,
Onur
Hi Nishant,
Can you share the manifet.json part of configuration which you have mentioned in your post?
Best Regards,
Onur