Microsoft Dynamics CRM 2016/365 переключение стадии ленты между сущностями
- Алексей
- Комментариев нет
Для переключения этапов (стадий) ленты с помощью JavaScript (JS) можно использовать метод:
Xrm.Page.data.process.moveNext(callbackFunction);
Но при необходимости переключить стадию ленты между сущностями данным методом мы получаем значение crossEntity, что говорит нам о невозможности использовать его для данного случая.
Однако есть возможность использовать SOAP запрос, который поможет нам преодолеть данное ограничение:
function navigateToNextStage(processId, nextActiveStageId, currentEntName, currentEntId, nextEntName, nextEntId, traverPath, openNext) { /// <summary>Переключает стадию ленты между сущностями /// <field name="processId">Идентификатор ленты</field> /// <field name="nextActiveStageId">Стадия на которую переключаем</field> /// <field name="currentEntName">Тип текущей записи</field> /// <field name="currentEntId">Идентификатор текущей записи</field> /// <field name="nextEntName">Тип следующей записи</field> /// <field name="nextEntId">Идентификатор следующе записи</field> /// <field name="traverPath">Путь - через запятую указать перую стадию ленты и стадию на которую переключаем</field> /// <field name="openNext">Открыть следующую запись</field> var serverUrl = Xrm.Page.context.getClientUrl(); serverUrl += "/XRMServices/2011/Organization.svc/web"; var requestXML = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">"; requestXML += "<s:Body>"; requestXML += "<Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">"; requestXML += "<request xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\">"; requestXML += "<a:Parameters xmlns:b=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>ProcessId</b:key>" requestXML += "<b:value i:type=\"c:guid\" xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + processId + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>NewActiveStageId</b:key>"; requestXML += "<b:value i:type=\"c:guid\" xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + nextActiveStageId + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>CurrentEntityLogicalName</b:key>"; requestXML += "<b:value i:type=\"c:string\" xmlns:c=\"http://www.w3.org/2001/XMLSchema\">" + currentEntName + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>CurrentEntityId</b:key>"; requestXML += "<b:value i:type=\"c:guid\" xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + currentEntId + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>NextEntityLogicalName</b:key>"; requestXML += "<b:value i:type=\"c:string\" xmlns:c=\"http://www.w3.org/2001/XMLSchema\">" + nextEntName + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>NextEntityId</b:key>"; requestXML += "<b:value i:type=\"c:guid\" xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + nextEntId + "</b:value>" requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "<a:KeyValuePairOfstringanyType>"; requestXML += "<b:key>NewTraversedPath</b:key>"; requestXML += "<b:value i:type=\"c:string\" xmlns:c=\"http://www.w3.org/2001/XMLSchema\">" + traverPath + "</b:value>"; requestXML += "</a:KeyValuePairOfstringanyType>"; requestXML += "</a:Parameters>"; requestXML += "<a:RequestId i:nil=\"true\" />"; requestXML += "<a:RequestName>NavigateToNextEntity</a:RequestName>"; requestXML += "</request>"; requestXML += "</Execute>"; requestXML += "</s:Body>"; requestXML += "</s:Envelope>"; var req = new XMLHttpRequest(); req.open("POST", serverUrl, false); req.setRequestHeader("Accept", "application/xml, text/xml, */*"); req.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute"); req.send(requestXML); if (openNext) Xrm.Utility.openEntityForm(nextEntName, nextEntId); }
Комментариев нет