版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EASBOS开发平台培训体系EASBOS框架构造简介学习内容概述什么是金蝶EASBOSBOS,BusinessOperationSystem,业务操作系统,是金蝶融合近年公司应用软件经验以及MDA理念研发新一代技术平台,是金蝶公司全新管理软件开发工具和管理集成平台。金蝶BOS提供了基于模型驱动架构(MDA)开发模式和有关工具,成功解决了公司应用软件在开发、实行和维护过程中质量、周期、成本、风险等方面问题,并使公司应用软件可以满足公司管理行业特性、公司个性化和持续完善规定,对于公司应用软件在行业应用开发和维护、实行带来了全新应用模式和革命。金蝶EASBOS提供集成管理平台,使公司应用可以集公司门户(Portal)、办公自动化(OA)、公司资源管理(ERP)、工作流(Workflow)以及业务重组(BPR)于一体,对于公司团队协作、业务支持、管理控制、决策分析、商务智能以及公司信息实时化提供全面支持。金蝶EASBOS,集中体现了金蝶公司对中华人民共和国特色化公司管理和国际先进管理思想领域孜孜不倦摸索和追求,融合了金蝶公司在公司应用软件领域十近年行业经验和软件开发经验,对产品不断发展与完善,为公司顾客带来高效、灵活、柔性以及功能强大公司管理系统,协助公司顾客在激烈市场竞争中赢得先机并获得前所未有高回报。金蝶EASBOS应用框架金蝶EASBOS技术特性全面模型驱动架构金蝶EASBOS在面向业务分析基本上提炼出一种业务元数据描述抽象层(对象构造模型)。这个抽象层是整个系统运营基本,涉及了业务对象构造、数据构造、交互界面、系统布置、系统接口等全方位信息。并且通过内置集成开发环境,可以不断地将获取及更新业务知识补充到这个模型中,支持业务能力持续改进。
通过灵活架构及专业工具,业务专业人员可以专心于业务分析及业务逻辑解决,然后通过集成开发环境将其专业能力分析内容轻松地加入到系统中,迅速提高系统业务解决能力,大大减少了实行成本。示例:基于模型技术实现IDE开发平台功能
平台级技术控制能力Apusic应用服务器Apusic应用服务器是严格遵循J2EE等工业技术原则公司应用平台,是国内第一种商业J2EE应用服务器产品。通过相应用服务器平台技术自主控制,金蝶EASBOS可以充分挖掘平台技术潜力,提供应顾客高效、高可靠产品。
多技术平台支持在基于Internet公司级应用软件技术领域中,国际上主流技术平台存在着Microsoft.NET和J2EE两大技术架构。这两种技术架构代表着平台架构技术最新发展,两者互有优势,当前已经布置或将要布置公司信息平台绝大多数都从两者中选取其一。金蝶本着协助顾客成功产品研发理念,凭借近年积累技术实力,通过金蝶BOS平台无关性设计,实现了对.NET和J2EE这两种技术架构支持。使得顾客在平台选取上有了完全自主能力,顾客可以依照公司自身信息化发展状况来决定如何布置技术平台,充分保障了既有投资及将来发展。并且,基于金蝶EASBOS技术平台,为客户提供了一种途径,使得公司原有分属于不同技术架构体系应用系统可以实现整合。通过对WebService广泛支持,异种技术平台间可以自由通信,互相集成。各种数据库支持
翻译引擎支持各种大型数据库,业务系统可自由选取任意数据库产品作为数据承载平台,基于BOS开发业务系统如果需要运营于新数据库平台上,只需要在BOS上扩展新数据库翻译引擎子集即可,原有业务系统无需重新开发。金蝶EASBOS数据库翻译引擎提供了两个子功能层,分别实现各种SQL版本语义翻译和异种数据库访问连接。
SQL语义翻译引擎虽然所有大型数据库都支持大某些原则SQL语法,但是每个厂商提供数据库产品均有各自特性SQL语法子集,这些特性子集存在导致了业务系统不可以直接在各种数据库产品之间迁移障碍。
金蝶EASBOS提供SQL语义翻译引擎,可以使不同数据库产品都可以对的理解和解决来自业务系统发出操作祈求。异种数据库访问引擎每一种数据库均有各自访问解决方式从数据库支持网络合同库到数据库访问授权到数据库连接建立都各自不尽相似。金蝶EASBOS提供异种数据库访问引擎,可以使业务系统透明访问任何一种数据库,而无需理解数据库产品厂商差别以及所运营平台差别。EASBOS开发B/S构造EABBOS开发B/S程序时,产生后台代码EJB,前台代码是JSF和EXT;后台EJB代码发布在Apusic这个应用服务器上,前台JSF和EXT代码也是运营在apusic应用服务器上。JSF操作数据时,就需要访问EJB办法来对数据进行增、删、改和查。EASBOS开发C/S构造EABBOS开发C/S程序时,产生后台代码EJB,前台代码是swing;后台EJB代码发布在Apusic这个应用服务器上,前台swing代码也是运营在客户机上。swing操作数据时,就需要访问EJB办法来对数据进行增、删、改和查。EASBOS访问流程参照资料资料\BOS框架\BOS开发指南_应用框架.doc资料\BOS框架\EASBOS框架入门.pptx资料\BOS框架\应用框架编程指南.doc学习目的EASBOS开发环境学习学习内容概述BOSModular是什么BOSModular是一种在eclipse上一种插件,在bosModular中,可以直接托拉控件生成界面。BOSModular目录构造如下:\BOSModular点“BOSModular_zh_CN.bat”这个批解决就可以启动开发工具了。BOSModular怎么打开各个窗口视图1:在菜单中选取“窗口”菜单,然后选取“显示视图”子菜单,如下图:2:再选取“其他”菜单,弹出如下窗口,咱们可以在窗口中选取随意窗口:BOSBIM视图1:如上图点“金蝶BOS业务建模”,在BOSModular中就会显示业务建模视图如下:在业务建模视图中,咱们重要是建业务单据,发布业务单据。BOS设计视图1:如上图点“金蝶BOS设计模式”,在BOSModular中就会显示业务建模视图如下:在设计视图下,重要是设计界面,给界面控件邦定数据,修改各种元数据大纲窗口视图数据邦定窗口视图属性窗口视图BOSJAVA视图1:如上图点“java视图”,在BOSModular中就会显示java视图如下:在JAVA视图中,咱们修改JAVA代码,新增逻辑。行业版开发环境搭建1.导入解决方案。2.选取方案----转换为行业解决方案(业务建模视图中)3.删除工程中basemetas文献夹中(除boseasbim_templates.zip)文献和文献夹4.开发完毕后选取基线化行业解决方案(设计开发工具中)5在工程目录下将exporttemp文献夹中内容复制到deployed_metas文献夹中参照资料资料\环境\4.安装bosmodular\安装bosmodular.swf资料\环境\5.导入license及解决方案\导入license及解决方案.swf学习目的EASBOS开发一种完整业务单据学习内容概述开发流程(业务建模方式):倒入解决方案。新建业务单元。菜单管理。发布业务单据。编写java代码。开发流程(设计工具方式):倒入解决方案,或者自己新建项目。新建元数据。发布元数据。编写java代码。客户端-----服务端客户端:1.获取界面数据。(EditUI可以通过框架自动将界面控件中值绑定到editData中);也可以通过控件直接获取值。 2.获取远程调用接口。XXXFactory.getRemoteInstance()。 Icurrencyicurrency=IcurrencyFactory.getRemoteInstance();//获取币别远程调用接口 3.通过接口调用后台组件(办法)。 icurrency.save(editData);//调用服务端保存办法服务端:4.获取客户端数据,实现业务逻辑。 5.依照需要,通过对象或者直接写KSQL操作数据库。界面控制普通在界面onLoad办法或者onShow办法中控制界面某些属性。例如:隐藏一种控件。publicvoidonShow(){txtName.setVisible(false);//设立txtName控件不可见}参照资料资料\开发流程\BOSV6.2开发指南_Studio.pdf资料\开发流程\EAS开发流程.doc资料\开发流程\视频\6.BIM币别\Currency.swf目的BOS元数据及代码构造学习内容概述一:关系(一)实体和实体关系实体(Entity)与实体之间存在联系时,需要建立关系(Relation)。实体可以导出数据表(Table)。新建查询(Query)必要选取实体。ListUI(UI)界面需要绑定查询,其显示数据要是通过查询获得。EditeUI(UI)界面需要绑定实体,界面中空间和实体属性绑定进行值传递。(二)实体和代码关系实体和UI发布会生成相应Java代码1.实体ZTTest(Entity)发布生成类2.顾客界面(UI)发布生成类二:在什么地方加代码来实现某些功能1.所有抽象类咱们不能修改。2.在开发中咱们需要修改java类重要涉及*ControllerBean,*EidteUI,*ListUI结尾非抽象类。3.*ControllerBean重要是编写服务端代码逻辑(新增,修改,删除等功能)。 例如: 在该类中咱们可以重写_save()办法。这个办法重要是实现保存,咱们就可以在该办法中添加自己代码逻辑。4.*EditeUI类是客户端编辑界面相应类。
5.*ListUI类是客户端叙事簿界面相应类。参照资料资料\BOSV6.2开发指南_元数据简介.pdf资料\通用Query查询开发指南.doc资料\BOSStudio开发指南(元数据).ppt目的EASBOS惯用功能学习内容惯用功能总结客户端环境工具类工具类:mon.client.SysContext作用:静态存储顾客当前登录信息,登录当前组织信息(ContextUtil在服务端使用) SysContext.getSysContext().getCurrentFIUnit()//获得财务组织 SysContext.getSysContext().getCurrentUserInfo()//获得顾客信息获取菜单参数作用:该办法返回是一种Map,里面存储菜单某些参数。例如菜单名称,途径等。getUIContext().get("UIClassParam")获取当前组织惯用办法。CompanyOrgUnitInfocompany=ContextUtil.getCurrentFIUnit(ctx);//服务端CompanyOrgUnitInfocompany=ContextHelperFactory.getLocalInstance(ctx).getCurrentCompany();//服务端CompanyOrgUnitInfocompany=ContextHelperFactory.getRemoteInstance().getCurrentCompany();//客户端接口办法访问方式客户端访问ICurrencyc=CurrencyFactory.getRemoteInstance();//建立实体对象c.getCurrencyCollection();//办法调用服务端访问ICurrencyc=CurrencyFactory.getLocalInstance(ctx);//建立实体对象c.getCurrencyCollection();//办法调用数据库工具用法总结1.DbUtil用法。com.kingdee.eas.util.app.DbUtil (1)查询操作 StringBuffersql=newStringBuffer(); sql.append("selectfidfromt_cas_ztdemo"); //返回成果集,成果集取值和JAVAResultSet相似 IRowSetrowSet=DbUtil.executeQuery(ctx,sql.toString());增长、删除、修改操作调用 DbUtil.Execute().IFMIsqlFacade用法。mon.IFMIsqlFacade;IFMIsqlFacadefMIsqlFacade=FMIsqlFacadeFactory.getRemoteInstance();客户端IFMIsqlFacadefMIsqlFacade=FMIsqlFacadeFactory.getLocalInstance(ctx);服务端StringBuffersql=newStringBuffer(); sb.append("selecta.fidfromT_BD_Acct_Contorla"); sb.append("innerjoint_org_companycona.FDestCompanyID=c.fid"); sb.append("wherea.FAccountTableID=?anda.FIsDefaultForRefer=0"); //其中newObject[]{传递参数,可以是各种用逗号分开} IRowSetrs=fMIsqlFacade.executeQuery(sb.toString(),newObject[]{accountTableId});期间工具工具类:com.kingdee.eas.basedata.assistant.PeriodUtils作用:该工具类中包括诸多关于期间解决办法,涉及到关于期间问题可以在该类中查找相应办法。提供静态办法可获取期间,进行期间运算、比较等功能例://依照日期、组织获得期间对象。//date为日期,companyInfo为组织PeriodInfoperiodInfo=PeriodUtils.getPeriodInfo(date,companyInfo);//依照期间ID获得期间对象periodId为期间IDPeriodInfoperiodInfo=PeriodFactory.getLocalInstance(ctx).getPeriodInfo(newObjectUuidPK(BOSUuid.read(periodId)));//依照期间ID获得相应期间下一期间periodId为期间IDPeriodInfoperiodInfo=PeriodUtils.getNextPeriodInfo(ctx,newObjectUuidPK(BOSUuid.read(periodId)));//判断该期间与否为调节期periodInfo.isIsAdjustPeriod()//获取期间相应开始日期、结束日期。DateendDate=periodInfo.getEndDate();DatebeginDate=periodInfo.getBeginDate();//日期转换publicstaticTimestampgetTime(){ Timestampcreatetime; Datedate=newDate(); longtime=date.getTime(); Calendard=Calendar.getInstance(); d.setTime(newTimestamp(time)); d.set(Calendar.MILLISECOND,0); createtime=newTimestamp(d.getTime().getTime()); returncreatetime; }t_pm_mainmenuitem菜单表日期协助工具工具类:mon.DateHelper作用:日期协助类,重要提供与日期有关办法,例如计算指定日期前一天、日期所在月第一天等例:DateHelper.getFirstDayOfCurMonth()//获取当前月第一天DateHelper.getEndDayOfCurMonth()//获取当前月最后一天对象查询IAccount_ControlacctCtrl=Account_ControlFactory.getLocalInstance(ctx);EntityViewInfoevi=newEntityViewInfo(); FilterInfofilter=newFilterInfo(); evi.setFilter(filter);//添加所需要查询对象 evi.getSelector().add("accountTableID"); evi.getSelector().add("availDataFrom"); evi.getSelector().add("availDataTo"); evi.getSelector().add("accountPeriodType");//设立过滤条件//FilterItemInfo参数含义FilterItemInfo(arg1,arg2,arg3);//arg1:过滤对象名//arg2:值(和过滤对象做比较)//arg3:对象与值比较方式.值为空时,默以为等于CompareType获取比较方式filter.getFilterItems().add(newFilterItemInfo("accountTableID","QkvFqwEXEADgAD1sChkaBhdpjm0="));filter.getFilterItems().add(newFilterItemInfo("isDefaultForRefer",newInteger(0)));//依照EntityViewInfo对象为条件获取查询成果,返回值是一种集合Account_ControlCollectionacctCtrlCols=acctCtrl.getAccount_ControlCollection(evi);依照主键(id)查询1.查询主键相应所有数据。IAccount_ControlacctCtrl=Account_ControlFactory.getLocalInstance(ctx);Stringid="123";//要查询对象idAccount_ControlInfoacctCtrInfo=acctCtrl.getAccount_ControlInfo(newObjectUuidPK(id));查询主键相应指定数据。IAccount_ControlacctCtrl=Account_ControlFactory.getLocalInstance(ctx);Stringid="123";//要查询对象id//添加所需要查询对象SelectorItemCollectionselector=newSelectorItemCollection();selector.add("accountTableID"); selector.add("accountPeriodType");Account_ControlInfoacctCtrInfo=acctCtrl.getAccount_ControlInfo(newObjectUuidPK(id),selector);消息提示框工具类:com.kingdee.eas.util.client.MsgBox该工具类拥有各种办法,依照不同需要调用办法,只能在客户端使用。例子:1.MsgBox.showInfo("YES");2.MsgBox.showConfirm2("YES");MsgBox.showConfirm3("YES");MsgBox.showConnectionError("YES");MsgBox.showConfirm3a("YES","error");资源文献引用工具类:com.kingdee.eas.util.client.EASResource com.kingdee.eas.util.ResourceBase惯用办法:EASResource.getString(StringresClassName,StringresName)resClassName:资源文献resName:资源文献中属性名例: MsgBox.showInfo(this,EASResource.getString( "com.kingdee.eas.fi.cas.CasResources", "CheckAccount")); ResourceBase.getString( "com.kingdee.eas.fi.gl.GLAutoGenerateResource", "974_GLAccountRefContrastProcess",ctx.getLocale());BigDecimal类型使用方式工具类:java.math.BigDecimal作用:金额、单价值需要付值为BigDecimal类型BigDecimalamounts1=newBigDecimal(String.valueOf(3.00));BigDecimalamounts2=newBigDecimal(String.valueOf(2.00));//相加amounts1.add(amounts2);//相减amounts1.subtract(amounts2);F7控件付值publicvoidinitF7Acct(IUIObjectowner,KDBizPromptBoxf7,CompanyOrgUnitInfocompany){if(company.getAccountTable()==null){return;}//为F7控件设立Queryf7.setQueryInfo("com.kingdee.eas.basedata.master.account.app.F7AccountViewQuery");EntityViewInfoevi=newEntityViewInfo();FilterInfofilterInfo=newFilterInfo(); //设立过滤条件evi.setFilter(filterInfo);filterInfo.getFilterItems().add(newFilterItemInfo("isLeaf","1"));filterInfo.getFilterItems().add(newFilterItemInfo("companyID.id",company.getId().toString()));filterInfo.getFilterItems().add(newFilterItemInfo("accountTableID.id",company.getAccountTable().getId().toString()));f7.setEntityViewInfo(evi);f7.setDisplayFormat("$number$-$name$");f7.setEditFormat("$number$");f7.setCommitFormat("$number$");f7.setEditable(true);//f7Acct.setSelector(newAccountPromptBox(owner,company,filter,false,true));}//此句不增长,将在第一次查询设立条件不生效f7.getQueryAgent().resetRuntimeEntityView();通用过滤ListUI界面中几种办法。//可以设立通用过滤所包括界面protectedCommonQueryDialoggetQueryDlg()throwsException{ CommonQueryDialogdialog=super.getQueryDlg(); dialog.setShowFilter(false);//与否显示自定义页签 dialog.setShowSorter(true);//与否显示排序页签 returndialog; }//获取顾客自定义界面(条件页签)publicFMFilterBaseUIgetFilterUI()throwsException{ if(filterUI==null){ filterUI=newFundsMoveBillFilterUI(); } returnfilterUI; }//添加自定义界面publicCommonQueryDialoginitCommonQueryDialog(){ CommonQueryDialogconditionDialog=super.initCommonQueryDialog(); //设立固定查询界面 try{ CustomerQueryPaneluserPanel=getFilterUI(); if(userPanel!=null){ conditionDialog.addUserPanel(userPanel); } }catch(Exceptione){ super.handUIException(e); } return(conditionDialog); }//解决自定义查询页签界面protectedCommonQueryProcessorgetQueryProcessor(){ //FundsMoveBillProcess要继承monquery.client.CommonQueryProcessor returnnewFundsMoveBillProcess(this);}在CommonQueryProcessor(查询界面自定义查询页签中属性解决类)及其子类中,获取CommonQueryPanel,以及顾客自定义界面(*FilterUI.java)。方法:CommonQueryPanelcommonQueryPanel=(CommonQueryPanel)get("COMMON_QUERY_PANEL"); commonQueryPanel.getCustomerQueryPanel().get(i);//获取顾客自定义界面(条件页签)。 Objecteditor=get(CURRENT_EDITOR);// 获取自定义页签比较值相应控件。 Stringfield=(String)get(CURRENT_FIELD_PROP);//获取自定义页签过滤条件属性名 SysUtil.abort办法工具类:com.kingdee.eas.util.SysUtil;作用:停止当前UI所有操作,或终结服务端办法SysUtil.abort()惯用F7Query1 科目F7com.kingdee.eas.basedata.master.account.app.F7AccountViewQuery2 科目表com.kingdee.eas.basedata.master.account.app.AccountTableQuery3 客户F7com.kingdee.eas.basedata.master.cssp.app.F7CustomerQuery4 供应商F7com.kingdee.eas.basedata.master.cssp.app.F7SupplierQuery5 客商统一码F7com.kingdee.eas.basedata.master.cssp.app.F7BizAnalysisCodeQuery6 物料F7com.kingdee.eas.basedata.master.material.app.F7MaterialQuery7 辅助核算F7com.kingdee.eas.basedata.master.auxacct.app.F7AsstAccountQuery8 币别F7com.kingdee.eas.basedata.assistant.app.F7CurrencyQuery
9 辅助核算类型F7com.kingdee.eas.basedata.master.auxacct.app.F7AsstActTypeQuery10 汇率F7com.kingdee.eas.basedata.assistant.app.F7ExchangeRateQuery11 银行账户F7com.kingdee.eas.basedata.assistant.app.F7AccountBankQuery12 银行F7com.kingdee.eas.basedata.assistant.app.F7BankQuery13 顾客F7com.kingdee.eas.base.permission.app.F7UserQuery14 银行F7com.kingdee.eas.basedata.assistant.app.F7BankQueryIfnotexists(select*fromKSQL_USERCOLUMNSwhereKSQL_COL_NAME='FTransportTypeID'andKSQL_COL_TABNAME='T_ST_BalanceBaseType')altertableT_ST_BalanceBaseTypeaddFTransportTypeIDVARCHAR(44);获取状态1.重要是获取该EditUI状态publicstaticfinalStringSTATUS_ADDNEW="ADDNEW";新增publicstaticfinalStringSTATUS_EDIT="EDIT";修改publicstaticfinalStringSTATUS_VIEW="VIEW";查看publicStringgetOprtState(){returnthis.oprtState;//获取状态}publicvoidsetOprtState(StringoprtType){this.oprtState=oprtType;this.uiParam.put("oprtState",oprtType);}手动调用BOTPIBTPManageriBTPManager=BTPManagerFactory.getLocalInstance(ctx);IBOTMappingbotMapping=BOTMappingFactory.getLocalInstance(ctx);// 查询与否存在此botp规则 EntityViewInfoev=newEntityViewInfo(); FilterInfofilter=newFilterInfo(); ev.setFilter(filter);filter.getFilterItems().add(newFilterItemInfo("name","ST_Weigh-Sample(Pur)")); BOTMappingCollection//获取相应botp规则botMappingCollection=botMapping.getBOTMappingCollection(ev); String[]idList=newString[weighCollection.size()]; if(weighCollection==null||weighCollection.size()==0){ returnnull; }// 构建idList参数原对象ID for(inti=0;i<weighCollection.size();i++){ idList[i]=weighCollection.get(i).getId().toString(); } //目的对象 SampleBillInfodestBillInfo=newSampleBillInfo(); Listlist=newArrayList(); SelectorItemCollectionselectors=null;//生成单据 BTPTransformResultbtpResult=iBTPManager.transformForBotp(idList,newString[1],list,selectors,destBillInfo.getBOSType().toString(),newObjectUuidPK(botMappingCollection.get(0).getId().toString()),weighCollection.get(0).getBOSType().toString()); SampleBillCollectiondestBillColls=(SampleBillCollection)btpResult.getBills(); BOTRelationCollectionbotRelationCols=btpResult.getBOTRelationCollection(); destBillInfo=(SampleBillInfo)destBillColls.getObject(0);叙事簿枚举自动转换与排序解决方案重要用途: 普通状况下叙事簿上枚举是自动转换,排序也可以在Qurey元数据中配备。 这个重要是用在浮现特殊状况下解决枚举自动转换和排序。protectedIQueryExecutorgetQueryExecutor(IMetaDataPKqueryPK,EntityViewInfoviewInfo){ IQueryExecutorexec=super.getQueryExecutor(queryPK,viewInfo); //设立排序if("com\\kingdee\\eas\\st\\batch\\biz\\app\\sampleBatchQuery" .equalsIgnoreCase(queryPK.toString())){ if(viewInfo.getSorter()==null ||viewInfo.getSorter().size()<=0){ SorterItemInfoaSorterItemInfo=newSorterItemInfo( "sampleBatchNumber"); aSorterItemInfo.setSortType(SortType.ASCEND); viewInfo.getSorter().add(aSorterItemInfo); } } //枚举自动转换 exec.option().isAutoTranslateEnum=true; returnexec; }网络互斥接口途径:ctrl.IMutexServiceControl作用:提供单据互斥功能。基本用法:/***判断单据与否处在网络互斥*/protectedvoidisMutexControlOK(ListpkList){ IMutexServiceControlmutex=MutexServiceControlFactory.getRemoteInstance(); for(inti=0;i<pkList.size();i++){ Stringid=pkList.get(i).toString(); //获取数据中心 StringDCName=SysContext.getSysContext().getDcName(); Stringkey=id+DCName; //获取网络控制列表 HashMapmap=mutex.getObjIDForUpdateList(); //依照单据ID+数据中心获得控制信息。如果为空,则该单据没有网络互斥。 Objectobject=map.get(key); if(object!=null){ MsgBox.showWarning(this,EASResource .getString(FrameWorkClientUtils.strResource +"Error_ObjectUpdateLock_Request")); SysUtil.abort(); } } } mutex.requestObjIDForUpdate(billId,user.getString("id"));//祈求锁定参数为单据ID,顾客ID mutex.releaseObjIDForUpdate(billId);//解锁
后台权限控制ctx.set("disablePermissionForKScript",newBoolean(true));//不需要权限ctx.set("disablePermissionForKScript",newBoolean(false));//需要权限发送消息protectedvoid_sendMessage(Contextctx,StringsampleBatchNumber)throwsBOSException{ SolutionInfosolution=MetaDataLoaderFactory.getLocalMetaDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技公司与研究机构合作协议三篇
- 2024年度建筑设计分包协议2篇
- 楼板维修合同范本
- 2024年度软件购买及技术支持合同
- 2024年度货物运输合同货物损坏索赔
- 二零二四年度城市轨道交通破桩头劳务合同
- 2024年度股权转让暨投资合同2篇
- 2024年度翻译服务与出版合同
- 二零二四年度企业商业秘密保护合同
- 2024版音视频集成设计与施工合同
- 蒸汽管道吹扫方案
- 职业危害防治计划和实施方案
- 班前安全讲话基本内容
- 六年级趣味数学活动课堂(课堂PPT)
- 土壤中除草剂残留对烟叶生产的影响与应对措施
- 消控室值班记录表
- AQL2.5抽检标准
- 液压破碎锤液压系统的设计与研究
- 百灵达X1622USB - X2222USB - X2442USB - 中文说明书 - 图文-
- 变频电机参数规格-YP2
- 科技创新政策解读PPT课件
评论
0/150
提交评论