[ 
https://issues.apache.org/jira/browse/OFBIZ-12371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17441222#comment-17441222
 ] 

Pierre Smits commented on OFBIZ-12371:
--------------------------------------

Thank you for your questions, Michael.

This is where the logic goes wrong in current situation:

with current situation:
 # any Party (including external parties, like a customer, or a lead, etc.) can 
be selected as the party for the BudgetRole record
 # the selected party can be associated with any RoleType (including those 
nothing to have to do with the budget, e.g. COMPETITOR)

Is such desirable, from an accounting domain's perspective? No, the user should 
only be permitted to:
 # select one of the RoleTypes that is related to budgets (these are defined in 
the seed data set), and
 # based on that selection only be allowed to select from the list of 
applicable PartyRole records that meet the criterium under 1.

And why is it undesirable to allow otherwise?

Because, budget information is confidential information: only selected parties 
(within the internal organisation) are allowed to create/edit Budget and 
related records and to review/approve/reject budgets. And only those identified 
to audit the books (workers from the CPA) would be regarded as potential 
reviewers.

Department manager (and every person higher up in the hierarchy) are required 
to budget for stuff. More often than not, these parties don't do this online, 
but work with spreadsheets. And often they don't actually do this themselves, 
but delegate such task to a trusted delegate within the party. They review and 
approve/reject what their delegates has concocted. And when these managers 
approve of what their delegates has delivered, they send it to their 
appropriate counterpart in the accounting department (the administrator, or 
financial controller, or CFO). Who hands it down the line to someone who is 
allowed (the administration assistant) to create (and if need be edit) the 
Budget record (and related) in the accounting system (OFBiz accounting, here). 
The administration assistant, however, is not allowed to approve/reject 
budgets, so create/edit yes but approve/reject no.

Nor is the administrative assistant often not allowed to determine who 
reviewers and/or approvers are. That prerogative is limited to those in HR 
(most often). Those workers there set the roles for department managers and 
higher-ups in the chain. Not the junior assistant (or temp or intern) that is 
just hired to put numbers in.

Now what happens here is that there is no limit. Due to ensurePartyRole and it 
being called as an eca service associated with the createBudgetRole service 
even the undesirable party-role combinations with get persisted as PartyRole 
records automatically. 

Now, one could say: fool me shame on you (OFBiz in this case), fool me twice 
shame on me (the user in this case) and it won't happen again that an 
undesirable combination will be persisted as a PartyRole record. No need for 
the project to fix this. But from a trustworthy perspective (and those who 
judge this, CPAs most often as advisors of a business needing to implement a 
new ERP solution) it is not what we should have.

IMO, he ensurePartyRole was created to facilitate not following a defined 
business process for a given domain (who can do what within that business 
domain, when and how) but rather laziness (not having to switch to party and 
create the PartyRole record there). As you described in your comment too. There 
is not even a limit on which user can persist PartyRoles (because  run-as-user 
is set to 'system').
That makes establishing an audit trail difficult. Again: making OFBiz less 
desirable from the audit and operational cost perspective. It may be free, but 
comes at a higher operational cost: no closed-down procedures: more clean-up, 
more audit cost.

 

> BudgetRole: improbable selection possible, PartyRole gets created
> -----------------------------------------------------------------
>
>                 Key: OFBIZ-12371
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-12371
>             Project: OFBiz
>          Issue Type: Bug
>          Components: accounting
>    Affects Versions: Trunk, 18.12.01
>            Reporter: Pierre Smits
>            Assignee: Pierre Smits
>            Priority: Major
>              Labels: roles
>
> On the BudgetRole page (see 
> [https://demo-stable.ofbiz.apache.org/accounting/control/BudgetRoles?budgetId=DemoBudget001)]
>  an improbable combination of Party and Role can be set and submitted. 
> Leading to PartyRole record being created.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to