zoukankan      html  css  js  c++  java
  • 启动工作流

    MAXIMO实施过程中,有时需要从外部系统中通过接口自动导入一些数据,如采购申请单PR,领料单等,客户在外部系统中,已经做好数据了,希望数据进入MAXIMO系统后,能自动启动业务流程。经过几天的研究发现,可以在后台手工实现!

        注意:此工作流的第一个节点不能为交互式节点 

       代码如下:

    /*
    * 工作流 得到当前应用,当前对像的工作流名称
    * appname:应用程序名称
    * tbname:主对像名
    */
    private String getProcessName(String appname,String tbname)throws MXException,RemoteException
    {
    MboSetRemote apptoolbarset=MXServer.getMXServer().getMboSet("WFAPPTOOLBAR", userinfo);
    SqlFormat sqlf=new SqlFormat("APPNAME=:1 and OBJECTNAME=:2");
    sqlf.setObject(1, "WFAPPTOOLBAR", "APPNAME", appname);
    sqlf.setObject(2,  "WFAPPTOOLBAR", "OBJECTNAME", tbname);
    apptoolbarset.setWhere(sqlf.format());
    if (apptoolbarset.isEmpty())
    {
    return "";
    }
    MboRemote mbo=apptoolbarset.getMbo(0);
    if (mbo==null)
    {
    return "";
    }
    if (mbo.isNull("PROCESSNAME"))
    {
    return "";
    }
    return  mbo.getString("PROCESSNAME");
    }
    /*
    * 启动工作
    * appname:应用程序名称
    * mbo 当前对像
    */
    private void startworkflow(String appname,MboRemote mbo)throws MXException,RemoteException
    {
    String tbname=mbo.getThisMboSet().getName();
    String processname=getProcessName(appname,tbname);
    if ("".equalsIgnoreCase(processname)||processname==null)
    {
    return;
    }
    WorkFlowServiceRemote wfs=(WorkFlowServiceRemote)MXServer.getMXServer().lookup("WORKFLOW");
    wfs.initiateWorkflow(processname, mbo);

  • 相关阅读:
    !!!最常用正则表达式语法
    RunMessageScript from spy
    已知进程、线程、窗体三者中某一个的句柄,需要查找另外两者的句柄。
    如何抓取一个当前运行软件所使用的内存
    谢谢你的伤害
    游摸底河有感
    九月无诗
    游石人公园有感
    影响35岁前成功的好习惯与坏习惯
    创业经验十二谈,愿有志者共勉(转)
  • 原文地址:https://www.cnblogs.com/kevinhlj/p/1926018.html
Copyright © 2011-2022 走看看