When designing a SharePoint Designer workflow for a Dutch site, an error occurred when I used a language specific **Start Approval Process **action. The error only tells you that the workflow will not work: “Errors in the workflow prevent it from functioning correctly”. It only highlights the Approval Process in red.
“Het process Goedkeuring voor Current Item met Elst starten” is Dutch for: “Start Approval process on Current Item with Elst”.
Digging deeper in the Approval process action, revealed that the problem lies in a Log to History List action.
In the Log to History List action three field values got an incorrect field reference. These incorrect field references are displayed with the following value: [%.ReturnValue%].
The following solution were tested for the Dutch (1043) and French (1036) language packs.
Solution 1: Manual Steps in SharePoint Designer
This step requires some manual steps that will need to be done each time you use a language specific Start Approval Process action.
- Open SharePoint Designer 2010;
- Open your workflow in editor mode;
- Click on the Approval process action, this will open the task process;
- In the task process window, under the **Customization section, click ** Change the behavior of a single task;
- Search the Log to History List action that causes the error. This can be done by clicking on the Check for Errors button;
- Click on the Log message;
- Manually add new field references for the Assigned To, External Participant, and DueDateTime fields. First remove the [%.ReturnValue%], click on the Add or Change Lookup button. In the Data source select Current Task: Approval (Language Specific), in the Field from source select the correct field reference;
- When you have added the new field references you should have something like this:
- Re-check for errors and you should receive the following message:
- Publish your workflow.
Solution 2: Change Field ID’s in the Workflow XML
This solution requires that you change the moss.actions xml file for a specific language in the SharePoint root folder. If you do not want to modify any of the SharePoint root files, I recommend you to follow the first solution.
When I investigated the moss.actions file for the English, Dutch and French language packs, I noticed that the field ID’s in the Dutch and French version, were different than those in the English version.
In the English version the following ID’s are used:
Assigned To: ID11465
External Participant: ID11467
DueDateTime: ID11469 In the Dutch and French version the ID’s are different:
Assigned To: ID11158
External Participant: ID11160
DueDateTime: ID11162 Follow the next steps to change these ID values.
- Navigate to the following location on your SharePoint server: SharePoint Root\TEMPLATE**<LANGUAGE CODE>**\Workflow;
- Make a copy of the moss.actions file.
- Open the moss.actions file in a text editor;
- Do a search with the following string: x:Name=“ID11464”;
- In this XML Node change the **ID11158 **-> ID11465, ID11160 -> ID11467, and ID11162 -> ID11469;
- Save the moss.actions file;
- Do an IISRESET;
- Open your site in SharePoint Designer 2010;
- Open or create a new workflow and add the language specific Start Approval Process action;
- Click on the Approval process;
- Check the Log to History List action that caused the error. This should contain the correct field references.