我正在努力在 AX 2009 中设置电子邮件模板,这些模板会在发布某些文档时自动发送给我们的客户。我有一个框架,允许我将特定的已发布文档与特定的电子邮件模板联系起来。
目前,为了动态填充电子邮件中的信息,我正在使用一个包含键/值对的映射对象,其中键与模板本身中的特定变量相关(请参阅问题Dynamics Ax 2009 中的示例,电子邮件模板)。但是,由于我可以很容易地看到需要显着更改的可用信息,因此我希望能够更改此映射而无需更改类中的实际代码。
我的想法是有一个简单的表,其中包含两个字符串字段 - 一个是映射中的键,另一个是找到信息的字符串表示形式,即"salesTable.SalesId"
.
是否可以评估值字符串表达式,以便它自动提取“SO-XXXXXXXX”?在这种情况下,我们可以假设 salesTable 缓冲区在评估时已经存在。这将类似于 Javascripteval()
命令。它还应该(理想情况下)评估更复杂的表达式,例如"CustTable::find(salesTable.InvoiceAccount).CustGroup"
, 但此时可能要求太多。
我能看到的唯一另一种选择是创建一个巨大的映射对象,该对象将包含所有可能的映射并在整个框架中使用它,但这仍然存在没有模板中可能需要的所有信息的风险,因此需要额外的代码更改以获取缺失的信息。