目前,我正在使用Conversion Studio引入CSV文件并将内容存储在AX表中。这部分正在运作。我定义了一个块,并且字段已正确映射。
CSV文件包含多个注释列,例如Comments-1,Comments-2等。这些列有固定数量。公众意见标记为评论-1 ... 5,私人评论标记为私人评论1 ... 5.
期望的结果是将数据带入AX表(当前正在工作)并连接注释字段或将它们作为单独的注释存储在DocuRef表中作为内部或外部注释。
不需要在我已设置的Conversion Studio项目中设置新块吗?你能指点一个资源,可能会显示类似的程序或怎么做?
提前致谢!
答案 0 :(得分:0)
在将兔子追逐到最深的兔子洞后,我发现最简单的方式就是这样:
覆盖文档处理程序的onEntityCommit方法(扩展AppDataDocumentHandler),如下所示:
AppEntityAction onEntityCommit(AppDocumentBlock documentBlock, AppBlock fromBlock, AppEntity toEntity)
{
AppEntityAction ret;
int64 recId; // Should point to the record currently being imported into CMCTRS
;
ret = super(documentBlock, fromBlock, toEntity);
recId = toEntity.getRecord().recId;
// Do whatever you need to do with the recId now
return ret;
}
以下是插入注释的方法,以防您需要:
private static boolean insertNote(RefTableId _tableId, int64 _docuRefId, str _note, str _name, boolean _isPublic)
{
DocuRef docuRef;
boolean insertResult = false;
;
if (_docuRefId)
{
try
{
docuRef.clear();
ttsbegin;
docuRef.RefCompanyId = curext();
docuRef.RefTableId = _tableId;
docuRef.RefRecId = _docuRefId;
docuRef.TypeId = 'Note';
docuRef.Name = _name;
docuRef.Notes = _note;
docuRef.Restriction = (_isPublic) ? DocuRestriction::External : DocuRestriction::Internal;
docuRef.insert();
ttscommit;
insertResult = true;
}
catch
{
ttsabort;
error("Could not insert " + ((_isPublic) ? "public" : "private") + " comment:\n\n\t\"" + _note + "\"");
}
}
return insertResult;
}