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

Ratnesh Upadhyay commented on OFBIZ-2581:
-----------------------------------------

Hi Hans, 

Thanks for your comments, we are not updating the status of parent 
communication event here instead of that we are just update the status of all 
those communication events which are associated with parties. In other words we 
have the same communication event records in CommunicationEvent entity as we 
have in CommunicationEventRole entity for the same party but in case of mark as 
read the status will be updated only in communicationEventRole entity. Our 
patch will update the status of only those events in "CommunicationEvent" 
entity, who have statusId as "COM_ROLE_READ" in " CommunicationEventRole" 
entity. 

Here are the demo data which helps you to understand the scene : 

<CommunicationEvent communicationEventId = "10002" communicationEventTypeId = 
"EMAIL_COMMUNICATION" parentCommEventId = "10000" statusId = "COM_COMPLETE" 
contactMechTypeId = "EMAIL_ADDRESS" partyIdFrom = "Company" partyIdTo = 
"10000"/> 
<CommunicationEventRole communicationEventId = "10002" partyId = "10000" 
roleTypeId = "ADDRESSEE" contactMechId = "10000" statusId = 
"COM_ROLE_CREATED"/> 

<!-- After execution of mare as read event --> 
<CommunicationEventRole communicationEventId = "10002" partyId = "10000" 
roleTypeId = "ADDRESSEE" contactMechId = "10000" statusId = "COM_ROLE_READ"/> 

<!-- once the status changed from any to "COM_ROLE_READ" out ECA will trigger 
and update the status of same communication event id in CommunicationEvent 
entity --> 
<CommunicationEvent communicationEventId = "10002" communicationEventTypeId = 
"EMAIL_COMMUNICATION" parentCommEventId = "10000" statusId = "COM_READ" 
contactMechTypeId = "EMAIL_ADDRESS" partyIdFrom = "Company" partyIdTo = 
"10000"/> 


What we are doing here in above two records when status updates for 
communicationEventId = "10002" and partyId="10000" in CommunicationEventRole 
entity we simply update the status in CommunicationEvent entity for the same 
communicationId. It means that we are updating status of 
communicationEventId="10002" here you can see that the partyId is also same and 
the old status is "COM_COMPLETE" to "COM_READ". 

AFAIK, that when we send the mails from contact list It will create the 
different communication events for all the parties who are added as recipient 
in the list. 
Suppose there are two parties are associated with contact list and mail is sent 
to contact list then three communication event records are created one is 
created as parent record with communicationEventTypeId = "AUTO_EMAIL_COM" and 
another two are having "COM_COMPLETE" so we are updating the status of another 
two records which are specific to party and not for the parent communication 
event. 

Note : I looked CommunicationEventAndRole entity, It has only three status 
values (entered, read and completed) all these are available from roleStatusId 
field but the bounce status is not available there. 

Suggestions are most welcome. 

Thanks ! 

Regards, 
-- Ratnesh Upadhyay 

> Update communication event status as read in CommunicationEvent entity on the 
> basis of status updated in CommunicationEventRole entity. 
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-2581
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-2581
>             Project: OFBiz
>          Issue Type: Improvement
>    Affects Versions: SVN trunk
>            Reporter: Ratnesh Upadhyay
>            Assignee: Ashish Vijaywargiya
>            Priority: Minor
>             Fix For: SVN trunk
>
>         Attachments: com-read-status-ofbiz-2581.patch
>
>
> - In marketing > Reports > Email Status Report 
> The resultant report is not showing the status of all those communication 
> events which are in read status. In present system it is handled in 
> CommunicationEventRole entity. Here we have "COM_ROLE_READ" status for all 
> those communication events that are opened by the user (read by the 
> recipient) but when we saw those communication events from report tab they 
> are listed as completed status, because displayed list is prepared via 
> "CommunicationEvent "  entity and there is no any status update in case of 
> read. (because updated in CommunicationEventRole entity)
> Apart from this if we have a look on those communication events that are in 
> bounced status due to invalid email address , are updated in 
> CommunicationEvent entity as well.
> So for updating status of a communication event as read , we wrote an ECA 
> rule, to  update CommunicationEvent  entity's record to COM_READ ,  when the 
> status of CommunicationEventRole is changed to  COM_ROLE_READ. So that we can 
> get all those communication events, that has read status from 
> "CommunicationEvent" entity. 
> Please suggest the proper approach from the above given solution. Or any 
> other better approach, if any.
> Thanks in advance.
> --
> Ratnesh Upadhyay

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

Reply via email to