- Use an XML editor open the siebel_meta_info.xml file and then locate the following object:
<object TypeId="Action"
- Remove the following code from the object you located in Step 1:
<master_filter_expr>
<![CDATA[
[Private] IS NULL OR [Private] = 'N'
]]>
</master_filter_expr>
This filter prevents CRM Desktop from synchronizing private activities.
- Save your changes and then close the siebel_meta_info.xml file.
- Use a JavaScript editor to open the sb_helpers.js file.
- Locate the following code in the check_sharing_possibility function:
if (helpers.get_defaults(ctx.session) == null) message = "msg_absent_first_sincronization_share";
else if (check_offline && !is_online(ctx)) message = "msg_cant_share_in_offline";
else if (item.type_id != "Mail" && item.snapshot.Private) message = "msg_cant_sync_private";
If CRM Desktop attempts to share a private calendar appointment, then the Private flag in this code creates an error.
- Replace the code you located in Step 5 with the following code:
if (helpers.get_defaults(ctx.session) == null) message = "msg_absent_first_sincronization_share";
else if (check_offline && !is_online(ctx)) message = "msg_cant_share_in_offline";
//else if (item.type_id != "Mail" && item.snapshot.Private)
//message = "msg_cant_sync_private";
Commenting the last two lines of this code prevents CRM Desktop from creating an error if it attempts to share a private calendar appointment.
- Save your changes and then close the sb_helpers.js file.
- Use a JavaScript editor to open the forms.js file.
- Locate the following code in the ol_item_form function:
if (!is_mail)
{
ctx.validator.add_custom(function(validate_ctx) {
return !(shared() && validate_ctx.snapshot()["Private"]) }, null,"msg_cant_sync_private");
}
This code validates that CRM Desktop cannot share a private calendar appointment. You must disable it.
- Replace the code you located in Step 9 with the following code:
/*
if (!is_mail)
{
ctx.validator.add_custom(function(validate_ctx) {
return !(shared() && validate_ctx.snapshot()["Private"]) }, null, "msg_cant_sync_private");
}
*/
- Save your changes and then close the forms.js file.
- Use a JavaScript editor to open the business_logic.js file, and then locate the following code:
if (ol.item_ex().get_property("Private") == true || ignore_ol_item(ol)).
This code determines if the private flag is set. If this flag is set, then this code stops CRM Desktop from processing.
- Replace the code you located in Step 12 with the following code:
if (ignore_ol_item(ol))
- Save and test your changes, and then republish the customization package.