2 September 2023

Data Security in Procurement BI Publisher Reports

Advised Solutions - Business Analytics Series

Securing Procurement BI Publisher Reports Utilising PO Agent Access or Assigned Buyer Security

Oracle Cloud SCM provides flexible and granular tools for securing Procurement data, ensuring users only access requisitions and purchase orders relevant to their roles. Two primary mechanisms enable this, PO Agent Access and Assigned Buyer Security. Both play a vital role in safeguarding procurement data across reporting and BI Publisher outputs.

PO Agent Access

PO Agent Access defines which Business Units a user can view or report on. Administrators assign this access via Manage Procurement Agents screen. The assignments are stored in the PO_AGENT_ACCESSESS table, which can be referenced in BI Publisher data models to dynamically restrict report output.

Assigned Buyer Security

While PO Agent Access control access at the Business Unit Level, Assigned Buyer Security works at the Transaction Level, securing Purchase Orders and Requisitions accordingly. 

Implementation Steps

01.

PO Agent Access or Assigned Buyer

HRC_SESSION_UTIL.get_user_personid is used to identify the Person Identifier of the logged-in user. This is used to restrict based on the buyer, the following query can be further extended to the preparer if business needs dictate this.

				
					SELECT ReqLines.requisition_line_id
	 , ReqLines.line_number
	 , ReqLines.quantity
	 , ReqLines.currency_unit_price
	 , ReqLines.currency_code
	 , por_util_pvt.get_total('LINE', ReqLines.requisition_line_id, 'Document Currency') AS line_amount
	 , ReqLines.need_by_date
	 , ReqLines.cancel_flag
	 , ReqLines.cancel_date
	 , ReqLines.cancel_reason
  FROM por_requisition_lines_all ReqLines
 WHERE 1=1	  
   AND (
		EXISTS (
			SELECT 'user has valid access to prc bu'
			  FROM po_agent_accesses PoAgentAccess
			 WHERE PoAgentAccess.agent_id = HRC_SESSION_UTIL.get_user_personid
			   AND PoAgentAccess.prc_bu_id = ReqLines.prc_bu_id
			   AND PoAgentAccess.access_action_code = 'MANAGE_REQUISITIONS'
			   AND PoAgentAccess.active_flag = 'Y'
			   AND PoAgentAccess.allowed_flag = 'Y'
			   AND (
					PoAgentAccess.access_others_level_code IN (
						'VIEW'
						,'FULL'
						)
					OR ReqLines.assigned_buyer_id = HRC_SESSION_UTIL.get_user_personid
					)
			)		
	)
				
			

Need some assistance?

Ready to bring clarity to customer, supplier and employee communications? With BI Publisher, we specialise in customising customer, supplier, and employee-facing documents such as invoices, purchase orders, payslips, and statements to meet your exact branding, compliance, and operational needs. From layout design to data logic enhancements, we help you deliver clear, consistent, and impactful outputs across your organization. Contact us today to discover how our expertise in BI Publisher can streamline your document processes and elevate your business communications.