zoukankan      html  css  js  c++  java
  • AX2009 C#客户端通过Web service批量审核工作流(二)

    配置好Web service后就可以开发和发布Service

    先创建ClassWorkflowApprovalServiceClass,添加方法dataList,返回当前用户需要审批的工作流记录ID

    public str  dataList()
    {
        WorkflowWorkItemTable       workItem;
        container   con;
    
        while select  RecId from workItem where workItem.UserId==curuserid()
                                            &&  workItem.Status==WorkflowWorkItemStatus::Pending
                                            &&  workItem.Type==WorkflowWorkItemType::WorkItem
            con+=workItem.RecId;
        if(con)
            return con2str(con);
        else
            return "";
    }

    AX2009返回值的类型只支持以下几种简单类型

    private static boolean validateParamType(Types _type, int _typeId)
    {
        boolean isValid;
        SysDictType dictType;
        SysDictClass dictClass;
        ;
        if(_type == Types::Class)
        {
            dictClass = new SysDictClass(_typeId);
    
            // Check if class implements AifXmlSerializable.
            isValid = dictClass.isImplementing(classnum(AifXmlSerializable));
        }
        else    // built-in type.
        {
            switch(_type)
            {
                case(Types::UserType):
                {
                    dictType = new SysDictType(_typeId);
                    isValid = AifServiceGenerationManager::validateParamType(dictType.baseType(), _typeId);
                    break;
                }
                case(Types::String):
                case(Types::RString):
                case(Types::VarString):
                case(Types::Date):
                case(Types::UtcDateTime):
                case(Types::Guid):
                case(Types::Integer):
                case(Types::Int64):
                case(Types::Enum):
                case(Types::Real):
                case(Types::void):
                {
                    isValid = true;
                    break;
                }
                case(Types::AnyType):
                case(Types::BLOB):
                case(Types::Container):
                case(Types::Record):
                case(Types::Time):
                default:
                {
                    isValid = false;
                }
            }
        }
    
        return isValid;
    }

    添加审批方法批准和拒绝

    public void updateApprove(recId    _recid,str _comment="")
    {
        WorkflowWorkItemTable _workItem=WorkflowWorkItemTable::findRecId(_recid);
        ;
    
        WorkflowWorkItem::takeAction(_workItem.Id,
                                            WorkflowWorkItemActionManager::findOutcomeNameForMenuItem(_workItem,
                                                                                                    "PurchApprovalApprove",//工作流批准的菜单项
                                                                                                    false),
                                                                                                    _comment,
                                                                                                    curuserid());
    }
    public void updateReject(recId    _recid,str _comment="")
    {
        WorkflowWorkItemTable _workItem=WorkflowWorkItemTable::findRecId(_recid);
        ;
    
        WorkflowWorkItem::takeAction(_workItem.Id,
                                            WorkflowWorkItemActionManager::findOutcomeNameForMenuItem(_workItem,
                                                                                                    "PurchApprovalReject",//工作流拒绝菜单项
                                                            false), _comment, curuserid()); }

    再添加一些需要显示参考的字段方法就可以了

    接下来就到AOT-Services中增加一个Service/WorkflowApprovalService

    将属性中的Class指向上面创建的Class/WorkflowApprovalServiceClass

    另外还需要添加securityKey,否则在客户端调用时会出错

    然后打开Service/WorkflowApprovalService,在operations右键添加operation,系统会自动将Class上符合要求的方法显示出来,添加需要的方法,保存即可

    最后是打开上一篇中的设置服务,刷新后选择服务发布就可以了

  • 相关阅读:
    Django入门
    初识json
    回来了
    python学习
    JavaScript 中获取元素样式
    浏览器检测与特征检测
    DOM 节点的类型及判定
    浏览器的控制台工具
    .htaccess 配置文件的使用
    workLog:07001:补充0829 前
  • 原文地址:https://www.cnblogs.com/rumenren/p/4894726.html
Copyright © 2011-2022 走看看