You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2009/05/08 07:59:37 UTC
svn commit: r772850 - in /ofbiz/trunk/applications/marketing: entitydef/
script/org/ofbiz/marketing/contact/ servicedef/
webapp/marketing/WEB-INF/actions/contact/ webapp/marketing/contact/
Author: jaz
Date: Fri May 8 05:59:37 2009
New Revision: 772850
URL: http://svn.apache.org/viewvc?rev=772850&view=rev
Log:
since NEWSLETTER type marketing emails do not create unique communication events, added fields to keep track of party/message ID for these messages
Modified:
ofbiz/trunk/applications/marketing/entitydef/entitymodel.xml
ofbiz/trunk/applications/marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml
ofbiz/trunk/applications/marketing/servicedef/secas.xml
ofbiz/trunk/applications/marketing/servicedef/services.xml
ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy
ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml
Modified: ofbiz/trunk/applications/marketing/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/entitydef/entitymodel.xml?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/marketing/entitydef/entitymodel.xml Fri May 8 05:59:37 2009
@@ -191,6 +191,8 @@
<field name="contactListId" type="id-ne"></field>
<field name="communicationEventId" type="id-ne"></field>
<field name="contactMechId" type="id-ne"></field>
+ <field name="partyId" type="id"></field>
+ <field name="messageId" type="value"></field>
<field name="statusId" type="id-ne"></field>
<prim-key field="contactListId"/>
<prim-key field="communicationEventId"/>
@@ -204,9 +206,15 @@
<relation type="one" fk-name="CNCT_LST_CST_CM" rel-entity-name="ContactMech">
<key-map field-name="contactMechId"/>
</relation>
+ <relation type="one" fk-name="CNCT_LST_CST_PT" rel-entity-name="Party">
+ <key-map field-name="partyId"/>
+ </relation>
<relation type="one" fk-name="CNCT_LST_CST_ST" rel-entity-name="StatusItem">
<key-map field-name="statusId"/>
</relation>
+ <index name="CNTLSTCST_MSG_ID" unique="true">
+ <index-field name="messageId"/>
+ </index>
</entity>
<entity entity-name="ContactListParty"
package-name="org.ofbiz.marketing.contact"
Modified: ofbiz/trunk/applications/marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml (original)
+++ ofbiz/trunk/applications/marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml Fri May 8 05:59:37 2009
@@ -127,6 +127,19 @@
</if>
<check-errors/>
+ <!-- if fromDate is not found; look up the latest record -->
+ <if-empty field="parameters.fromDate">
+ <entity-condition entity-name="ContactListPartyStatus" list="lookupList">
+ <condition-list combine="and">
+ <condition-expr field-name="contactListId" from-field="parameters.contactListId"/>
+ <condition-expr field-name="partyId" from-field="parameters.partyId"/>
+ </condition-list>
+ <order-by field-name="-statusDate"/>
+ </entity-condition>
+ <first-from-list entry="lastRecord" list="lookupList"/>
+ <set field="parameters.fromDate" from-field="lastRecord.fromDate"/>
+ </if-empty>
+
<entity-one entity-name="ContactList" value-field="contactList"/>
<call-simple-method method-name="inlineCheckContactListMechType"/>
<call-simple-method method-name="inlineCheckContactListStatusParameter"/>
@@ -172,10 +185,10 @@
</if>
<check-errors/>
- <make-value entity-name="ContactListPartyStatus" value-field="newEntity"/>
+ <make-value entity-name="ContactListPartyStatus" value-field="newEntity"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
-
+
<now-timestamp field="newEntity.statusDate"/>
<set from-field="userLogin.userLoginId" field="newEntity.setByUserLoginId"/>
@@ -215,7 +228,8 @@
</then>
</else-if>
</if>
-
+
+ <log level="info" message="Wrote record : ${newEntity}"/>
<create-value value-field="newEntity"/>
</simple-method>
@@ -281,4 +295,29 @@
</else>
</if>
</simple-method>
+
+ <simple-method method-name="updateContactListCommStatus" short-description="Update ContactList Communication Status">
+ <entity-one entity-name="ContactListCommStatus" value-field="lookedUpValue" auto-field-map="true"/>
+ <if-empty field="lookedUpValue">
+ <make-value entity-name="ContactListCommStatus" value-field="lookedUpValue"/>
+ <set-pk-fields map="parameters" value-field="lookedUpValue"/>
+ <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
+ <create-value value-field="lookedUpValue"/>
+ <else>
+ <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
+ <store-value value-field="lookedUpValue"/>
+ </else>
+ </if-empty>
+ </simple-method>
+
+ <simple-method method-name="updateCommStatusFromCommEvent" short-description="Update ContactList Comm Status from CommunicationEvent">
+ <entity-and list="clcs" entity-name="ContactListCommStatus">
+ <field-map field-name="communicationEventId" from-field="parameters.communicationEventId"/>
+ </entity-and>
+ <iterate entry="commStatus" list="clcs">
+ <set-service-fields service-name="updateContactListCommStatus" to-map="updateStatusCtx" map="commStatus"/>
+ <set field="updateStatusCtx.statusId" from-field="parameters.statusId"/>
+ <call-service service-name="updateContactListCommStatus" in-map-name="updateStatusCtx"/>
+ </iterate>
+ </simple-method>
</simple-methods>
Modified: ofbiz/trunk/applications/marketing/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/servicedef/secas.xml?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/marketing/servicedef/secas.xml Fri May 8 05:59:37 2009
@@ -27,7 +27,21 @@
<eca service="updatePartyEmailAddress" event="return">
<action service="updatePartyEmailContactListParty" mode="sync"/>
</eca>
-
+
+ <!-- update contact list communication status -->
+ <eca service="updateCommunicationEvent" event="commit">
+ <condition-field field-name="statusId" operator="not-equals" to-field-name="oldStatusId"/>
+ <action mode="sync" service="updateCommStatusFromCommEvent"/>
+ </eca>
+
+ <!-- update contact list party for bounced messages -->
+ <eca service="updateContactListCommStatus" event="commit">
+ <condition field-name="statusId" operator="equals" value="COM_BOUNCED"/>
+ <condition field-name="partyId" operator="is-not-empty"/>
+ <set field-name="statusId" value="CLPT_INVALID"/>
+ <action service="updateContactListParty" mode="sync"/>
+ </eca>
+
<!-- quick add functions which pass a contactListId as well -->
<eca service="createLead" event="commit">
<condition field-name="contactListId" operator="is-not-empty"/>
Modified: ofbiz/trunk/applications/marketing/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/servicedef/services.xml?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/marketing/servicedef/services.xml Fri May 8 05:59:37 2009
@@ -142,8 +142,9 @@
location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updateContactListParty" auth="true">
<description>Update Party to ContactList Join</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
- <auto-attributes include="nonpk" mode="IN" optional="true"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
<attribute name="optInVerifyCode" type="String" mode="IN" optional="true"/>
+ <override name="fromDate" optional="true"/>
</service>
<service name="updatePartyEmailContactListParty" engine="simple"
location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updatePartyEmailContactListParty" auth="true">
@@ -166,6 +167,7 @@
<exclude field-name="setByUserLoginId"/>
</auto-attributes>
<override name="statusId" optional="false"/>
+ <override name="fromDate" optional="true"/>
</service>
<service name="sendContactListPartyVerifyEmail" engine="simple" max-retry="3"
location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="sendContactListPartyVerifyEmail" auth="true">
@@ -173,7 +175,19 @@
<auto-attributes entity-name="ContactListParty" include="pk" mode="IN" optional="false"/>
</service>
-
+ <!-- ContactList Comm Status Services -->
+ <service name="updateContactListCommStatus" engine="simple" default-entity-name="ContactListCommStatus"
+ location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updateContactListCommStatus">
+ <auto-attributes include="all" mode="IN" optional="false"/>
+ <override name="partyId" optional="true"/>
+ <override name="messageId" allow-html="any" optional="true"/>
+ </service>
+ <service name="updateCommStatusFromCommEvent" engine="simple"
+ location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updateCommStatusFromCommEvent">
+ <attribute name="communicationEventId" type="String" mode="IN"/>
+ <attribute name="statusId" type="String" mode="IN"/>
+ </service>
+
<!-- TrackingCode Services -->
<service name="createTrackingCode" default-entity-name="TrackingCode" engine="simple"
location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="createTrackingCode" auth="true">
Modified: ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy Fri May 8 05:59:37 2009
@@ -28,7 +28,10 @@
if (!contactMechs || contactMechs.size() == 0) {
contactMechs = ownerParty.getRelatedByAnd("PartyContactMechPurpose", [contactMechPurposeTypeId : "PRIMARY_EMAIL"]);
}
- context.marketingEmail = contactMechs.get(0);
- //context.contactMechIdFrom = context.marketingEmail.contactMechId;
+
+ if (contactMechs != null && contactMechs.size() > 0) {
+ context.marketingEmail = contactMechs.get(0);
+ //context.contactMechIdFrom = context.marketingEmail.contactMechId;
+ }
}
}
Modified: ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml?rev=772850&r1=772849&r2=772850&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml Fri May 8 05:59:37 2009
@@ -503,7 +503,7 @@
</sub-hyperlink>
</display-entity>
</field>
- <field name="contactMechId"><display-entity entity-name="ContactMech" description="${infoString}"/></field>
+ <field name="contactMechId" title="${uiLabelMap.CommonEmailTo}"><display-entity entity-name="ContactMech" description="${infoString}"/></field>
<field name="lastUpdatedStamp" title="${uiLabelMap.FormFieldTitle_lastModifiedDate}"><display/></field>
<field name="statusId"><display-entity entity-name="StatusItem" description="${description}"/></field>
</form>