本篇文章给大家谈谈SAPMarketingEngagementManagement,同时本文还将给你拓展ApplicationSecurityPer-Engagement、Dynamics365Cus
本篇文章给大家谈谈SAP Marketing Engagement Management,同时本文还将给你拓展Application Security Per-Engagement、Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法、Dynamics 365 Customer Engagement 中使用 JavaScript 和 C# 调用操作 Action 示例、Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- SAP Marketing Engagement Management
- Application Security Per-Engagement
- Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
- Dynamics 365 Customer Engagement 中使用 JavaScript 和 C# 调用操作 Action 示例
- Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
SAP Marketing Engagement Management
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
本文同步分享在 博客“汪子熙”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Application Security Per-Engagement
1、 an sqli vulnerability will allow you to do the following
- query the database using select statement forezample users table. you might get the password or usersname
- Bypass the login page executing successfuly query results
- Execute system commands in the database in oreder compromise the web server
- Execute inserts.delete commands to manipulate the records in the database
2、Command Injection
we can append other commands after the variable and the application will be to execute it for us,my goal is to make the backend execute someting like this [nslookup [domain name variable ] && [other command ]
3、Owasp top 10
Injection-----> when a attacker can inject and execute a custom command in the backend because of missing sanitization,besides it,command Injection are more like LDAP、XPath、Nosqlo XML Parsers、STMTP Header
broken Authentication ------> a hacker finds the user‘s idntity,credentials bouth name and password or web session
Sesitive Data 、 XML External Entities \ broken Access Control \ Security Misconfig \Cross-site Scripting \ Insecure Deserialization \ Using Components with kNow vulnerability\ Insufficient logging
4、邮件信息收集
theharverster -d [目标网络域名地址] -l [邮件地址数量] -b [使用的搜索的公共知识库] eg : theharvester -d yalong.cn -l 20 -b baidu
5、 use Whois search DNS and ip register name and phone number and email
step one we can use the Whois.net the url: http:www.whois.net or another website is NetCraft the url :https://www.netcraft.com/
step two: use the command whois,the screenshout as follow
another wegit tools is host it can translate ip to hostname
nslookup id find DNS
Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
微软动态CRM专家罗勇 ,回复300或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。
安装好Dynamics 365 Customer Engagement V9 并配置IFD后发现活动源功能有问题,如下报错,咋回事呢?
我跟踪了一下,是执行下面这个FetchXml报错Generic SQL error,从字符串转换日期和/或时间时,转换失败。
<fetch version=''1.0'' output-format=''xml-platform'' mapping=''logical'' distinct=''false''>
<entity name=''msdyn_wallsavedqueryusersettings''>
<attribute name=''msdyn_wallsavedqueryusersettingsid'' />
<attribute name=''msdyn_wallsavedqueryid'' />
<attribute name=''msdyn_savedqueryname'' />
<attribute name=''msdyn_entityname'' />
<attribute name=''msdyn_otc'' />
<attribute name=''msdyn_entitydisplayname'' />
<attribute name=''msdyn_isvisible'' />
<attribute name=''msdyn_isvirtual'' />
<attribute name=''msdyn_default'' />
<filter type=''and''>
<condition attribute=''msdyn_userid'' operator=''eq-userid'' />
<condition attribute=''msdyn_isvirtual'' operator=''eq'' value=''1'' />
<condition attribute=''msdyn_isvisible'' operator=''eq'' value=''1'' />
<condition attribute=''msdyn_isfollowing'' operator=''eq'' value=''1'' />
<condition attribute=''msdyn_includewallinresponse'' operator=''eq'' value=''1'' />
</filter>
</entity>
</fetch>
具体错误信息如下:
>Crm Exception: Message: Generic SQL error., ErrorCode: -2147204784, InnerException: System.Data.SqlClient.SqlException (0x80131904): 从字符串转换日期和/或时间时,转换失败。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
在 Microsoft.Crm.CrmDbConnection.InternalExecuteWithRetry[TResult](Func`1 ExecuteMethod, IDbCommand command)
在 Microsoft.Crm.CrmDbConnection.<>c__DisplayClass104_0.<InternalExecuteReader>b__0()
在 Microsoft.PowerApps.CoreFramework.ActivityLoggerExtensions.Execute[TResult](ILogger logger, EventId eventId, ActivityType activityType, Func`1 func)
在 Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute[TResult](ILogger logger, XrmTelemetryActivityType activityType, Func`1 func)
在 Microsoft.Crm.CrmDbConnection.InternalExecuteReader(IDbCommand command, Nullable`1 commandBehavior, Int32 sourceLineNumber, String memberName, String sourceFilePath)
在 Microsoft.Crm.CrmDbConnection.ExecuteReader(IDbCommand command, Boolean impersonate, Int32 sourceLineNumber, String memberName, String sourceFilePath)
在 Microsoft.Crm.Platform.Server.DataEngine.SqlDataAccessManager.<>c__DisplayClass1_0.<ExecuteQuery>b__0()
在 Microsoft.PowerApps.CoreFramework.ActivityLoggerExtensions.Execute[TResult](ILogger logger, EventId eventId, ActivityType activityType, Func`1 func)
在 Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute[TResult](ILogger logger, XrmTelemetryActivityType activityType, Func`1 func)
在 Microsoft.Crm.Platform.Server.DataEngine.SqlDataAccessManager.ExecuteQuery(CrmDbConnection dbConnection, IDbCommand command, ISqlExecutionContext context, Nullable`1 commandTimeout)
在 Microsoft.Crm.BusinessEntities.BusinessProcessObject.ExecuteQuery(CrmDbConnection dbConnection, IDbCommand command, ExecutionContext context)
在 Microsoft.Crm.Common.ObjectModel.PostService.PopulatePostCollection(CrmDbConnection sqlconn, ExecutionContext context, OrderedDictionary posts, IDbCommand command, CounterList populatePost, Int32 commentsPerPost)
在 Microsoft.Crm.Common.ObjectModel.PostService.RetrievePosts(Guid entityId, Int32 entityType, Boolean includeFollowing, Int32 pageNumber, Int32 pageSize, Int32 commentsPerPost, DateTime startDate, DateTime endDate, OptionSetValue type, OptionSetValue source, ExecutionContext context, CounterList retrievePostCounterList, Boolean sortDirection)
在 Microsoft.Crm.Common.ObjectModel.PostService.RetrievePersonalWall(Int32 pageNumber, Int32 pageSize, Int32 commentsPerPost, DateTime startDate, DateTime endDate, OptionSetValue type, OptionSetValue source, ExecutionContext context, Boolean sortDirection)
ClientConnectionId:7d3ba9cf-74cf-4755-986c-8c1e14daa019
Error Number:241,State:1,Class:16
[2019-01-20 12:20:22.486] Process: w3wp |Organization:baef5a31-596a-4c7c-a403-e62abe40e04c |Thread: 25 |Category: Platform.Sdk |User: 7475738e-0cca-4e09-bf17-e163fcf1cdcd |Level: Error |ReqId: ea978444-0c29-4067-896a-f5cb421f7f1b |ActivityId: 2117c671-4e6f-4e88-8f56-ccc3e33cae64 | VersionedPluginProxyStepBase.Execute ilOffset = 0x7
at VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) ilOffset = 0x7
at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action, PipelineExecutionContext context) ilOffset = 0x83
at <>c__DisplayClass2_1.<Execute>b__0() ilOffset = 0x84
at ActivityLoggerExtensions.Execute(ILogger logger, EventId eventId, ActivityType activityType, Action action) ilOffset = 0x49
at XrmTelemetryExtensions.Execute(ILogger logger, XrmTelemetryActivityType activityType, Action action) ilOffset = 0x12
at Pipeline.Execute(PipelineExecutionContext context) ilOffset = 0x127
at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action, PipelineExecutionContext context) ilOffset = 0x32
at MessageProcessor.Execute(PipelineExecutionContext context) ilOffset = 0x237
at InternalMessageDispatcher.Execute(PipelineExecutionContext context) ilOffset = 0x104
at ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, Guid callerRegardingObjectId, Int32 invocationSource, Version endpointVersion, OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest) ilOffset = 0x33D
at OrganizationSdkServiceInternal.DispatchRequest(OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest, SdkResponseDescription responseDescription, SdkPerformanceCounterContext sdkPerformanceCounterContext) ilOffset = 0x6
at OrganizationSdkServiceInternal.ExecuteRequestRequestWithInstrumentation(OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest) ilOffset = 0xCD
at <>c__DisplayClass17_0.<ExecuteRequest>b__0() ilOffset = 0xAA
at ActivityLoggerExtensions.Execute(ILogger logger, EventId eventId, ActivityType activityType, Func`1 func) ilOffset = 0x43
at XrmTelemetryExtensions.Execute(ILogger logger, XrmTelemetryActivityType activityType, Func`1 func) ilOffset = 0x0
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, UserAuth userAuth, Guid targetUserId, Guid targetCallerRegardingObjectId, UserType targetUserType, OrganizationContext context, Boolean returnResponse, Boolean checkAdminMode) ilOffset = 0x11E
at OrganizationSdkServiceInternal.ExecuteRequestInternal(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x7F
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x60
at OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x1B
at InprocessServiceProxy.ExecuteCore(OrganizationRequest request) ilOffset = 0x20
at WallSavedQueryUserSettings.IncludeWallInResponse(PluginContext context, Guid userId, IEnumerable`1 wallSavedQueryUserSettings) ilOffset = 0x108
at WallSavedQueryUserSettings.ExecutePostRetrieveMultple(PluginContext context) ilOffset = 0x5DD
at PluginBase`1.Execute(IServiceProvider serviceProvider) ilOffset = 0x84
at V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context) ilOffset = 0x301
at VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) ilOffset = 0x7
at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action, PipelineExecutionContext context) ilOffset = 0x83
at <>c__DisplayClass2_1.<Execute>b__0() ilOffset = 0x84
at ActivityLoggerExtensions.Execute(ILogger logger, EventId eventId, ActivityType activityType, Action action) ilOffset = 0x49
at XrmTelemetryExtensions.Execute(ILogger logger, XrmTelemetryActivityType activityType, Action action) ilOffset = 0x12
at Pipeline.Execute(PipelineExecutionContext context) ilOffset = 0x127
at PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action, PipelineExecutionContext context) ilOffset = 0x32
at MessageProcessor.Execute(PipelineExecutionContext context) ilOffset = 0x249
at InternalMessageDispatcher.Execute(PipelineExecutionContext context) ilOffset = 0x104
at ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, Guid callerRegardingObjectId, Int32 invocationSource, Version endpointVersion, OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest) ilOffset = 0x33D
at OrganizationSdkServiceInternal.DispatchRequest(OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest, SdkResponseDescription responseDescription, SdkPerformanceCounterContext sdkPerformanceCounterContext) ilOffset = 0x6
at OrganizationSdkServiceInternal.ExecuteRequestRequestWithInstrumentation(OrganizationRequest request, OrganizationInternalRequest organizationInternalRequest) ilOffset = 0xCD
at <>c__DisplayClass17_0.<ExecuteRequest>b__0() ilOffset = 0xAA
at ActivityLoggerExtensions.Execute(ILogger logger, EventId eventId, ActivityType activityType, Func`1 func) ilOffset = 0x43
at XrmTelemetryExtensions.Execute(ILogger logger, XrmTelemetryActivityType activityType, Func`1 func) ilOffset = 0x0
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, UserAuth userAuth, Guid targetUserId, Guid targetCallerRegardingObjectId, UserType targetUserType, OrganizationContext context, Boolean returnResponse, Boolean checkAdminMode) ilOffset = 0x11E
at OrganizationSdkServiceInternal.ExecuteRequestInternal(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x7F
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x60
at OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext) ilOffset = 0x1B
at OrganizationSdkService.Execute(OrganizationRequest request) ilOffset = 0x0
at ilOffset = 0xFFFFFFFF
at SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) ilOffset = 0x222
at DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) ilOffset = 0x97
at ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) ilOffset = 0x48
at MessageRpc.Process(Boolean isOperationContextSet) ilOffset = 0x65
at Wrapper.Resume(Boolean& alreadyResumedNoLock) ilOffset = 0x1B
at ThreadBehavior.ResumeProcessing(IResumeMessageRpc resume) ilOffset = 0x8
at ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) ilOffset = 0x79
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) ilOffset = 0x9
at QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() ilOffset = 0x35
at ThreadPoolWorkQueue.Dispatch() ilOffset = 0xA4
>Web Service Plug-in failed in SdkMessageProcessingStepId: {DF5B3FC1-79DB-11E0-A0F5-1CC1DE634CFE}; EntityName: none; Stage: 30; MessageName: RetrievePersonalWall; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: 调用的目标发生了异常。
在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
在 Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider)
在 Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)
在 Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
Inner Exception: System.Data.SqlClient.SqlException: 从字符串转换日期和/或时间时,转换失败。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
在 Microsoft.Crm.CrmDbConnection.InternalExecuteWithRetry[TResult](Func`1 ExecuteMethod, IDbCommand command)
在 Microsoft.Crm.CrmDbConnection.<>c__DisplayClass104_0.<InternalExecuteReader>b__0()
在 Microsoft.PowerApps.CoreFramework.ActivityLoggerExtensions.Execute[TResult](ILogger logger, EventId eventId, ActivityType activityType, Func`1 func)
在 Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute[TResult](ILogger logger, XrmTelemetryActivityType activityType, Func`1 func)
在 Microsoft.Crm.CrmDbConnection.InternalExecuteReader(IDbCommand command, Nullable`1 commandBehavior, Int32 sourceLineNumber, String memberName, String sourceFilePath)
在 Microsoft.Crm.CrmDbConnection.ExecuteReader(IDbCommand command, Boolean impersonate, Int32 sourceLineNumber, String memberName, String sourceFilePath)
在 Microsoft.Crm.Platform.Server.DataEngine.SqlDataAccessManager.<>c__DisplayClass1_0.<ExecuteQuery>b__0()
在 Microsoft.PowerApps.CoreFramework.ActivityLoggerExtensions.Execute[TResult](ILogger logger, EventId eventId, ActivityType activityType, Func`1 func)
在 Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute[TResult](ILogger logger, XrmTelemetryActivityType activityType, Func`1 func)
在 Microsoft.Crm.Platform.Server.DataEngine.SqlDataAccessManager.ExecuteQuery(CrmDbConnection dbConnection, IDbCommand command, ISqlExecutionContext context, Nullable`1 commandTimeout)
在 Microsoft.Crm.BusinessEntities.BusinessProcessObject.ExecuteQuery(CrmDbConnection dbConnection, IDbCommand command, ExecutionContext context)
在 Microsoft.Crm.Common.ObjectModel.PostService.PopulatePostCollection(CrmDbConnection sqlconn, ExecutionContext context, OrderedDictionary posts, IDbCommand command, CounterList populatePost, Int32 commentsPerPost)
在 Microsoft.Crm.Common.ObjectModel.PostService.RetrievePosts(Guid entityId, Int32 entityType, Boolean includeFollowing, Int32 pageNumber, Int32 pageSize, Int32 commentsPerPost, DateTime startDate, DateTime endDate, OptionSetValue type, OptionSetValue source, ExecutionContext context, CounterList retrievePostCounterList, Boolean sortDirection)
在 Microsoft.Crm.Common.ObjectModel.PostService.RetrievePersonalWall(Int32 pageNumber, Int32 pageSize, Int32 commentsPerPost, DateTime startDate, DateTime endDate, OptionSetValue type, OptionSetValue source, ExecutionContext context, Boolean sortDirection)
然后我跟踪了一下,发现是一个存储过程 p_RetrievePosts 执行报错,传递执行的是类似下面的SQL
exec p_RetrievePosts
@entityId=''1400DBCC-3F0B-E911-B0BF-E25A6C657829'',
@entityTypeCode=8,
@includeFollowing=1,
@currentUserId=''1400DBCC-3F0B-E911-B0BF-E25A6C657829'',
@sortDirection=0,
@type=-1,
@source=-1,
@pageNumber=1,
@pageSize=20,
@commentsPerPost=2,
@startDate=default,
@endDate=default
观察下这个存储过程的代码如下:
可以看到,起始日期和结束日期如果不传递的话,就会用默认值,但是这个默认值对于不同的数据库而言,可能会转换成日期时间会失败。
找到这个就很简单了,可以解决的。更改下这个存储过程,将startDate参数的默认值改成 1900-01-01,endDate参数的默认值改成 9999-12-31 ,然后就可以了。
Dynamics 365 Customer Engagement 中使用 JavaScript 和 C# 调用操作 Action 示例
微软动态 CRM 专家罗勇 ,回复 334 或者 20190509 可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
Action (操作) 是流程的一种,可以在工作流中调用,可以使用 JavaScript 和 C# 代码方便的调用,用的好是个很不错的东西。
怎么创建 Action 请参考官方文档:Create your own actions ,或者我以前的博文也不错。
假设操作的名称为 new_InvokeOrderApitoCreateReturnPartsAction,是一个绑定到实体 new_returnreq 的操作,包括一个类型 string 的输入参数 OrderNumber,没有输出参数:
下面是 JavaScript 调用示例:
var params = {};
params.OrderNumber = "4318009670";
var req = new XMLHttpRequest();
var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();
req.open("POST", encodeURI(clientUrl + "/api/data/v9.1/new_returnreqs(e95e8829-c370-e911-a82b-000d3a365fc2)/Microsoft.Dynamics.CRM.new_InvokeOrderApitoCreateReturnPartsAction"), true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState == 4) {
req.onreadystatechange = null;
if (this.status == 200) {
var alertStrings = { text: "调用操作成功!" };
var alertOptions = { height: 120, width: 160 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
function success() { },
function () { }
);
}
else {
var error = JSON.parse(this.response).error;
Xrm.Navigation.openErrorDialog({ message: error.message }).then(
function () {
},
function () {
});
}
}
};
req.send(JSON.stringify(params));
如果你的 Action 有复杂的参数类型,可以参考我的博文:通过 Web API 调用 Action 时各种类型输入参数传递值的方法
下面是 C# 代码调用示例:
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Tooling.Connector;
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
CrmServiceClient crmSvc = new CrmServiceClient(@"AuthType=Office365;Url=https://luoyongdemo.api.crm.dynamics.com;UserName=luoyong@luoyong.me;Password=pppsssss");
if (!crmSvc.IsReady)
{
throw new Exception("Crm Service is not ready!" + crmSvc.LastCrmError + crmSvc.LastCrmException.Message);
}
OrganizationRequest orgReq = new OrganizationRequest("new_InvokeOrderApitoCreateReturnPartsAction");
orgReq["OrderNumber"] = "4318009670";
orgReq["Target"] = new EntityReference("new_returnreq", Guid.Parse("e95e8829-c370-e911-a82b-000d3a365fc2"));
OrganizationResponse response = crmSvc.Execute(orgReq);
Console.WriteLine("程序执行完成,按任意键退出...");
Console.ReadKey();
}
}
}
如果创建的是全局的 Action,现在 Dynamcis 365 Customer Engagement 从 9.0 版本开始有新的简便调用方法了,就是 invokeProcessAction (Client API reference) 。
虽然官方文档没有明说仅仅支持全局 Action,从我测试结果来看是仅仅支持全局 Action,或许也有可能我不知道怎么调用绑定 Action 吧。
var params = {};
params.EntityLogicalName = "new_b2borderreturnreqdetails";
params.EntityId = "c87f8979-d172-e911-a833-000d3a375590";
Xrm.Utility.invokeProcessAction("new_DeleteDoNotNeedReturnPartsRecordsAction", params).then(
function () {
var alertStrings = { text: "调用全局操作成功!" };
var alertOptions = { height: 120, width: 160 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
function success(results) { },
function () { }
);
},
function (errorobj) {
console.log(errorobj);
Xrm.Navigation.openErrorDialog({ message: "调用全局操作失败!" + errorobj.message }).then(
function () {
},
function () {
});
});
若是上面例子调用全局 action 报错,比如:This action is not supported ,那就用旧的方法去调用全局 Action 吧,示例如下:
var params = {};
params.EntityLogicalName = "new_demo";
params.EntityId = "c87f8979-d172-e911-a833-000d3a375590";
var req = new XMLHttpRequest();
var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();
req.open("POST", encodeURI(clientUrl + "/api/data/v9.1/new_demoAction"), true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState == 4) {
req.onreadystatechange = null;
if (this.status == 204) {
var alertStrings = { text: "调用操作成功!" };
var alertOptions = { height: 120, width: 160 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
function success() { },
function () { }
);
}
else {
var error = JSON.parse(this.response).error;
Xrm.Navigation.openErrorDialog({ message: error.message }).then(
function () {
},
function () {
});
}
}
};
req.send(JSON.stringify(params));
Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
微软动态CRM专家罗勇 ,回复299或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。
Dynamics 365 Server 版本 9.0 在2018年12月5日已经可以下载了,简体中文版下载网址是:https://www.microsoft.com/zh-CN/download/details.aspx?id=57478 。
我最近也下载了一个,在配置IFD的过程中发现了一个问题,在【配置面向Internet的部署】时候,输入面向Internet的服务器所在的外部域后,【下一步】按钮不可点击,无论你输入什么值。
咋回事?我也看了AD FS错误日志如下:
Encountered error during federation passive request.
Additional Data
Protocol Name:
wsfed
Relying Party:
https://demo.luoyong.me/
Exception details:
Microsoft.IdentityServer.RequestFailedException: MSIS7012: An error occurred while processing the request. Contact your administrator for details. ---> Microsoft.IdentityServer.Service.SecurityTokenService.EmptyOrMissingWSFederationPassiveEndpointException: MSIS5004: The WSFederationPassiveEndpoint address is not configured on the relying party trust identified by the endpoint ''https://demo.luoyong.me/''. It is required to process the current request.
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.ValidateAndUpdateReplyToForSigninMessage(MSISSignInRequestMessage& wsFedSigninRequest, WrappedHttpListenerRequest httpRequest)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponseCoreWithSerializedToken(MSISSignInRequestMessage wsFederationPassiveRequest, WrappedHttpListenerContext context, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponseCoreWithSecurityToken(WSFederationSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponse(WSFederationSignInContext federationPassiveContext, SecurityToken securityToken, SecurityToken deviceSecurityToken)
--- End of inner exception stack trace ---
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponse(WSFederationSignInContext federationPassiveContext, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.Process(ProtocolContext context)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
Microsoft.IdentityServer.Service.SecurityTokenService.EmptyOrMissingWSFederationPassiveEndpointException: MSIS5004: The WSFederationPassiveEndpoint address is not configured on the relying party trust identified by the endpoint ''https://demo.luoyong.me/''. It is required to process the current request.
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.ValidateAndUpdateReplyToForSigninMessage(MSISSignInRequestMessage& wsFedSigninRequest, WrappedHttpListenerRequest httpRequest)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponseCoreWithSerializedToken(MSISSignInRequestMessage wsFederationPassiveRequest, WrappedHttpListenerContext context, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponseCoreWithSecurityToken(WSFederationSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.BuildSignInResponse(WSFederationSignInContext federationPassiveContext, SecurityToken securityToken, SecurityToken deviceSecurityToken)
这个错误的意思我倒是明白了,就是WSFederationPassiveEndpoint这个没有配置支持我的CRM访问地址。打开名称为【CRM IFD Relying Party】的信赖方信任,切换到它的【Endpoints】这个Tab,会发现这个Tab中的内容是空的,如果正常的话是有值的,值应该是 Https://auth.luoyong.me 。你还会发现这个信赖方信任的【Identifiers】中的三个其中有一个是uri:IfdMicrosoftDynamicsCrm ,这个本来应该是 https://auth.luoyong.me 的。
那我可以修改创建信赖方信任的时候导入的Xml文件吗?尝试了不行。后来我搜索到了答案,MSCRM The next button is disabled on IFD configuration wizard ,具体做法是登录Dynamics 365 Customer Engagement对应的数据库,执行如下SQL(其中一个是查看现状的):
USE MSCRM_CONFIG
SELECT a.NVarCharColumn FROM [dbo].[FederationProviderProperties] a
where ColumnName =''ExternalRelyingPartyPassiveIdentifier''
update [FederationProviderProperties]
set NVarCharColumn =''https://auth.luoyong.me/''
where ColumnName =''ExternalRelyingPartyPassiveIdentifier''
然后重启下IIS,关闭部署管理器(Deployment Manager) 重新打开即可,这样IFD就可以配置成功了,截图给大家看下安装完简体中文版本的Dynamics 365 Customer Engagement V9版本的界面。
原文出处:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_IFD_Configuration_Next_Button_Disabled_Solution.html
关于SAP Marketing Engagement Management的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Application Security Per-Engagement、Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法、Dynamics 365 Customer Engagement 中使用 JavaScript 和 C# 调用操作 Action 示例、Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法等相关知识的信息别忘了在本站进行查找喔。
本文标签: