Avalara - Scheduled Quartz Jobs

The scheduledAvataxDataFetchJob quartz job fetches data from the Avalara tax service and auto-deploys the data to stores in the organization.

<bean id="scheduledAvataxDataFetchJob_1000" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
      <property name="jobClass" value="com.micros_retail.xcenter.integration.IntegrationJob" />
      <property name="jobDataAsMap">
        <map>
            <entry key="category" value="INTEGRATION"/>
            <!--  The value of this property should be the same as the bean name for the relevant scheduledAvataxDataFetchTask  -->
            <entry key="integrationConfigId" value="scheduledAvataxDataFetchTask" />
        </map>
      </property> 
      <property name="durability" value="true"/>
      <property name="requestsRecovery" value="true"/>
      <property name="description" value="Scheduled fetch Tax Data from Avalara"/>
    </bean>

The ExecScheduledAvataxDataFetchTask quartz job is the integration task that fetches the Avalara tax data and propagates it to stores of the organization.

<bean id="scheduledAvataxDataFetchTask_1000" class="com.micros_retail.xcenter.avatax.ExecScheduledAvataxDataFetchTask">
      <property name="organizationId" value="1000" />
      <property name="avataxProperties" ref="avataxProperties" />
    </bean>

The scheduledAvataxDataFetchTrigger quartz job schedules the job to trigger on a certain date and time.

<bean id="scheduledAvataxDataFetchTrigger_1000" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
      <property name="jobDetail" ref="scheduledAvataxDataFetchJob_1000" />
      <!-- Configured to run on 25th of every month at 21:00. -->
      <property name="cronExpression" value="0 0 21 25 * ?" />
      <!-- Timezones are set to UTC/GMT and cronExpressions are expected to represent that time. -->
      <property name="timeZone" value="UTC" />
    </bean>