Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Axapta Dynamics AX 2009 AIF表格_Axapta_Dynamics Ax 2009_Microsoft Dynamics_Aif - Fatal编程技术网

Axapta Dynamics AX 2009 AIF表格

Axapta Dynamics AX 2009 AIF表格,axapta,dynamics-ax-2009,microsoft-dynamics,aif,Axapta,Dynamics Ax 2009,Microsoft Dynamics,Aif,背景 我有一个问题,大约每月一次,AIFQUEManager表中会填充约150条记录,这些记录与6个月前发送到AX的消息有关(这些消息“成功失败”;即,由于违反业务规则而出错,但按预期返回异常) 问题 AIF入站消息流程中涉及哪些表/事件发生的顺序是什么?e、 g.XML文件被提取并记录在AifDocumentLog中,数据被提取并添加到aifquemanager和AifGatewayQueue表中,然后将此处的记录插入到AifMessageLog中,等等 提前感谢。共有4个主要的AIF类,我

背景

我有一个问题,大约每月一次,AIFQUEManager表中会填充约150条记录,这些记录与6个月前发送到AX的消息有关(这些消息“成功失败”;即,由于违反业务规则而出错,但按预期返回异常)


问题

AIF入站消息流程中涉及哪些表/事件发生的顺序是什么?e、 g.XML文件被提取并记录在AifDocumentLog中,数据被提取并添加到aifquemanager和AifGatewayQueue表中,然后将此处的记录插入到AifMessageLog中,等等


提前感谢。

共有4个主要的AIF类,我将只讨论入站类,重点介绍包含的文件系统适配器和平面XML文件。我希望这能让事情变得不那么模糊不清

  • AIFGatewayReceiveService
    -使用适配器/通道从不同来源读取中的消息,并将其转储到AifGatewayQueue表中
  • AIFInboundProcessingService
    -这将处理AifGatewayQueue表数据并发送到Ax[Document]类
  • AIFOutboundProcessingService
    -这是#2的倒数。它使用相关元数据创建XML
  • AIFGatewaySendService
    -这与#1相反,它使用适配器/通道将消息发送到aifGatewaySequeue的不同位置

  • For#1

    因此#1基本上填充了
    AifGatewayQueue
    ,这只是一个工作队列。它在所有通道中循环,然后按ClassId查找相关适配器。这些适配器是实现
    aifintegorationadapter
    AifReceiveAdapter
    的类,如果您想创建自己的自定义适配器。当它在不同的通道上循环时,它会在每个“消息”上循环,并尝试将其接收到队列中

    如果由于某种原因无法处理该文件,它会捕获异常并将其抛出到
    SysExceptionTable
    [Basic>Periodic>Application Integration Framework>exceptions]中。这些消息是从信息日志中刮取的,并且这些消息主要是从接收适配器生成的,例如,
    AifFileSystemReceiveAdapter


    For#2

    因此#2正在处理队列中的入站消息(ready/inprocess)。
    AifRequestProcessor\processServiceRequest
    完成这项工作

    通过此方法,它将调用:

    • Classes\AifMessageManager
      的各种调用,将记录放入
      AifMessageLog
      AifDocumentLog
    • 行:
      responseMessage=AifRequestProcessor::executeServiceOperation(消息,endpointActionPolicy)
      通过最终访问
      AifDispatcher::callServiceMethod(…)
    • 它获取返回XML并将其打包到名为
      responseMessage
      的AifMessage中,然后返回可能记录它的位置。它还接受该返回值,如果存在响应通道,则将其提交回AifGatewayQueue


    AifQueueManager
    实际上是通过调用
    AifQueueManager::createQueueManagerData()动态清除和填充的

    有4个主要的AIF类,我将只讨论入站类,并重点介绍包含的文件系统适配器和平面XML文件。我希望这能让事情变得不那么模糊不清

  • AIFGatewayReceiveService
    -使用适配器/通道从不同来源读取中的消息,并将其转储到AifGatewayQueue表中
  • AIFInboundProcessingService
    -这将处理AifGatewayQueue表数据并发送到Ax[Document]类
  • AIFOutboundProcessingService
    -这是#2的倒数。它使用相关元数据创建XML
  • AIFGatewaySendService
    -这与#1相反,它使用适配器/通道将消息发送到aifGatewaySequeue的不同位置

  • For#1

    因此#1基本上填充了
    AifGatewayQueue
    ,这只是一个工作队列。它在所有通道中循环,然后按ClassId查找相关适配器。这些适配器是实现
    aifintegorationadapter
    AifReceiveAdapter
    的类,如果您想创建自己的自定义适配器。当它在不同的通道上循环时,它会在每个“消息”上循环,并尝试将其接收到队列中

    如果由于某种原因无法处理该文件,它会捕获异常并将其抛出到
    SysExceptionTable
    [Basic>Periodic>Application Integration Framework>exceptions]中。这些消息是从信息日志中刮取的,并且这些消息主要是从接收适配器生成的,例如,
    AifFileSystemReceiveAdapter


    For#2

    因此#2正在处理队列中的入站消息(ready/inprocess)。
    AifRequestProcessor\processServiceRequest
    完成这项工作

    通过此方法,它将调用:

    • Classes\AifMessageManager
      的各种调用,将记录放入
      AifMessageLog
      AifDocumentLog
    • 行:
      responseMessage=AifRequestProcessor::executeServiceOperation(消息,endpointActionPolicy)
      通过最终访问
      AifDispatcher::callServiceMethod(…)
    • 它获取返回的XML和包,并将其打包到名为