> For the complete documentation index, see [llms.txt](https://docs.keyfax.biz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keyfax.biz/integrations/host-systems/activeh-desktop/keyfax-configuration/example-settings.md).

# Example Settings

Configuration settings are published for information purposes only. Unless express consent has been granted, changes to configuration settings must only be made by Omfax Systems/Touch-Base Ltd technicians or their representatives.

### Example 1 (put current user code in startup.xml)

```
<MapIn>
  <MISRequest
   obj="CGateway"
   target="UserName"
   type="NA"
   source="UserID"
   sql="SELECT Username_VC FROM Shared_Users_T (nolock) WHERE User_ID = [value]" />
</MapIn>
```

This example does following:

1. Get the value contained in the `UserID` property of the `CGateway` object.
2. Use this value in the WHERE clause of the SQL statement replacing the \[value] bookmark.
3. Execute the SQL statement against the SQL ActiveH SQL Server database.
4. Put the returned value in the `<UserName>` element of the Keyfax start-up XML.

### Example 2 (get SOR code from export.xml and assign the ScheduleID property of a CRQTask object)

```
<MapOut>
  <MISTask
   obj="CRQTask"
   target="ScheduleID"
   dtype="int"
   length="4"
   type="RD"
   KFparent="Repair"
   KFsource="RepairCode"
   KFsourceType="MIS_REPAIR"
   sql="SELECT SOR_ID FROM dbo.Shared_SORs_T WHERE SOR_Code_VC = '[value]'" />
</MapOut>
```

This example does following:

1. Get the value contained in the `<Fault><Repair><RepairCode>` element of the export XML.
2. Use this value in the WHERE clause of the SQL statement replacing the \[value] bookmark.
3. Execute the SQL statement against the SQL ActiveH SQL Server database.
4. Put the returned value in the `ScheduleID` property of a new `CRQTask` object in the MIS-AMS Repairs Request object.

### Example 3 (get the description from the export.xml ActionCodeDesc and FaultText and use as a Repair Request Inspection description)

```
<MapOut>
  <!--  MIS REPAIR INSPECTION -->
  <MISTask
   obj="CRQInspection"
   target="Description"
   dtype="varchar"
   length="1500"
   type="RD"
   KFparent="Action"
   KFsource="ActionCodeDesc"
   KFsourceType="MIS_INSPECTION"
   sql="" />
  <MISTask
   obj="CRQInspection"
   target="Description.APPEND"
   dtype="varchar"
   length="1500"
   type="RD"
   KFparent=""
   KFsource="FaultText"
   KFsourceType="MIS_INSPECTION"
   sql="" />
</MapOut>
```

This example does following:

1. Get the value contained in the `<Fault><Action><ActionCode>` element of the export XML.
2. Put the returned value in the Description property of a `CRQInspection` object in the MIS-AMS Repairs Request object.
3. Get the value contained in the `<Fault><FaultText>` element of the export XML.
4. Append the returned value to the Description property of a CRQInspection object in the MIS-AMS Repairs Request object.

### Example 4 (write a constant value to a CRM Desktop Task object)

```
<MapOut>
  <!--  MIS EMAIL TASK -->
  <MISTask
   obj="CTSKTask"
   target=""
   dtype=""
   length=""
   type="FL"
   KFparent="Action"
   KFsource="ActionCode"
   KFsourceType="MIS_EMAIL"
   sql="">
     <MISTask
      obj="CTSKTask"
      target="SystemTask"
      dtype="bit"
      length="1"
      type="FL"
      KFparent=""
      KFsource="1"
      KFsourceType="VALUE"
      sql="" />
  </MISTask>
  <MISTask ...... />
</MapOut>
```

This example does following:

1. As with all CRM tasks, there may be multiple Task objects to create, therefore `<MISTask>` elements need to be nested.
2. A new `CTSTask` object is created with the `<MISTask>` element (by using without a target property) for each created Keyfax "Enquiry.Action".
3. All first generation `<MISTask>` child elements instruct Keyfax to write to the current CTSTask object.
4. The SystemTask property of the current CTSTask object is set to a constant value (defined by the `KFsourceType="VALUE"`) which is supplied in the KFsource parameter (`KFsource="1"`).

### Example 5 (write to the SetGatewayValue method of a CRM Desktop Task object)

```
<MapOut>
  <!--  MIS EMAIL TASK -->
  <!-- These are the UDEs -->
  <MISTask
   obj="CTSKTask"
   target=""
   dtype=""
   length=""
   type="FL"
   KFparent="Action"
   KFsource="ActionCode"
   KFsourceType="MIS_EMAIL"
   sql="">
     <MISTask
      obj="CTSKTask"
      target="SetGatewayValue"
      dtype=""
      length=""
      type="FL"
      KFparent="SubAction"
      KFsource="SubActionValue"
      KFsourceType="MIS_GATEWAY_VALUE"
      sql="">
        <MISTask
         obj="CTSKTask"
         target="SetGatewayValue.FieldName"
         dtype="varchar"
         length="256"
         type="FL"
         KFparent="SubAction"
         KFsource="SubActionKey"
         KFsourceType="MIS_GATEWAY_VALUE"
         sql="" />
        <MISTask
         obj="CTSKTask"
         target="SetGatewayValue.Value"
         dtype="varchar"
         length="255"
         type="FL"
         KFparent="SubAction"
         KFsource="SubActionValue"
         KFsourceType="MIS_GATEWAY_VALUE"
         sql="" />
     </MISTask>
  </MISTask>
</MapOut>
```

This example does following:

1. As with all CRM tasks, there may be multiple Task objects to create therefore MISTask elements need to be nested.
2. A new CTSTask object is created with the `<MISTask>` element (by using without a target property) for each created Keyfax "Enquiry.Action".
3. All "first generation" `<MISTask>` child elements instruct Keyfax to write to the current CTSTask object.
4. The SetGatewayValue method of the current CTSTask object requires two parameters these are defined in additional `<MISTask>` child elements.
5. The "second generation" `<MISTask>` child elements instruct Keyfax to write to the current CTSTask SetGatewayValue method parameters.
6. The first "second generation" `<MISTask>` child element gets the value contained in the `<Enquiry><SubAction><SubActionKey>` element of the export XML, then writes it to the SetGatewayValue.FieldName parameter.
7. The second "second generation" `<MISTask>` child element gets the value contained in the `<Enquiry><SubAction><SubActionValue>` element of the export XML, then writes it to the SetGatewayValue.Value parameter.

### Example 6 (write to the SetGatewayValueEx method of a CRM Repair Request Task)

```
<MapOut>
...
...
  <!-- These are the UDEs -->
   <MISTask obj="CRQTask" target="SetGatewayValue" dtype="" length="" type="RD" KFparent="Repair" KFsource="" KFsourceType="MIS_GATEWAY_VALUE" sql="">

<MISTask obj="CRQTask" target="SetGatewayValue.FieldName" dtype="varchar" length="256" type="RD" KFparent="" KFsource="HealthAndSafety" KFsourceType="MIS_GATEWAY_VALUE" sql="" />
<MISTask obj="CRQTask" target="SetGatewayValue.Value" dtype="bit" length="1" type="RD" KFparent="Fault" KFsource="//Nominal_Code" KFsourceType="MIS_GATEWAY_VALUE" sql="" />

</MISTask>
...
...

</MapOut>
```

This example does following:

1. The `SetGatewayValue` method of the current `CRQTask` object requires two parameters these are defined in additional `<MISTask>` child elements. In reality, just for the Repairs Request object this calls a method `SetGatewayValueEx` (this does not need to be considered when setting up the exchange parameters above!).
2. In the example above, `HealthAndSafety` is the name of the **target** (despite being held in the `KFsource` attribute) within the Gateway
3. **`Nominal_Code`** happens to be a re-use of an export element; the contents of this (one or zero) will be stored in the `HeathAndSafety` field.
