You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "David E. Jones (JIRA)" <ji...@apache.org> on 2007/07/12 12:27:04 UTC

[jira] Commented: (OFBIZ-1141) More user friendly error messages

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

David E. Jones commented on OFBIZ-1141:
---------------------------------------

Just a warning, and nothing personal, but I don't like this patch for a couple of reasons:

1. the messages are not quite correct and may be confusing; it's not that they "do not match", the problem is the Party isn't in the given Role

2. we really need to find a better way to do this as this technique has a huge impact on both code volume and performance; in other words it would make the code significantly more difficult to read and maintain (and to write if we made it a standard practice), and with 2 extra database round trips it also slows down the service quite a bit

To be clear, I'm 100% opposed to this patch, but I also think this is a good direction to start going. We should develop something a little easier to use and without any performance impact, like something that "translates" lower level error messages or something.



> More user friendly error messages
> ---------------------------------
>
>                 Key: OFBIZ-1141
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-1141
>             Project: OFBiz
>          Issue Type: Improvement
>    Affects Versions: SVN trunk, Release Branch 4.0
>            Reporter: Wickersheimer Jeremy
>            Priority: Minor
>         Attachments: ofbiz-1141-example1.patch
>
>
> A lot of error messages in Ofbiz are "cryptic" for normal users. For example sometimes a user would trigger a database foreign key violation and as a result will have a quite big error message thrown at him.
> This would happen for example when you create an Agreement then gives both a Party Id To and a Role Type Id To that doesn't  match. 
> In that case the error is something like:
> ERROR: Could not complete the Create an Agreement [file:/home/jeremy/bertelsmann/dgerp/applications/accounting/script/org/ofbiz/accounting/agreement/AgreementServices.xml#createAgreement] process [problem creating the newEntity value: Exception while inserting the following entity: [GenericEntity:Agreement][agreementDate,null()][agreementId,10076(java.lang.String)][agreementTypeId,null()][createdStamp,2007-07-12 12:33:38.285(java.sql.Timestamp)][createdTxStamp,2007-07-12 12:33:38.283(java.sql.Timestamp)][defaultCurrencyUomId,null()][description,null()][fromDate,2007-07-12 12:33:38.285(java.sql.Timestamp)][fromPartyClassGroupId,null()][lastUpdatedStamp,2007-07-12 12:33:38.285(java.sql.Timestamp)][lastUpdatedTxStamp,2007-07-12 12:33:38.283(java.sql.Timestamp)][partyIdFrom,null()][partyIdTo,Admin(java.lang.String)][productId,null()][roleTypeIdFrom,null()][roleTypeIdTo,PERSON_ROLE(java.lang.String)][statusId,null()][textData,null()][thruDate,null()][toPartyClassGroupId,null()] (while inserting: [GenericEntity:Agreement][agreementDate,null()][agreementId,10076(java.lang.String)][agreementTypeId,null()][createdStamp,2007-07-12 12:33:38.285(java.sql.Timestamp)][createdTxStamp,2007-07-12 12:33:38.283(java.sql.Timestamp)][defaultCurrencyUomId,null()][description,null()][fromDate,2007-07-12 12:33:38.285(java.sql.Timestamp)][fromPartyClassGroupId,null()][lastUpdatedStamp,2007-07-12 12:33:38.285(java.sql.Timestamp)][lastUpdatedTxStamp,2007-07-12 12:33:38.283(java.sql.Timestamp)][partyIdFrom,null()][partyIdTo,Admin(java.lang.String)][productId,null()][roleTypeIdFrom,null()][roleTypeIdTo,PERSON_ROLE(java.lang.String)][statusId,null()][textData,null()][thruDate,null()][toPartyClassGroupId,null()] (SQL Exception while executing the following:INSERT INTO public.AGREEMENT (AGREEMENT_ID, PRODUCT_ID, PARTY_ID_FROM, PARTY_ID_TO, ROLE_TYPE_ID_FROM, ROLE_TYPE_ID_TO, AGREEMENT_TYPE_ID, AGREEMENT_DATE, FROM_DATE, THRU_DATE, DESCRIPTION, TEXT_DATA, LAST_UPDATED_STAMP, LAST_UPDATED_TX_STAMP, CREATED_STAMP, CREATED_TX_STAMP, STATUS_ID, DEFAULT_CURRENCY_UOM_ID, FROM_PARTY_CLASS_GROUP_ID, TO_PARTY_CLASS_GROUP_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) (ERROR: insert or update on table "agreement" violates foreign key constraint "agrmnt_tprtyrle"
> Detail: Key (party_id_to,role_type_id_to)=(Admin,PERSON_ROLE) is not present in table "party_role".)))]
> It is fine for a developer who can understand that, but not for a user.
> I agree that with some hacking or better design in the forms it would be possible to avoid that kind of error, but the idea would be to be able to catch that and replace the error we something more understandable, for example:
> ERROR: the "Party Id To" doesn't have the "Role Type To Id" you entered.
> Or better:
> ERROR: the "Party Id To: Admin" doesn't have the "Role Type To Id: Person". Possible values for the Role Type are : "..."
> I know that such a feature cannot be implemented in the framework directly because errors are context sensitive, so it would have to be done in the Service XML definition.
> Perhaps some new methods could be added in simple-methods to make that task easier ?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.