Manifest.xml File

The manifest.xml file describes how the contents of the Mobile Workflow package .zip file are organized.

This file must reside at the root of the Mobile Workflow .zip package. This shows the outline of what the manifest.xml file contains.

Example 1

Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<Manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AMPManifest.xsd">
  <ModuleName>…</ModuleName>
  <ModuleVersion>…</ModuleVersion> 
  <ModuleDesc>…</ModuleDesc> 
  <ModuleDisplayName>…</ModuleDisplayName> 
  <ClientIconIndex>…</ClientIconIndex> 
  <InvokeOnClient>…</InvokeOnClient> 
  <PersistAppDomain>…</PersistAppDomain>
  <MarkProcessedMessages>…</MarkProcessedMessages> 
  <DeleteProcessedMessages>…</DeleteProcessedMessages> 
  <ProcessUpdates>…</ProcessUpdates>
  <CredentialsCache>…</CredentialsCache>
  <RequiresActivation>…</RequiresActivation>

  <TransformPlugin>
    <File>WorkflowClient.dll</File>
    <Class>Sybase.UnwiredPlatform.WorkflowClient.Transformer</Class>
  </TransformPlugin>

  <ResponsePlugin>
    <File>WorkflowClient.dll</File>
    <Class>Sybase.UnwiredPlatform.WorkflowClient.Responder</Class>
  </ResponsePlugin>

  <ClientWorkflows>
    <WindowsMobileProfessional>
      <HTMLWorkflow>
        <File>…</File>
        <HtmlFiles>        
          <HtmlFile>…</HtmlFile>        
          <HtmlFile>…</HtmlFile>        
        </HtmlFiles>
      </HTMLWorkflow>
    </WindowsMobileProfessional>
    <BlackBerry>
      <HTMLWorkflow>
        <File>…</File>
        <HtmlFiles>        
          <HtmlFile>…</HtmlFile>        
          <HtmlFile>…</HtmlFile>        
        </HtmlFiles>
      </HTMLWorkflow>
    </BlackBerry>
    <BlackBerry6>
      <HTMLWorkflow>
        <File>…</File>
        <HtmlFiles>        
          <HtmlFile>…</HtmlFile>        
          <HtmlFile>…</HtmlFile>        
        </HtmlFiles>
      </HTMLWorkflow>
    </BlackBerry6>
    <Android>
      <HTMLWorkflow>
        <File>…</File>
        <HtmlFiles>        
          <HtmlFile>…</HtmlFile>        
          <HtmlFile>…</HtmlFile>        
        </HtmlFiles>
      </HTMLWorkflow>
    </Android>
    <iPhone>
      <HTMLWorkflow>
        <File>…</File>
        <HtmlFiles>        
          <HtmlFile>…</HtmlFile>        
          <HtmlFile>…</HtmlFile>        
        </HtmlFiles>
      </HTMLWorkflow>
    </iPhone>
  </ClientWorkflows>

  <ContextVariables>  
    <ContextVariable>
      <Name>…</Name>
      <Value>…</Value>
      <Certificate>…</Certificate>
      <Password>…</Password>
    </ContextVariable>
   </ContextVariables>

  <MatchRules>
    <SubjectRegExp>…</SubjectRegExp> 
    <ToRegExp>…</ToRegExp> 
    <FromRegExp>…</FromRegExp> 
    <CCRegExp>…</CCRegExp> 
    <BodyRegExp>…</BodyRegExp> 
  </MatchRules>
</Manifest>

ModuleName

<ModuleName>SampleActivitiesModule</ModuleName>

The ModuleName defines the name of the Mobile Workflow package.

ModuleVersion

<ModuleVersion>2</ModuleVersion>

The ModuleVersion defines the version of the Mobile Workflow package.

ModuleDesc

<ModuleDesc>AMP Sample - Activities Collection</ModuleDesc>

The ModuleDesc provides a short description of the Mobile Workflow package.

ModuleDisplayName

<ModuleDisplayName>Activities Sample</ModuleDisplayName>

The name of the Mobile Workflow package that is displayed to the user in the Worfklow list on the device for Mobile Workflows that are client-invoked. When the Mobile Workflow package is deployed, you can override the DisplayName specified here with one of your own choosing.

ClientIconIndex

<ClientIconIndex>35</ClientIconIndex>

The index of the icon associated with the Mobile Workflow package. This icon is shown beside the e-mail message in the device’s Inbox listing instead of the regular e-mail icon. When the Mobile Workflow package is deployed, you can override the icon that is specified here with one of your own choosing.

InvokeOnClient

<InvokeOnClient>1</InvokeOnClient>

Specifies whether this Mobile Workflow can be used without an associated e-mail. 1 = true, 0 = false. If 1 is specified, the Mobile Workflow is shown in the Workflow list on the device and can be used without the context of an e-mail message.

PersistAppDomain

<PersistAppDomain>1</PersistAppDomain>

States whether this Mobile Workflow uses a persistent application domain when the .NET assembly plugin is loaded. 1 = true, 0 = false. By default, it is set to false, meaning an application domain is created and removed every time the plugin is loaded.

MarkProcessedMessages

<MarkProcessedMessages>1</MarkProcessedMessages>

Indicates whether a Workflow message shows a visual indication in the Inbox after it has been processed (1 = true, 0 = false).

Note: When a Workflow message shows a visual indication that it has been processed, the visual indication disappears if the device is re-registered, or if the device user performs a Refresh All Data action.

DeleteProcessedMessages

<DeleteProcessedMessages>1</DeleteProcessedMessages>

Indicates whether a Workflow message is deleted from the mobile device’s Inbox after it has been processed (1 = true, 0 = false).

Note: You cannot set both DeleteProcessedMessages and MarkProcessedMessages to true (1). To set MarkProcessedMessages to true, you must set DeleteProcessedMessages to false (0) as shown:
<MarkProcessedMessages>1</MarkProcessedMessages> 
  <DeleteProcessedMessages>0</DeleteProcessedMessages>

ProcessUpdates

<ProcessUpdates>1</ProcessUpdates>

Indicates whether Workflow messages associated with this Workflow package that are already delivered to the device can be updated from the server with modified content. (1 = true, 0 = false). By default, this is set to false (0).

CredentialsCache

<CredentialsCache key="activity_credentials>1</CredentialsCache>

Specifies whether a Workflow requires credentials (1 = true, 0 = false). Different Workflows can specify different credentials keys. Workflows with the same credentials key share that set of credentials. In the case of shared credentials, they are requested only once by the Workflow that is launched first.

RequiresActivation

<RequiresActivation key=”shared_credentials_key”>1</RequiresActivation>

Specifies whether a workflow requires activation (1 = true, 0 = false). If set to true, the screen defined in the ActivationScreen tag is displayed the very first time the workflow is launched, before the default screen is displayed.

If the Activation Screen contains credentials controls (and the workflow requires credentials), the values are updated to the Credentials Cache automatically, without further prompting, with the specified Credentials Screen.

Different workflows can specify different activation keys. Workflows with the same activation key share their activation status. For example, if Workflow A and Workflow B both specify an activation key of AB (using the key attribute on the RequiresActivation tag), when Workflow A gets activated, it also activates Workflow B so that when Workflow B is invoked for the very first time, its activation screen is not seen; it goes directly to the default screen.

TransformPlugin

<TransformPlugin> <File/> <Class/> </TransformPlugin>

Describes the server module implemented as a .NET assembly that implements the IMailProcessor interface. This module is responsible for processing the intercepted e-mail message before it gets delivered to the device.

Inner tags

<File shared=”true”>WorkflowClient.dll</File> The path, including the filename of the assembly that implements the IMailProcessor interface. The path is relative to the zip package. If the shared property is present and set to true, the DLL is located in the <UnwiredPlatform_InstallDir>\Servers\MessagingServer\bin folder (installed by an external process) and all workflows using that DLL will use the same version of the DLL. If the shared property is not present, or is present and is set to false, each workflow will use its own version of that DLL in the Workflow’s own folder.

<Class>Sybase.UnwiredPlatform.WorkflowClient.Transformer</Class> The .NET Type in the assembly that implements the IMailProcessor interface.

ResponsePlugin

<ResponsePlugin> <File/> <Class/> </ResponsePlugin>

Describes the server module implemented as a .NET assembly that implements the IResponseProcessor interface. This module is responsible for processing the response from the device.

Inner tags

<File shared=”true”>WorkflowClient.dll</File> The path, including the filename, of the assembly that implements the IResponseProcessor interface. The path is relative to the Mobile Workflow .zip package. If the shared property is present and set to true, the DLL is expected to be located in the <UnwiredPlatform_InstallDir>\Servers\MessagingServer\bin folder (installed by an external process), and all workflows using that DLL will use the same version of the DLL. If the shared property is not present, or is present and set to false, each workflow will use its own version of that DLL in the Workflow’s own folder.

<Class>Sybase.UnwiredPlatform.WorkflowClient.Responder</Class> The .NET Type in the assembly that implements the IResponseProcessor interface.

ClientWorkflows

<ClientWorkflows> 
  <WindowsMobileProfessional>
    <HTMLWorkflow>
      <File>…</File>
      <HtmlFiles>        
        <HtmlFile>…</HtmlFile>        
        <HtmlFile>…</HtmlFile>        
      </HtmlFiles> 
    </HTMLWorkflow>
  </WindowsMobileProfessional> 
  <BlackBerry>
    <HTMLWorkflow>
      <File>…</File>
      <HtmlFiles>        
        <HtmlFile>…</HtmlFile>        
        <HtmlFile>…</HtmlFile>        
      </HtmlFiles> 
    </HTMLWorkflow>
  </BlackBerry> 
  <BlackBerry6>
    <HTMLWorkflow>
      <File>…</File>
      <HtmlFiles>        
        <HtmlFile>…</HtmlFile>        
        <HtmlFile>…</HtmlFile>        
      </HtmlFiles> 
    </HTMLWorkflow>
  </BlackBerry6> 
  <iPhone>
    <HTMLWorkflow>
      <File>…</File>
      <HtmlFiles>        
        <HtmlFile>…</HtmlFile>        
        <HtmlFile>…</HtmlFile>        
      </HtmlFiles> 
    </HTMLWorkflow>
  </iPhone> 
  <Android>
    <HTMLWorkflow>
      <File>…</File>
      <HtmlFiles>        
        <HtmlFile>…</HtmlFile>        
        <HtmlFile>…</HtmlFile>        
      </HtmlFiles> 
    </HTMLWorkflow>
  </Android> 
</ClientWorkflows>

This section of the manifest.xml file describes the supported device platforms for the Mobile Workflow and the corresponding client module to use for each platform.

Inner tags

<File>…</File>

Contains a reference to an XML file. That XML file should have contents similar to this:
<?xml version="1.0" encoding="utf-8"?>
<widget>
  <screens src="html/myAndroidWorkflow.html" default="Start_Screen">
    <screen key="html/myAndroidWorkflow.html">
    </screen>
  </screens>
</widget>

The referenced HTML file must be present in the list of HtmlFiles tags that follow and must also be present in the Mobile Workflow .zip package.

<HtmlFile>…</HtmlFile>

Indicates that the named file (html/js/API.js, html/myAndroidWorkflow.html) will be used on the specified platform. The referenced file must be present in the Mobile Workflow .zip package.

ContextVariables

<ContextVariables>...</ContextVariables>

Describes the collection of context variables that will be made available to the methods in the IMailProcessor and IResponseProcessor interfaces. When the Mobile Workflow package is deployed by the administrator, the Display Name that is specified here can be overriden with one of their own choosing.

<ContextVariables >
<ContextVariable> 
<Name/> 
<Value/> 
<Certificate/> 
<Password/> 
</ContextVariable> 
Describes a context variable that will be made available to the methods in the IMailProcessor and IResponseProcessor interfaces. When Administrators deploy a Mobile Workflow package, they have the ability to override the value of the context variable that is specified here.

It is good practice for developers of Mobile Workflows to provide sufficient documentation so that Administrators can knowledgeably edit a context variable’s value as necessary. Context variables are a good place to store configuration information that will likely change between development and production environments.

Inner tags

<Name>OutputFolder</Name> The name of the context variable. This is the key used to retrieve the value of the context variable in the methods defined in the IMailProcessor and IResponseProcessor interface.

Note: The value of the <Name> tag supports single-byte characters only.

<Value>C:\ActivitiesSampleOutput</Value> The value of the context variable. When Administrators deploy a Mobile Workflow, they have the ability to override the value of the context variable that is specified here.

Note: The value of the <Value> tag supports single-byte, double-byte, or both, characters.

<Certificate>false</Certificate> Indicates whether this context variable is a Base64 string representation of an X.509 certificate. If this value is set to true, Sybase Control Center displays a dialog specific to selecting an X.509 certificate.

<Password>false</Password> Indicates whether this context variable is a password. If set to true, the value is displayed as asterisks in the Sybase Control Center console.

MatchRules

<MatchRules>...</MatchRules>

Describes the collection of match rules that will be used to determine if an e-mail message should be sent to a TransformPlugin server module for processing. When Administrators deploy a Mobile Workflow, they have the ability to Add, Delete and /or override the Match Rules that are specified here.

<MatchRule>... </MatchRule> Describes a single match rule.

Note: The value of the <MatchRule> tag supports double-byte characters.

Inner tags

<SubjectRegExp>…</SubjectRegExp> The value to test for against the "Subject" line of an e-mail message.

<ToRegExp>…</ToRegExp> The value to test for against the "To" line of an e-mail message.

<FromRegExp>…</FromRegExp> The value to test for against the "From" line of an e-mail message.

<CCRegExp>…</CCRegExp> The value to test for against the "CC" line of an e-mail message.

<BodyRegExp>…</BodyRegExp> The value to test for against the <Body> text of an e-mail message.