| <?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. |
| --> |
| |
| <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> |
| <simple-method method-name="cdynePostalAddressFillInCounty" short-description="Cdyne PostalAddress Fill In County"> |
| <entity-one entity-name="PostalAddress" value-field="postalAddress"/> |
| <log level="verbose" message="In cdynePostalAddressFillInCounty contactMechId=${parameters.contactMechId}; postalAddress=${postalAddress}"/> |
| <if> |
| <condition> |
| <and> |
| <not><if-empty field="postalAddress"/></not> |
| <!-- Make sure this address in the USA, required for this CDyne service --> |
| <if-compare field="postalAddress.countryGeoId" operator="equals" value="USA"/> |
| <if-empty field="postalAddress.countyGeoId"/> |
| </and> |
| </condition> |
| <then> |
| <set field="cdyneReturnCityStateMap.zipcode" from-field="postalAddress.postalCode"/> |
| <call-service service-name="cdyneReturnCityState" in-map-name="cdyneReturnCityStateMap"> |
| <results-to-map map-name="cdyneResultMap"/> |
| </call-service> |
| <log level="verbose" message="Got result from CDyne service: ${cdyneResultMap}"/> |
| |
| <!-- Now try to find the county based on what was returned --> |
| <entity-condition entity-name="GeoAssocAndGeoTo" list="geoList"> |
| <condition-list combine="and"> |
| <!-- Make sure that we find the county within the proper state to avoid name conflicts --> |
| <!-- In the USA the 2 letter state abbreviation is the geoId --> |
| <condition-expr field-name="geoIdFrom" from-field="cdyneResultMap.StateAbbrev"/> |
| <condition-expr field-name="geoAssocTypeId" value="REGIONS"/> |
| <condition-expr field-name="geoTypeId" value="COUNTY"/> |
| <condition-list combine="or"> |
| <condition-expr field-name="abbreviation" from-field="cdyneResultMap.County"/> |
| <condition-expr field-name="geoName" from-field="cdyneResultMap.County" ignore-case="true"/> |
| </condition-list> |
| </condition-list> |
| </entity-condition> |
| <first-from-list list="geoList" entry="countyGeo"/> |
| <if-not-empty field="countyGeo"> |
| <!-- We found a county, now just save off the ID --> |
| <set field="postalAddress.countyGeoId" from-field="countyGeo.geoId"/> |
| <store-value value-field="postalAddress"/> |
| </if-not-empty> |
| </then> |
| </if> |
| </simple-method> |
| </simple-methods> |