ilscipio/scipio-erp

View on GitHub
applications/marketing/servicedef/services.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8" ?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>Marketing Component Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- MarketingCampaign Services -->
    <service name="createMarketingCampaign" default-entity-name="MarketingCampaign" engine="entity-auto" invoke="create" auth="true">
        <description>Create a MarketingCampaign record</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateMarketingCampaign" default-entity-name="MarketingCampaign" engine="entity-auto" invoke="update" auth="true">
        <description>Update a MarketingCampaign record</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteMarketingCampaign" default-entity-name="MarketingCampaign" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove a MarketingCampaign record</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- MarketingCampaignPrice Services -->
    <service name="addPriceRuleToMarketingCampaign" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="create" auth="true">
        <deprecated since="2018-09-10 (SCIPIO)" use-instead="createMarketingCampaignPrice">
            Renaming service to respect service name best practice
        </deprecated>
        <implements service="createMarketingCampaignPrice"/>
    </service>
    <service name="createMarketingCampaignPrice" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="create" auth="true">
        <description>Add PriceRule to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removePriceRuleFromMarketingCampaign" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="delete" auth="true">
            <deprecated since="2018-09-10 (SCIPIO)" use-instead="deleteMarketingCampaignPrice">
                Renaming service to respect service name best practice
            </deprecated>
        <implements service="deleteMarketingCampaignPrice"/>
    </service>
    <service name="updateMarketingCampaignPrice" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="update" auth="true">
        <description>Update PriceRule to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteMarketingCampaignPrice" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove PriceRule from MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <!-- SCIPIO: 2018-09-10: TODO: we do not have fromDate/thruDate on MarketingCampaignPrice yet, so this cannot work...
    <service name="expireMarketingCampaignPrice" default-entity-name="MarketingCampaignPrice" engine="entity-auto" invoke="expire" auth="true">
        <description>Expire PriceRule to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>-->

    <!-- MarketingCampaignPromo Services -->
    <service name="addPromoToMarketingCampaign" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="create" auth="true">
        <deprecated since="2018-09-10 (SCIPIO)" use-instead="createMarketingCampaignPromo">
            Renaming service to respect service name best practice
        </deprecated>
        <implements service="createMarketingCampaignPromo"/>
    </service>
    <service name="createMarketingCampaignPromo" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="create" auth="true">
        <description>Add Promo to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removePromoFromMarketingCampaign" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="delete" auth="true">
        <deprecated since="Upcoming Release" use-instead="deleteMarketingCampaignPromo">
            Renaming service to respect service name best practice
        </deprecated>
        <implements service="deleteMarketingCampaignPromo"/>
    </service>
    <service name="updateMarketingCampaignPromo" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="update" auth="true">
        <description>Update Promo to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteMarketingCampaignPromo" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove Promo to MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <!-- SCIPIO: 2018-09-10: TODO: we do not have fromDate/thruDate on MarketingCampaignPromo yet, so this cannot work...
    <service name="expireMarketingCampaignPromo" default-entity-name="MarketingCampaignPromo" engine="entity-auto" invoke="expire" auth="true">
        <description>Expire Promo from MarketingCampaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>-->

    <service name="signUpForContactList" engine="java"
            location="org.ofbiz.marketing.marketing.MarketingServices" invoke="signUpForContactList" auth="false">
        <description>Signs an input email up for a ContactList with _NA_ party using the system userLogin.
            The intent is for anonymous sign ups to email lists.  Also validates email format.</description>
        <attribute name="contactListId" type="String" mode="IN" optional="false"/>
        <attribute name="email" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>
    <service name="unsubscribeContactListParty" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="unsubscribeContactListParty" auth="false">
        <description>Unsubscribe an input email for a ContactList with _NA_ party using the system userLogin.
            The intent is for anonymous unsubscribe to email lists.  Also validates email format.</description>
        <attribute name="contactListId" type="String" mode="IN" optional="false"/>
        <attribute name="email" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>
    <service name="unsubscribeContactListPartyContachMech" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="unsubscribeContactListPartyContachMech" auth="false">
        <description>Find email by contactMechId then call unsubscribeContactListParty service.</description>
        <attribute name="contactListId" type="String" mode="IN" optional="false"/>
        <attribute name="preferredContactMechId" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>

    <!-- MarketingCampaignRole Services -->
    <service name="createMarketingCampaignRole" default-entity-name="MarketingCampaignRole" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/campaign/CampaignServices.xml" invoke="createMarketingCampaignRole" auth="true">
        <description>Add Role to Campaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateMarketingCampaignRole" default-entity-name="MarketingCampaignRole" engine="entity-auto" invoke="update" auth="true">
        <description>Update Role to Campaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <!-- SCIPIO: 2018-09-10: TODO: we do not have fromDate/thruDate on MarketingCampaignPromo yet, so this cannot work...
    <service name="expireMarketingCampaignRole" default-entity-name="MarketingCampaignRole" engine="entity-auto" invoke="expire" auth="true">
        <description>Expire Role from Campaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>-->
    <service name="deleteMarketingCampaignRole" default-entity-name="MarketingCampaignRole" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove Role from Campaign</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- ContactList Services -->
    <service name="createContactList" default-entity-name="ContactList" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="createContactList" auth="true">
        <description>Create a ContactList record</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="INOUT" optional="true"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="contactListTypeId" optional="false"/>
        <override name="contactListName" optional="false"/>
    </service>
    <service name="updateContactList" default-entity-name="ContactList" engine="entity-auto" invoke="update" auth="true">
        <description>Update a ContactList record</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeContactList" default-entity-name="ContactList" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove a ContactList record</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- ContactListParty Services -->
    <service name="createContactListParty" default-entity-name="ContactListParty" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="createContactListParty" auth="true">
        <description>Add Party to ContactList</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
        <override name="statusId" optional="false"/>
    </service>
    <service name="updateContactListParty" default-entity-name="ContactListParty" engine="simple"
            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"/>
        <attribute name="contactListId" type="String" mode="INOUT" optional="true"/>
        <attribute name="productStoreId" type="String" mode="INOUT" optional="true"/>
        <attribute name="optInVerifyCode" type="String" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateContactListPartyNoUserLogin" default-entity-name="ContactListParty" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updateContactListPartyNoUserLogin" auth="false">
        <description>Update Party to ContactList Join</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <attribute name="webSiteId" type="String" mode="IN" optional="true"/>
        <attribute name="productStoreId" type="String" mode="INOUT" optional="true"/>
        <attribute name="contactListId" type="String" mode="INOUT" optional="true"/>
        <attribute name="optInVerifyCode" type="String" mode="IN" optional="true"/>
        <attribute name="email" type="String" mode="IN" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
        <override name="partyId" 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">
        <description>Update ContactList Party Contact Mech</description>
        <attribute name="contactMechId" type="String" mode="IN" optional="false"/>
        <attribute name="oldContactMechId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="deleteContactListParty" default-entity-name="ContactListParty" engine="entity-auto" invoke="delete" auth="true">
        <description>Remove Party from ContactList</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="createContactListPartyStatus" default-entity-name="ContactListPartyStatus" engine="simple"
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="createContactListPartyStatus" auth="true">
        <description>Create ContactListParty Status</description>
        <auto-attributes include="pk" mode="IN" optional="false">
            <exclude field-name="statusDate"/>
        </auto-attributes>
        <auto-attributes include="nonpk" mode="IN" optional="true">
            <exclude field-name="setByUserLoginId"/>
        </auto-attributes>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
        <attribute name="preferredContactMechId" mode="IN" type="String" optional="false"/>
        <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">
        <description>Send ContactListParty Verify Email</description>
        <auto-attributes entity-name="ContactListParty" include="pk" mode="IN" optional="false"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>
    <service name="optOutOfListFromCommEvent" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="optOutOfListFromCommEvent" auth="false">
        <description>Uses the communication event information to locate the contact list party information and removes the contact from the list</description>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="contactListId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="sendContactListPartySubscribeEmail" engine="simple"
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="sendContactListPartySubscribeEmail" auth="false">
        <attribute name="productStoreId" mode="IN" type="String" optional="true"/>
        <attribute name="partyId" mode="IN" type="String" optional="true"/>
        <attribute name="contactListId" mode="IN" type="String" optional="true"/>
        <attribute name="preferredContactMechId" mode="IN" type="String" optional="false"/>
        <attribute name="fromDate" mode="IN" type="Timestamp" optional="true"/>
        <attribute name="statusId" mode="IN" type="String" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>
    <service name="sendContactListPartyUnSubscribeVerifyEmail" engine="simple"
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="sendContactListPartyUnSubscribeVerifyEmail" auth="false">
        <attribute name="productStoreId" mode="IN" type="String" optional="true"/>
        <attribute name="partyId" mode="IN" type="String" optional="true"/>
        <attribute name="contactListId" mode="IN" type="String" optional="true"/>
        <attribute name="preferredContactMechId" mode="IN" type="String" optional="false"/>
        <attribute name="fromDate" mode="IN" type="Timestamp" optional="true"/>
        <attribute name="statusId" mode="IN" type="String" optional="true"/>
        <attribute name="baseLocation" type="String" mode="IN" optional="true"/>
    </service>
    <service name="sendContactListPartyUnSubscribeEmail" engine="simple"
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="sendContactListPartyUnSubscribeEmail" auth="false">
        <attribute name="productStoreId" mode="IN" type="String" optional="true"/>
        <attribute name="partyId" mode="IN" type="String" optional="true"/>
        <attribute name="contactListId" mode="IN" type="String" optional="true"/>
        <attribute name="preferredContactMechId" mode="IN" type="String" optional="false"/>
        <attribute name="fromDate" mode="IN" type="Timestamp" optional="true"/>
        <attribute name="statusId" mode="IN" type="String" optional="true"/>
    </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">
            <exclude field-name="changeByUserLoginId"/>
        </auto-attributes>
        <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> 
    
    <!-- WebSiteContactList services -->
    <service name="createWebSiteContactList" engine="simple" default-entity-name="WebSiteContactList" 
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="createWebSiteContactList">
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateWebSiteContactList" engine="simple" default-entity-name="WebSiteContactList" 
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="updateWebSiteContactList">
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteWebSiteContactList" engine="simple" default-entity-name="WebSiteContactList" 
        location="component://marketing/script/org/ofbiz/marketing/contact/ContactListServices.xml" invoke="deleteWebSiteContactList">
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>
    
    <!-- TrackingCode Services -->
    <service name="createTrackingCode" default-entity-name="TrackingCode" engine="entity-auto" invoke="create" auth="true">
        <description>Create a TrackingCode record</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="trackingCodeTypeId" optional="false"/>
    </service>
    <service name="updateTrackingCode" default-entity-name="TrackingCode" engine="entity-auto" invoke="update" auth="true">
        <description>Update a TrackingCode record</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteTrackingCode" default-entity-name="TrackingCode" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a TrackingCode record</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- TrackingCodeType Services -->
    <service name="createTrackingCodeType" default-entity-name="TrackingCodeType" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="createTrackingCodeType" auth="true">
        <description>Create a TrackingCodeType record</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateTrackingCodeType" default-entity-name="TrackingCodeType" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="updateTrackingCodeType" auth="true">
        <description>Update a TrackingCodeType record</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteTrackingCodeType" default-entity-name="TrackingCodeType" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="deleteTrackingCodeType" auth="true">
        <description>Update a TrackingCodeType record</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- SegmentGroup Services -->
    <service name="createSegmentGroup" default-entity-name="SegmentGroup" engine="entity-auto" invoke="create" auth="true">
        <description>Create a SegmentGroup</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateSegmentGroup" default-entity-name="SegmentGroup" engine="entity-auto" invoke="update" auth="true">
        <description>Update a SegmentGroup</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteSegmentGroup" default-entity-name="SegmentGroup" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a SegmentGroup</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- SegmentGroupClassification -->
    <service name="createSegmentGroupClassification" default-entity-name="SegmentGroupClassification" engine="entity-auto" invoke="create" auth="true">
        <description>Create a SegmentGroupClassification</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateSegmentGroupClassification" default-entity-name="SegmentGroupClassification" engine="entity-auto" invoke="update" auth="true">
        <description>Update a SegmentGroupClassification</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteSegmentGroupClassification" default-entity-name="SegmentGroupClassification" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a SegmentGroupClassification</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

   <!-- SegmentGroupGeo -->
    <service name="createSegmentGroupGeo" default-entity-name="SegmentGroupGeo" engine="entity-auto" invoke="create" auth="true">
        <description>Create a SegmentGroupGeo</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateSegmentGroupGeo" default-entity-name="SegmentGroupGeo" engine="entity-auto" invoke="update" auth="true">
        <description>Update a SegmentGroupGeo</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteSegmentGroupGeo" default-entity-name="SegmentGroupGeo" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a SegmentGroupGeo</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

   <!-- SegmentGroupRole -->
    <service name="createSegmentGroupRole" default-entity-name="SegmentGroupRole" engine="entity-auto" invoke="create" auth="true">
        <description>Create a SegmentGroupRole</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateSegmentGroupRole" default-entity-name="SegmentGroupRole" engine="entity-auto" invoke="update" auth="true">
        <description>Update a SegmentGroupRole</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="deleteSegmentGroupRole" default-entity-name="SegmentGroupRole" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a SegmentGroupRole</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <!-- SegmentGroup Related Find Service -->
    <service name="arePartiesRelatedThroughSegmentGroup" engine="simple"
        location="component://marketing/script/org/ofbiz/marketing/segment/SegmentServices.xml" invoke="arePartiesRelatedThroughSegmentGroup">
        <description>Determine: are Parties Related Through SegmentGroup?</description>
        <permission-service service-name="marketingPermissionService" main-action="VIEW"/>
        <attribute name="partyId" type="String" mode="IN" optional="false"/>
        <attribute name="roleTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="toPartyId" type="String" mode="IN" optional="false"/>
        <attribute name="toRoleTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="areRelated" type="String" mode="OUT" optional="false"><!-- will be Y or N --></attribute>
    </service>

    <!-- Tracking Code Order return  -->
    <service name="createTrackingCodeOrder" default-entity-name="TrackingCodeOrder" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="createTrackingCodeOrder">
        <description>Create a TrackingCodeOrder record</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateTrackingCodeOrder" default-entity-name="TrackingCodeOrder" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="updateTrackingCodeOrder">
        <description>Update a TrackingCode record</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>

    <!-- Tracking Code Order return  -->
    <service name="createTrackingCodeOrderReturn" default-entity-name="TrackingCodeOrderReturn" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="createTrackingCodeOrderReturn">
        <description>Create a TrackingCodeOrderReturn  record</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateTrackingCodeOrderReturn" default-entity-name="TrackingCodeOrderReturn" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="updateTrackingCodeOrderReturn">
        <description>Update a TrackingCode record</description>
        <permission-service service-name="marketingPermissionService" main-action="UPDATE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteTrackingCodeOrderReturn" default-entity-name="TrackingCodeOrderReturn" engine="simple"
            location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="deleteTrackingCodeOrderReturn">
        <description>Update a TrackingCode record</description>
        <permission-service service-name="marketingPermissionService" main-action="DELETE"/>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <service name="createTrackingCodeOrderReturns"  engine="simple"
                location="component://marketing/script/org/ofbiz/marketing/tracking/TrackingCodeServices.xml" invoke="createTrackingCodeOrderReturns">
        <description>Create TrackingCodeOrderReturn for all the Return Items with Orders that have trackingCodeOrder entry</description>
        <permission-service service-name="marketingPermissionService" main-action="CREATE"/>
        <attribute type="String" mode="IN" name="returnId" optional="false"/>
    </service>

    <!-- marketing permission service -->
    <service name="marketingPermissionService" engine="simple"
             location="component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml" invoke="genericBasePermissionCheck">
        <implements service="permissionInterface"/>
        <attribute name="primaryPermission" type="String" mode="IN" optional="true" default-value="MARKETING"/>
        <attribute name="altPermission" type="String" mode="IN" optional="true"/>
    </service>

    <service name="marketingManagerPermission" engine="simple"
             location="component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml" invoke="genericBasePermissionCheck">
        <deprecated use-instead="marketingPermissionService">SCIPIO: 2018-09-10: This service is long deprecated and may have been missing/broken altogether</deprecated>
        <implements service="marketingPermissionService"/>
    </service>

    <!-- lead services -->
    <service name="createLead" engine="simple" location="component://marketing/script/org/ofbiz/sfa/lead/LeadServices.xml" invoke="createLead">
        <description>
            Sales Lead can be just a person or a person representing a company or a company (party group).
            createLead works 1) If person information is passed. 2) If company (party group) information is passed. 3) If Person and company (party group) information is passed. 
        </description>
        <auto-attributes entity-name="Person" mode="IN" optional="true">
            <exclude field-name="partyId"/>
        </auto-attributes>
        <auto-attributes entity-name="PostalAddress" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <auto-attributes entity-name="TelecomNumber" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <attribute name="emailAddress" type="String" mode="IN" optional="true"/>
        <attribute name="groupName" type="String" mode="IN" optional="true"/>
        <attribute name="title" type="String" mode="IN" optional="true"/>
        <attribute name="numEmployees" type="String" mode="IN" optional="true"/>
        <attribute name="officeSiteName" type="String" mode="IN" optional="true"/>
        <attribute name="partyIdFrom" type="String" mode="IN" optional="true"/>
        <attribute name="dataSourceId" type="String" mode="IN" optional="true"/>
        <attribute name="extension" type="String" mode="IN" optional="true"/>
        <attribute name="contactListId" type="String" mode="IN" optional="true"/>

        <attribute name="partyId" type="String" mode="OUT" optional="true"/>
        <attribute name="partyGroupPartyId" type="String" mode="OUT" optional="true"/>
        <attribute name="roleTypeId" type="String" mode="OUT" optional="true"/>
        <attribute name="contactMechId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="createContact" engine="simple"
        location="component://marketing/script/org/ofbiz/sfa/contact/ContactServices.xml" invoke="createContact">
        <description>Create a Contact Person</description>
        <auto-attributes entity-name="Person" mode="IN" optional="true">
            <exclude field-name="partyId"/>
        </auto-attributes>
        <auto-attributes entity-name="PostalAddress" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <auto-attributes entity-name="TelecomNumber" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <attribute name="partyId" type="String" mode="OUT"/>
        <attribute name="contactMechId" type="String" mode="OUT" optional="true"/>
        <attribute name="roleTypeId" type="String" mode="OUT" optional="true"/>
        <attribute name="emailAddress" type="String" mode="IN" optional="true"/>
        <attribute name="partyIdFrom" type="String" mode="IN" optional="true"/>
        <attribute name="quickAdd" type="String" mode="IN" optional="true"/>
        <attribute name="extension" type="String" mode="IN" optional="true"/>
        <attribute name="contactListId" type="String" mode="IN" optional="true"/>
    </service>
    <service name="mergeContacts" engine="simple"
        location="component://marketing/script/org/ofbiz/sfa/contact/ContactServices.xml" invoke="mergeContacts">
        <description>This service merges the contact details of two parties, partyId merges into partyIdTo</description>
        <attribute name="addrContactMechIdTo" type="String" mode="IN" optional="true"/>
        <attribute name="phoneContactMechIdTo" type="String" mode="IN" optional="true"/>
        <attribute name="emailContactMechIdTo" type="String" mode="IN" optional="true"/>
        <attribute name="addrContactMechId" type="String" mode="IN" optional="true"/>
        <attribute name="phoneContactMechId" type="String" mode="IN" optional="true"/>
        <attribute name="emailContactMechId" type="String" mode="IN" optional="true"/>
        <attribute name="partyIdTo" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="INOUT" optional="false"/>
        <attribute name="useAddress2" type="String" mode="IN" optional="true"/>
        <attribute name="useContactNum2" type="String" mode="IN" optional="true"/>
        <attribute name="useEmail2" type="String" mode="IN" optional="true"/>
    </service>
    <!-- Account services  -->
    <service name="createAccount" engine="simple"
        location="component://marketing/script/org/ofbiz/sfa/account/AccountServices.xml" invoke="createAccount">
        <description>Create an Account Group</description>
        <auto-attributes entity-name="PartyGroup" mode="IN" optional="true">
            <exclude field-name="partyId"/>
        </auto-attributes>
        <auto-attributes entity-name="PostalAddress" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <auto-attributes entity-name="TelecomNumber" mode="IN" optional="true">
            <exclude field-name="contactMechId"/>
        </auto-attributes>
        <attribute name="emailAddress" type="String" mode="IN" optional="true"/>
        <attribute name="extension" type="String" mode="IN" optional="true"/>
        <attribute name="partyId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="convertLeadToContact" engine="simple" location="component://marketing/script/org/ofbiz/sfa/lead/LeadServices.xml" invoke="convertLeadToContact">
        <attribute name="partyId" type="String" mode="INOUT" optional="false"/>
        <attribute name="partyGroupId" type="String" mode="INOUT" optional="false"/>
    </service>

    <!-- VCard services -->
    <service name="importVCard" engine="java" location="org.ofbiz.sfa.vcard.VCard" invoke="importVCard" transaction-timeout="7200">
        <attribute name="infile" type="java.nio.ByteBuffer" mode="IN" optional="false"/>
        <attribute name="partyType" type="String" mode="IN" optional="true"/>
        <attribute name="serviceContext" type="Map" mode="IN" optional="true"/>
        <attribute name="serviceName" type="String" mode="IN" optional="false"/>
        <attribute name="partiesCreated" type="List" mode="OUT" optional="false"/>
        <attribute name="partiesExist" type="List" mode="OUT" optional="true"/>
        <attribute name="partyId" type="String" mode="OUT" optional="true"/><!-- SCIPIO: 2018-09-12: backward-compat: returns the first created or existing -->
    </service>
    <service name="exportVCard" engine="java" location="org.ofbiz.sfa.vcard.VCard" invoke="exportVCard">
        <attribute name="partyId" type="String" mode="IN" optional="false"/>
    </service>

    <!-- MarketingCampaignNote services -->
    <service name="createMarketingCampaignNote" default-entity-name="MarketingCampaignNote" engine="entity-auto" invoke="create" auth="true">
        <description>Create a MarketingCampaignNote</description>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes include="pk" mode="INOUT" optional="false"/>
    </service>
    <service name="deleteMarketingCampaignNote" default-entity-name="MarketingCampaignNote" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a MarketingCampaignNote</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- SegmentGroupType Services -->
    <service name="createSegmentGroupType" engine="entity-auto" default-entity-name="SegmentGroupType" invoke="create" auth="true">
        <description>Create SegmentGroupType</description>
        <auto-attributes include="pk" mode="INOUT" optional="true"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateSegmentGroupType" engine="entity-auto" default-entity-name="SegmentGroupType" invoke="update" auth="true">
        <description>Update SegmentGroupType</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteSegmentGroupType" engine="entity-auto" default-entity-name="SegmentGroupType" invoke="delete" auth="true">
        <description>Delete SegmentGroupType</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

</services>