持续更新中……

企鹅qun:688729914

​​​​​​​欢迎加入,共同进步

值更新后赋值

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core import *
def DataChanged(e):groupNumber = str(this.Model.GetValue("FGroup")['Number']) if (this.Model.GetValue("FGroup") <>None) else "0";if "G2" in groupNumber:this.Model.SetValue("F_PFIH_Group","101435");else :this.Model.SetValue("F_PFIH_Group","");

记录上机操作日志

参数说明:

参数logObject为日志详情,关键属性如下:

属性

描述

string pkValue

单据内码

OperatingEnvironment Environment

操作场景,枚举值,包括登录、退出、操作等;

string SubSystemId

子系统

【子系统】

SELECT b.FNAME AS 子系统名称,a.FID AS 子系统内码,a.*

FROM T_META_SUBSYSTEM a

LEFT JOIN T_META_SUBSYSTEM_L b ON a.FID=b.FID AND b.FLOCALEID=2052

string Description

日志详情

string ObjectTypeId

业务对象内码,如单据的FormId

【业务对象】

SELECT b.FNAME AS 业务对象名称,a.FID AS [业务对象标识(FormId)],*

FROM T_META_OBJECTTYPE a

LEFT JOIN T_META_OBJECTTYPE_L b ON a.FID=b.FID AND b.FLOCALEID=2052

WHERE a.FID='SAL_OUTSTOCK'

string OperateName

操作名称,如”保存”、”删除”、”提交”、”审核”、”反审核”

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from System import *
from Kingdee.BOS.Core.Log import *
from Kingdee.BOS.ServiceHelper import *def BarItemClick(e) :if e.BarItemKey=="JQH_tbButton" :message = this.Model.GetValue("FName")logObj = LogObject()logObj.pkValue = "0"logObj.SubSystemId = "BOS";logObj.Description = "测试描述"+str(message)logObj.Environment = OperatingEnvironment.BizOperate;logObj.OperateName = "测试操作名称"LogServiceHelper.WriteLog(this.Context, logObj)

特殊说明: 该插件保存时会报错如下的错,可以忽略不管

Could not add reference to assembly Kingdee.BOS.ServiceHelper在 IronPython.Runtime.ClrModule.AddReference(CodeContext context, String name)在 IronPython.Runtime.ClrModule.AddReference(CodeContext context, Object[] references)在 Microsoft.Scripting.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)在 Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)

发送get请求

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference("System")
clr.AddReference("System.Web.Extensions")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Newtonsoft.Json")
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
import sys
from System import *
from System.Collections.Generic import *
from System.Threading import *
from System.IO import *
from System.Net import *
from System.Text import *
from System.Security.Cryptography import *
from System.Web.Script.Serialization import *
from System.Collections.Generic import Dictionary
from Newtonsoft.Json.Linq import *def BarItemClick(e) :if e.BarItemKey=="JQH_tbButton" :test = get("https://www.test.com")this.View.ShowMessage(test)def get(url):req = HttpWebRequest.Create(url);req.Method = "GET";rsp = req.GetResponse();stream = rsp.GetResponseStream();reader = StreamReader(stream, Encoding.GetEncoding("utf-8"));result = reader.ReadToEnd();return result

执行查询和更新sql

import clr
clr.AddReference('Kingdee.BOS.App')
from Kingdee.BOS.App.Data import *def BarItemClick(e):if e.BarItemKey=="JQH_getSql":# 查询当前登录用户信息sql = "SELECT FNAME FROM T_SEC_USER WHERE FUSERID="+this.Context.UserId.ToString();userName = DBUtils.ExecuteScalar(this.Context,sql,None);this.View.ShowMessage(userName);elif e.BarItemKey=="JQH_exeSql":# 修改当前登录用户的描述sql = "UPDATE T_SEC_USER SET FDESCRIPTION=N'test' WHERE FUSERID="+this.Context.UserId.ToString();count = DBUtils.Execute(this.Context,sql);this.View.ShowMessage("更新成功,SQL:"+sql+",受影响行数:"+count.ToString());

列表过滤条件,新增菜单发布时的自定义参数

import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.Contracts")
from Kingdee.BOS import *
from Kingdee.BOS.JSON import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Const import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.List import *
from System import *
from System.Collections.Generic import *
from System.Linq import *
def PrepareFilterParameter(e):listType=this.View.OpenParameter.GetCustomParameter("BillTypeID");if listType:filterString="";filterString=str.Format(" FBILLTYPEID='"+listType+"'");e.FilterString+="AND";e.FilterString+=filterString;#this.View.showMessage(e.FilterString)

单据体值更新时间

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
from Kingdee.BOS.Core import *
import Kingdee.BOS.Orm.DataEntity as de
from System import *def DataChanged(e):#获取单据体选中行entry_row = this.View.Model.GetEntryCurrentRowIndex("FSaleOrderEntry");FQty = Convert.ToInt32(this.View.Model.GetValue("FQty", entry_row))#获取单据体    entity=this.View.BusinessInfo.GetEntity("FSaleOrderEntry")#获取子单据体,此单据体是一个集合,根据每个集合的属性去找关联单据体    subentity=this.View.BusinessInfo.GetEntity("FOrderEntryPlan")#获取单据体数据航,DynamicObjectCollection    entityRows=entity.DynamicProperty.GetValue(this.Model.DataObject)#获取更新的字段key = e.Field.Key.ToUpperInvariant();#this.View.ShowMessage(key)if key == 'F_JQH_STARTDATE' or key == 'F_JQH_ENDDATE':#this.View.ShowMessage(key)if entityRows:#this.View.ShowMessage('aa')#循环单据体for entityRow in entityRows :if entityRow :StartDate = Convert.ToDateTime(this.View.Model.GetValue("F_JQH_StartDate", entry_row))EndDate = Convert.ToDateTime(this.View.Model.GetValue("F_JQH_EndDate", entry_row))month = (EndDate.Year - StartDate.Year) * 12 + (EndDate.Month - StartDate.Month)month = Convert.ToInt32(month)#this.View.ShowMessage(Convert.ToString(month))#根据行获取子单据体#if entry_row > 1 and len(StartDate) > 0 and len(EndDate) > 0 and month > 0:if month > 0:count = 0;while(count < month):subEntityRows = subentity.DynamicProperty.GetValue(entityRow)newobject=de.DynamicObject(subEntityRows.DynamicCollectionItemPropertyType)#newobject["PlanQty"] = 122this.View.Model.SetValue('F_JQH_Integer',newobject,322)#this.View.Model.SetValue(this.View.Model.GetValue("FQty", entry_row),newobject,cfentityRow["FPlanQty"])subEntityRows.Add(newobject)count = count + 1#this.View.ShowMessage(Convert.ToString(entry_row))

单据保存后自动提交审核

import clr
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.App import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from System.Text import *
from System.Collections import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
def EndOperationTransaction(e):idList =List[object]()for billObj in e.DataEntitys:BillId = str(billObj["Id"])sql = "SELECT FbillTypeID FROM t_AR_receivable WHERE FID="+BillId;BillTypeID = DBUtils.ExecuteScalar(this.Context,sql,None);idList.Add(BillId)sql = "UPDATE T_SEC_USER SET FDESCRIPTION=N'"+BillTypeID+"' WHERE FUSERID=200";count = DBUtils.Execute(this.Context,sql);if(BillTypeID == "61a1d449dc25fe"):pkArray = idList.ToArray()formID=this.BusinessInfo.GetForm().Idmeta = MetaDataServiceHelper.Load(this.Context, formID)submitOption = NonesubResult =BusinessDataServiceHelper.Submit(this.Context,meta.BusinessInfo,pkArray,"Submit",submitOption)if (subResult.IsSuccess == True):       auditOption = NoneauditResult = BusinessDataServiceHelper.Audit(this.Context,meta.BusinessInfo,pkArray,auditOption)
注意:上面的代码保存时会出现如下提示,可以忽略不管。

Could not add reference to assembly Kingdee.BOS.App

金蝶云·星空python插件示例代码相关推荐

  1. 金蝶云星空Web插件与App插件的区别

    App层也就是应用服务器层,App层插件与Web层插件有所不同 Web层有Web插件,App层有App插件 Web层主要是与展示层数据交互,偏向于与界面的交互,消息通知,控件编程,以及触发各种事件与实 ...

  2. 金蝶云星空通过python实现物料编码审核后自动分配组织

    一.业务场景 1.本公司物料编码来源于PDM系统(神州数码),并调用金蝶云星空API接口导入物料和调用审核接口. 2.本公司PDM导入的物料会在,云星空新增字段上写入标识,代表本物料将导入到那个组织. ...

  3. python搭建webapi_Python 版本--金蝶云星空新版WebAPI SDK--新手快速入门指南

    /******************************************************************************** ** 名称: Python版本--金 ...

  4. 云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...

    1. 需求描述 PLM系统中的物料,BOM同步到金蝶云星空系统中时,构造的json数据中,一些基础资料字段需要传递编码,而不是名称. 本接口提供获取所有基础资料的编码.名称,可作为PLM系统中的对照关 ...

  5. 金蝶云星空使用WebAPI来新增单据

    有很多客户需求在后台自动生成某张单据,金蝶云星空提供了WebApi,包含了保存,提交,审核,删除单据的接口,下面以生产订单的保存,提交,审核为例,说明一下应用WebApi后台自动生成生产订单的功能,下 ...

  6. 从金蝶云星空到旺店通·旗舰奇门通过接口配置打通数据

    对接源平台:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台.K/3Clo ...

  7. 金蝶云星空和钉钉接口打通对接实战

    对接系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台.K/3Clou ...

  8. java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录

    java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录 1.准备工作 1.1 接口调用账户 1.2 下载 金蝶星空云 ...

  9. 赛意SMOM和金蝶云星空单据接口对接

    赛意SMOM和金蝶云星空单据接口对接 数据源系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式:通过标准的业务架构:多会计准则.多币别.多地点.多组织.多 ...

  10. 金蝶云星空与管易云对接集成其他入库查询打通其他入库单新增完结接口v2

    数据源平台:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台.K/3Clo ...

最新文章

  1. TNS-12545: Connect failed because target host or object does not exist
  2. springboot系列四、配置模板引擎、配置热部署
  3. php 找到行mysql_php – Mysql – gt;使用order by时获取行位置
  4. php fork demo,php多进程demo
  5. 经纬徐传陞:越是市场低迷之时,越要把握自己的节奏 | 远见2018
  6. Python机器学习简介
  7. 新手入门—递归实现指数型枚举
  8. windows子系统激活root权限
  9. 【无标题】MobaXterm远程连接服务器跑深度学习
  10. 矩阵键盘_按键检测_按键次数检测
  11. 芯片设计公司有哪些小而美的选择?
  12. ubuntu中进行复制粘贴
  13. 游戏一旦开始,结局就不是你能控制的!
  14. ERTEC200P-2 PROFINET设备完全开发手册(目录)
  15. 有关阿里云服务器ping不通解决办法(云服务器搭建完环境访问不了ip解决办法)
  16. 小学数学测试软件报告,小学数学学业水平测试分析报告.doc.doc
  17. 导入semantic-ui-css/semantic.min.css样式失败
  18. 一个有趣好玩的HTML网页
  19. 《软件技术基础》之《操作系统习题解析》
  20. Algorithm:串联所有单词的子串

热门文章

  1. go 获取文件的md5值
  2. 为什么公司宁愿花 15k 重招一个新人,也不愿加薪 5k 留住老程序员?
  3. 8个免费图片素材网,赶紧收藏起来
  4. 【JS】中文繁简转换
  5. 微信模板消息发送帮助类
  6. word文档压缩文件大小
  7. PPT插入Excel图标,如果水平翻转做出漂亮逻辑图表?
  8. 如何批量压缩图片?教你一键批量压缩图片的方法技巧
  9. Java多重选择switch
  10. Vm虚拟机Deepin安装教程---kalrry