span8
span4
我打电话使用WorkspaceRunner一个孩子的工作区。孩子工作区说,翻译是成功的,因为做的WorkspaceRunner,但是当我回顾了日志为孩子工作区,我注意到有这样的警告:“提供程序错误`(-2147217873)的PRIMARY KEY约束‘XXXX’违反无法插入 duplicate key in object 'yyyy'".如果发生这种情况,我想工作区失败/终止。有没有一种方法,我可以做到这一点?将一个FeatureWriter变压器而不是普通的作家给我这个功能?
有一个鲜为人知的技巧,在FME日志捕获几乎任何消息,并采取行动,那么,使用fmeobjects.FMELogFile回调方法。
尝试把以下在Python启动脚本:
进口fmeobjects全球AN_ERROR_OCCURRED AN_ERROR_OCCURRED =无高清LogSkimmer(严重性,文本):如果text.find( '的PRIMARY KEY约束冲突')> -1:全球AN_ERROR_OCCURRED AN_ERROR_OCCURRED =文本fmeobjects.FMELogFile()setCallBack(LogSkimmer)
然后,只需您的SQL Server空间作家之前,插入与下面的代码PythonCaller:
进口fmeobjects高清detect_errors(功能):全球AN_ERROR_OCCURRED如果AN_ERROR_OCCURRED:提高fmeobjects.FMEException(AN_ERROR_OCCURRED)
让我知道那是适合您的情况。
使用SQL执行让所有的限制(通常在脚本的开始)对其进行处理,并试图将其写入表(或多个)之前,你的数据尊重的约束。
这里是一个的Oracle SQL版本
选择search_condition,TABLE_NAME
从USER_CONSTRAINTS
在表格名='@value(fme_feature_type)'
和constraint_type = 'C'
©2019安全亚搏在线软件公司|法律