<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->

<!-- This is a recurring job with will check for communication events which need to be send as emails. -->
<entity-engine-xml>
    <!-- create recurring job to check email communication events with the status COM_IN_PROGRESS to send these emails.. -->
    <TemporalExpression tempExprId="SENDEMAIL" tempExprTypeId="FREQUENCY" integer1="12" integer2="5"/>
    <RuntimeData runtimeDataId="TESTID">
        <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<ofbiz-ser>
  <map-HashMap>
    <map-Entry>
      <map-Key>
        <std-String value="cookie"/>
      </map-Key>
      <map-Value>
        <std-Integer value="1"/>
      </map-Value>
    </map-Entry>
    <map-Entry>
      <map-Key>
        <std-String value="runtimeDataId"/>
      </map-Key>
      <map-Value>
        <std-String value="TESTID"/>
      </map-Value>
    </map-Entry>
  </map-HashMap>
</ofbiz-ser>
        ]]></runtimeInfo>
    </RuntimeData>    <JobSandbox jobId="SENDEMAIL" jobName="Send Email" runtimeDataId="TESTID" runTime="2000-01-01 00:00:00.000" serviceName="sendEmailDated" poolId="pool" runAsUser="system" tempExprId="SENDEMAIL" maxRecurrenceCount="-1"/>
</entity-engine-xml>
