Handler创建Dispatcher请求
应用场景
在Handler上运行耗时的程序时,客户端界面在等待运行时无法执行其他操作,只能等待,但使用dispatcher调度可以解决此问题。
Handler创建Dispatcher请求
void create_dispatcher_request
char *err_string=NULL,*err_function=NULL;
int err_line=-1;
int rcode=ITK_ok;
char *value='key=123abc ';
tag_t request=NULLTAG;
char * uid=空;
safecall (dispatcher _ create _ request ),' siemens ',' test ',2,NULL,NULL,0,0,NULLTAG,NULLTAG,1,value
请求3360 % d (n )、请求(echo );
afecall(POM_tag_to_uid ) request,uid );
请求uid : % sn,uid );
CLEANUP:
echo(rcode:%d(n ),rcode );
}
创建响应
1、编制响应工序
1、创建普通java项目并引入依赖包。 依赖包存在于DispatcherClientlib中。
1.png
2、创建下图所示的java文件
package translator.test;
import com.teamcenter.ets.extract.defaulttaskprep;
import com.teamcenter.ets.request.translation request;
import com.team center.translation service.task.option;
import com.team center.translation service.task.translation task;
import com.teamcenter.translation service.task.translator options;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.Map;
//*
* createdbyadministratoron7/2/2019。
*/
publicclasstestaskextendsdefaulttaskprep {
@Override
publictranslationtaskpreparetask () throws Exception {
map map=translation request.gettranslationargs (request;
String fileName='qwert.txt ';
打印流PS=新打印流(new file output stream (this.staginglocfile.separator filename ) ) }
映射.条目条目:映射. entryset ) }
m _ ztasklogger.info ('-- key : ' entry.getkey ) )--value : ' entry.getValue );
PS.println(entry.getkey () ) )=' entry.getValue );
}
}
this.m _ ztasklogger.info (' preparetaskstart . ' );
translationtasktask=preptranstask (null,null,null,false,false,null,0,null );
translationtasktranslationtask=addrefidtotask (task,0 );
createtranslatoroptions (translation task,map );
translatoroptionstranslatoroptions=translation task.gettranslatoroptions (;
option [ ] options=translator options.get option (;
选项选项:选项(for ) {
this.m _ ztasklogger.info (' name : ' option.getname ) (' value : ' option.getValue ) );
}
this.m _ ztasklogger.info (' preparetaskend . ' );
返回平移任务;
}
}
3、打成jar包
4、将导出的jar包放入DispatcherClientlib下。
5、修改DispatcherClientconf下的Service.properties文件
translator.Siemens.test.prepare=translator.test.test task
SIEMENS是Handler请求的ProviderName,bomchange是Handler请求的服务名称,等号后跟TaskPrep类的全限定名称。
6 .修改Moduleconf下的translator.xml文件
1、放入标签内
description=' fullpathtotheinputfilewhichwillcontainuserinputforcompletedispatcherservice.' /
description=' argumentsforutilitycommand ' /
SIEMENS为ProviderName,test为ServiceName,dir将test.bat文件的路径指定在Translators下的test文件夹中。
7、写上test.bat,放入Translators下的test文件夹。
CD ' c :appsPLMdispatchermoduletranslatorstest '
java Hello %1 %2 %3
根据情况需要修改路径,bat调用可执行文件。
结果:
2.png