斯潘8
斯潘4
FME“开始”Tcl“设置GTTranslationStartTime[时钟格式[时钟秒]”FME“结束”Tcl“转换开始时间:$GTTranslationStartTime \转换结束时间:[时钟格式[时钟秒]”“
fme_end_tcl proc finally \全局fme_状态;\如果$FME_status==“1”\输入\“翻译成功”\}else \ puts \“翻译不成功\”;\};\};同样的例子也可以不用程序编写:
fme_end_tcl if$fme_status==“1”\ puts\“翻译成功”\}else \ puts \“翻译不成功\”;\}
#此映射文件中用于设置目标数据集目录的宏是destDataset。在tcl脚本中的dwg_dataset“$(destdataset)”source,在翻译结束时运行。#脚本与此映射文件存储在同一目录中。fme_begin_tcl source$(fme_mf_dir_unix)/backup.tcl;备份$(DestDataset)
proc backup文件名如果[文件存在$filename]文件复制-强制$filename$filename.bak
#源代码在tcl脚本中运行,以完成此翻译。#脚本与此映射文件存储在同一目录中。fme_end_tcl source$(fme_mf_dir_unix)/tryanother.tcl
设置outputfile[open c:/temp/status.txt w+]如果$fme_status==“1”puts$outputfile“translation was successful”否则puts$outputfile“translation failed--running alternate translation”exe c fme.exe alternate translation.fme 2>nul:关闭$outputfile
FME_Logmessage FME_Information_Hi Dale Inline_
从pyfm import*log=fmelogfile()log.log(“howdy”)。
fme_end_tcl set outputfile[打开$fme_logfilename a];\输入$outputfile_\将$outputfile放在末尾写一些东西\输入$outputfile_\关闭$outputfile;
#设置一个映射文件ID,以便Tcl最终确定过程“知道”正在运行哪个映射文件,将“文件ID形状”映射到AutoCAD记录所有消息编号,以便我们以后只能提取我们感兴趣的那些。在tcl脚本中记录消息编号是的源代码,以便在翻译结束时运行。#脚本与此映射文件存储在同一目录中。fme_end_tcl source$(fme_mf_dir_unix)/tcl完成.tcl
#打开一个文件,写出翻译统计设置输出文件[open c:/temp/stats_out.txt w+]检查翻译状态,如果$fme_status==“1”输入$output file“翻译成功”否则输入$output file“翻译失败”输入$output file“错误消息w状态:$fme_failuremessage“”将$output file“”输出映射文件中设置的唯一映射文件标识符,使用mapping_file_id将$fme_mapping file id的$output file“翻译摘要”输出每个功能类型读取/写入的功能数。Puts$outputfile“———————————————————————————————————————————————Puts$outputfile“Features read summary”Puts$outputfile“——————————————————————————————————————————————————————————————————————————————————————————————并输出每一组格式规范“%-65s:%12s”的for each feattype[lsort[数组名fme-featuresread]]输出$outputfile[格式$formatspec$feattype$fme-featuresread($feattype)]输出$outputfile”----------------------------------------------------------------“输出$outputfile[格式$formatspec“总功能读取”$fm_total features read];放入$outputfile“-----------------------------------------------------------------------------------------------------”放入$outputfile“放入$outputfile”“放入$outputfile”放入$outputfile“-----------------------------------------------------------------“通过已编写的功能类型的排序列表进行循环,并输出每个feattype[lsort[数组名fme-featureswritten]输出$outputfile[格式$formatspec$feattype$fme-featureswritten($feattype)]输出$outputfile“”输出$outputfile”-------------------------------------------------------------------“输出$outputfile[格式$formatspec”到al features written“$fm_total features written”输入$outputfile[格式$formatspec”输入的总坐标“$fm_total coordinates]输入$outputfile”-------------------------------------------------------------------“输入$outputfile”在日志文件中查找任何警告行,并将它们的计数输出到摘要文件。也,检查是否有任何“意外的输入删除程序”统计行,并报告一个非零计数,如果有(当工作台生成的映射文件针对不同功能类型的输入数据集运行时,可能会发生这种情况),并找出系统状态日志消息(即246014)并复制在输出文件中设置日志文件存在[文件存在$fme_log文件名]设置警告0如果;$log文件存在;;$log文件存在;;设置日志文件[打开$fme_log文件名r]而;[获取$日志文件行]>=0;;如果;[regexp;警告;$行];;增加警告;elseif;[regexp;\123;; \\\;$Log文件存在;$log文件存在;$log文件;$log文件存在;$log文件存在------------------------------放入$outputfile$行放入$outputfile---放入$outputfile'elseif[regexp意外的输入移除器$line]set totalfeatures 0 set acceptedfeatures 0 set rejectedfeatures 0 set line[regsub ^.*意外的$line意外的D]catch scan$line“意外的输入删除程序(testforry):测试了%d个输入功能--%d个功能通过,%d个功能失败。“totalfeatures acceptedfeatures rejectedfeatures if$rejectedfeatures>0 puts$outputfile”----------------------------------------------------------------------------puts$outputfile[format$formatspec”具有意外功能类型的功能“$rejectedfeatures]puts$outputfile”-----------------------------————————————————“Puts$outputfile”“Close$logfile Puts$outputfile”——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————“—————————————————————————————————————————————————————————放入$outputfile”“并关闭文件——关闭$outputfile”
此示例使用外部脚本使用tclodbc包将翻译活动的记录插入数据库。在这个例子中,将创建一个Access数据库(如有必要),并为完成的每个转换填充一行。
TCLDRBC
要在FME环境中使用tclodbc,遵循以下步骤:
fme_end_tcl source$(fme_mf_dir_unix)/recordtranslationodc.tcl
#==============================================================recordtranslationdbc.tcl此脚本记录使用tclodbc包执行翻译的过程。此示例包括创建用于存储翻译结果的访问数据库和表。#在表中插入每个翻译运行的一行。#请注意,对于Acutal生产系统,“Puts”语句将被删除。包需要tclodbc #==================================================================如果数据库不在,请创建它。如果数据库是基于服务器的,但在这个例子中,我们只是使用access。如果{![文件存在$db file]放置“创建数据库$db file”数据库配置配置$driver[列表“创建”“创建”“$db file\”常规“]其他放置“使用现有数据库$db file”t此数据库的源,并连接到它首先始终删除DSN(如果它已经存在)。如果我们使用ODBC连接到“真实”的数据库,然后我们假设DSN已经是有效的catch database configure remove dsn$driver“dsn=$dsn”database configure add dsn$driver[list”dsn=$dsn“”dbq=$dbfile“]database db$dsn如果要插入的表,请创建它如果[llength[db tables xlation\u results]]==0将“creating xlation\u results table in database$dbfile”db“create table xlation\u results(mappingfileid varchar(50),就不存在了,开始时间时间戳,结束时间戳,CPUTIME双,成功字符(3)numFeatures integer)“else_puts”xlation_results table present in database$dbfile“譁现在我们可以插入行,把它提交,如果$fme_status==0 set success no db“插入到XLation_结果(mappingfileid,启动时间,EndTimeCpuTime,成功的,numFeatures)值(“$fm_mappingfileid”,\ ts'$fm_startingTimestamp',\ ts'$fme_endingTimestamp',$FME-CPUTIME,“成功”$fme_totalfeatureswritten)“db commit db disconnect如果连接到基于服务器的数据库,您可能不会在末尾删除ODBC DSN。但由于我们是基于文件的,我们将删除它数据库配置删除驱动程序dsn=dsn
此示例使用外部脚本使用oratcl包将翻译活动的记录插入到Oracle数据库中。
奥拉特尔
在FME环境中使用oratcl,遵循以下步骤:
fme_end_tcl source$(fme_mf_dir_unix)/recordtranslationoracle.tcl
#==============================================================recordtranslationoracle.tcl此脚本使用oratcl包记录翻译的执行。此示例包括创建用于存储翻译结果的XLation结果表。#在表中插入每个翻译运行的一行。软件包需要oratcl譁譁譁譁譁譁譁譁譁譁======================确定要记录结果的XLation结果表是否存在set table exists no set statementhandle[oraopen$loginhandle]orasql$statementhandle“select*from user_tables where table name='xlation_results'”while[orafetch$statementhandle-datavariable row]==0{set tableexists是如果需要,请创建xlation_结果表if$tableexists=“否”orasql$statementhandle“创建表xlation_结果(mappingfileid varchar(50),开始时间时间戳,结束时间戳,CPU时间浮动XLationSuccessful字符(3),numFeatures integer)“如果$fme_status==0 set success no orasql$statementhandle”insert into xlation_results(mappingfileid,启动时间,EndTimeCpuTime,X定位成功,numFeatures)值(“$fm_mappingfileid”,时间戳“$fm_startingTimestamp”,时间戳“$fm”结束时间戳“,$FME-CPUTIME,“成功”$fme_totalfeaturesWriten)“-提交譁譁譁譁譁譁譁譁譁譁譁譁譁譁譁譁譁
?2019安全亚搏在线软件公司|合法的