导出问卷(KMQuestionnaireRun)结果到XML

Export questionnaire(KMQuestionnaireRun) results to XML

如何访问客户端的 questionnaire/s(KMQuestionnaireRun 类型)的结果以将结果动态导出到 XML。

我正在处理的 class 示例:

while select rmlSomaticMeasures
            outer join rmlSomatometryWorker
                where rmlSomatometryWorker.RMLRef == rmlTable.RecId
                && rmlSomatometryWorker.SomaticMeasureId == rmlSomaticMeasures.SomaticMeasureId
        {
            if (rmlSomatometryWorker.Value)
            {
                nodeMeasure = doc.createElement(strReplace(strUpr(rmlSomaticMeasures.SomaticMeasureId)," ","_"));//.text(strReplace(strUpr(rmlPhysiologicalHabitWorker.Value)," ","_"));
                nodeMeasure.text(strReplace(Num2Str(rmlSomatometryWorker.Value,0,5,1,0)," ",""));
                nodeSOMATOMETRIA.appendChild(nodeMeasure);
            }
            else
            {
                nodeMeasure = doc.createElement(strReplace(strUpr(rmlSomaticMeasures.SomaticMeasureId)," ","_"));
                nodeSOMATOMETRIA.appendChild(nodeMeasure);
            }
        }

简答,又名"The fish"

结果存储在表 KMVirtualNetworkAnswerTableKMVirtualNetworkAnswerLine

长答案,又名"Let me tell you how to fish":

您已经知道每次完成问卷时,它都会由摘要 class KMQuestionnaireRun 的子class之一处理。当我在 Contoso 中做一份调查问卷时,我注意到之后会弹出一条小消息 "The completed questionnaire has been saved"。我认为这是一个很好的起点,所以我跳转到生成该消息的代码行(只需 select 信息日志中的消息并单击 "Edit")。这把我带到了 class KMQuestionnaireSave,方法 save(由 class KMQuestionnaireRun 中的方法 close 调用)。从那里很容易导航到 class KMQuestionnaireSaveResult,方法 saveAll 并查看上面的表格是如何编写的。

我在 AX 2012 R2 CU7 版本中解决了这个问题。我没有检查其他版本,但我猜数据模型相似或相同。