本文档详细描述了BillBusinessInfo对象的管理功能和相关方法,该对象主要用于管理单据元数据对象及其操作。文档首先介绍了BillBusinessInfo中管理单据的元数据对象,包括返回单据元素、实体、主业务组织字段等方法。随后,详细列举了多种常用方法,如获取单据编号、类型字段,以及单据的全部字段、ORM数据模型对象等。此外,还提供了对单据元数据进行操作的方法,如新建数据、增加/删除/复制/移动单据体行、导入Excel文件等。文档还介绍了如何操作单据的脏标记、获取/设置字段值、处理子单据体数据等高级功能。最后,通过示例和代码片段展示了这些方法和功能的实际应用场景和注意事项。
BillBusinessInfo
当前界面所管理的单据元数据对象。
名称 | 描述 |
Elements | 返回单据上的全部元素,包括全部字段、实体 |
Entrys | 返回单据上的全部实体 |
MainOrgField | 返回单据的主业务组织字段 |
常用方法
名称 | 描述 |
GetBillNoField() | 获取单据编号字段,如果是基础资料,则返回基础资料编码 |
GetBillTypeField() | 获取单据类型字段 |
GetBosFields() | 获取单据全部字段 |
GetDynamicObjectType([bool forceRebuild = false]) | 获取单据的ORM数据模型对象, 参数决定是否重新构建ORM数据对象模型。单据元数据改变后,需要强制要求重新构建ORM数据对象模型。 |
GetEntity(string key) | 获取单据的实体元数据 |
GetField(string key) | 获取单据字段元数据 |
GetFieldList() | 获取单据全部字段元数据列表 |
GetForm() | 获取单据整体属性元数据 |
GetRealField(string key) | 获取代理字段的真实字段元数据 |
GetRedBlueField() | 获取红蓝单标志字段 |
GetSubBusinessInfo(System.Collections.Generic.List<string> sectionKeys) | 根据所选字段,产生节选单据元数据 |
BusinessInfo
当前界面对应的元数据对象;
Context
上下文对象。
常用属性
名称 | 描述 |
ClientType | 客户端类型,如SL客户端,WPF客户端 |
ComputerName | 客户端机器名 |
ContextId | 上下文Id,唯一标识 |
CurrentOrganizationInfo | 当前组织信息 |
DatabaseType | 数据库类型,如SQL Server、Oracle |
DataCenterName | 数据中心名称 |
IpAddress | 客户端机器IP地址 |
IsMultiOrg | 是否启用了多组织 |
LoginName | 登录用户名 |
UserId | 登录用户内码 |
UserName | 登录用户名 |
DataChanged
界面上的数据包,是否被改动。
DataObject
界面的后台数据包对象。
FunctionLib
支持实体规则运算的函数库;
OpenParameter
显示当前界面时,传入的参数。
ParameterData
单据选项数据包。
SubSytemId
子系统内码。
UserTypes
用户类型:普通用户、管理员;
公共方法
BeginIniti
标记数据模型进入初始化状态,避免触发字段值改变事件;
EndIniti
标记数据模型已经结束了初始化,可以触发值改变事件;
CreateNewData
新建空白数据包,并刷新界面;
或者传入自行构建的数据包,刷新界面;
语法
方法定义
C# | |
void CreateNewData(); void CreateNewData(DynamicObject newObject); |
参数说明
参数 | 说明 |
DynamicObject newObject | 动态表单数据包;如果传入了此参数,将把此数据包绑定到界面上 |
CreateNewEntryRow
向实体中增加一行,自动填写字段的默认值,并刷新到界面单据体表格;
语法
方法定义
C# | |
void CreateNewEntryRow(string key); void CreateNewEntryRow(Entity entity, int rowIndex); |
参数说明
参数 | 说明 |
string key | 实体Key |
Entity entity | 实体 |
int rowIndex | 指定新行位置 |
BatchCreateNewEntryRow
批量新建单据体行;
语法
方法定义
C# | |
void BatchCreateNewEntryRow(string key, int rowCount); void BatchCreateNewEntryRow(string key, DynamicObject rowDataEntity, int rowCount); |
参数说明
参数 | 说明 |
string key | 实体Key |
int rowCount | 批量创建的行数 |
DynamicObject rowDataEntity | 以此数据包为模板,批量创建其他行 |
InsertEntryRow
向单据体中插入新行,并放在第row行上;
语法
方法定义
C# | |
void InsertEntryRow(string key, int row); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 指定新行行号 |
备注
新行插入完毕,自动处理各字段默认值,并调整行序号;
示例代码暂缺;
ImportEntry
把uploadFile参数指定的Excel文件,导入到key参数对应的单据体中;
语法
方法定义
C# | |
void ImportEntry(string key, string uploadFile); |
参数说明
参数 | 说明 |
string key | 实体Key |
string uploadFile | 上传的文件,在临时目录中的完整文件名 |
备注
特别注意:要求Excel中包含完整的单据体字段,如果缺少字段,会中断报错;另外,导入为追加模式;
示例代码暂缺;
CopyEntryColumn
把指定行的某字段值复制到整列;
语法
方法定义
C# | |
void CopyEntryColumn(string key, int row, string field); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 来源行号 |
string field | 字段 |
备注
把指定单据体行上的某个字段值,复制到其他行上,其他行字段原值,将会被覆盖;
示例代码暂缺;
CopyEntryRow
复制行;
语法
方法定义
C# | |
void CopyEntryRow(string key, int row, int newRow, bool isCopyLinkEntry = false); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 来源行号 |
int newRow | 目标行号; 如果为-1,则自动创建新行,放在最后,作为目标行 |
bool isCopyLinkEntry | 是否复制关联关系; 关联关系记录了本行与上游单据的关系,默认不复制 |
备注
单据体中的字段,如果控制选项中,勾选了不允许复制,则在复制行时,略过这些字段;
示例代码暂缺;
CopyEntryRowFollowCurrent
在行号curFocuseRowIndex之后,插入新行,并把行row的字段值,复制过来;
语法
方法定义
C# | |
void CopyEntryRowFollowCurrent(string key, int curFocusRowIndex, int row, bool isCopyLinkEntry = false); |
参数说明
参数 | 说明 |
string key | 实体Key |
int curFocusRowIndex | 在此位置,创建新行,并作为目标行 |
int row | 来源行号 |
bool isCopyLinkEntry | 是否复制关联关系; 关联关系记录了本行与上游单据的关系,默认不复制 |
备注
于本函数在字段值的复制处理上,同CopyEntryRow方法;
示例代码暂缺;
MoveDownEntryRow
把单据体表格中的数据行,往下移动;
语法
方法定义
C# | |
void MoveDownEntryRow(string key, int row); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 需下移的行号 |
备注
移动完毕后,行序号并没有重排,需要自行处理;功能实现不太完备,请谨慎使用;
示例代码暂缺;
MoveUpEntryRow
把单据体表格中的数据行,往上移动;
语法
方法定义
C# | |
void MoveUpEntryRow(string key, int row); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 需上移的行号 |
备注
移动完毕后,行序号并没有重排,需要自行处理;功能实现不太完备,请谨慎使用;
示例代码暂缺;
DeleteEntryData
清空指定单据体的全部行;
语法
方法定义
C# | |
void DeleteEntryData(string key); |
参数说明
参数 | 说明 |
string key | 实体Key |
备注
示例代码,参阅CreateNewEntryRow;
DeleteEntryRow
删除单据体的指定行;
语法
方法定义
C# | |
void DeleteEntryRow(string key, int row); |
参数说明
参数 | 说明 |
string key | 实体Key |
int row | 需删除的行号 |
备注
示例代码暂缺;
GetDirty
获取单据数据包的脏标志状况;
语法
方法定义
C# | |
bool GetDirty(); |
备注
保存单据数据时,会根据字段的改动情况,生成更新、插入、删除SQL语句,单据数据包没有进行过任何更改,保存时,不会执行任何SQL语句;
字段如果发生了改动,则会记录此字段的脏标志,单据体行发生了变动,也会记录脏标志;
单据数据包的脏标志,就是判断数据包是否发生过变更的依据;
如果单据数据包有更改,本方法即返回true;
如果返回false,表示未新增、删除行,字段也没有修改过;
示例代码暂缺;
ClearDirty
清除整单数据包,或者所指定单据体行数据包中的脏标记;
语法
方法定义
C# | |
void ClearDirty(); void ClearDirty(string entityKey, int row); |
参数说明
参数 | 说明 |
string entityKey | 实体Key |
int row | 需清除脏标记的行号 |
备注
BOS平台在保存单据时,会根据数据包中各字段的脏标记,判断字段值是否发生了改动,如果未发生改动,保存时略过此字段;
清除了脏标记,保存操作会判断字段未更改过,略过不更新;请谨慎调用此方法;
示例代码略;
ClearNoDataRow
清除空行;
语法
方法定义
C# | |
void ClearNoDataRow(); |
备注
单据界面在加载数据包时,为方便用户编辑,会为单据体自动追加一空白行,保存前,这些空行需要调用本方法清除掉。
默认情况下,平台会自动调用本方法清除空白行,如果需要在插件中自行调用保存操作,则需要在调用保存操作前,调用本方法清除空行;
清除空行的主要依据,是单据体的关键字段是否有值,如果关键字段设置了默认值,则系统会判定此行非空白,不予删除;
示例代码暂缺;
GetBaseDataFieldByKey
到单据元数据中,取指定基础资料字段的元数据;
语法
方法定义
C# | |
BaseDataField GetBaseDataFieldByKey(string key); |
参数说明
参数 | 说明 |
string key | 字段key |
备注
如果给定的key不存在,返回null;
如果字段不是基础资料字段,返回null;
示例代码暂缺;
IsFlexField
判断字段是否为弹性域维度字段;
语法
方法定义
C# | |
bool IsFlexField(string key); |
参数说明
参数 | 说明 |
string key | 字段key |
备注
辅助资料、仓位、核算项目等弹性域字段,会包含很多维度,也要展示在表格中,供用户直接编辑。这些维度字段,并不是单据的原生字段,是把弹性域字段展开后,自动产生的;在某些功能上,可能需要做特别处理,因此,需要区分出这些维度字段;
示例代码暂缺;
GetDecimal
获取指定数值字段的精度;
语法
方法定义
C# | |
int GetDecimal(string key); |
参数说明
参数 | 说明 |
string key | 字段key |
备注
如果字段不存在、或者字段非数值类型,返回0;
示例代码暂缺;
GetEntityDataObject
获取指定单据体的全部行数据包集合,或者取指定单据体的行row数据包;
语法
方法定义
C# | |
DynamicObjectCollection GetEntityDataObject(Entity entity); DynamicObject GetEntityDataObject(Entity entity, int row); |
参数说明
参数 | 说明 |
Entity entity | 实体 |
int row | 行号 |
备注
子单据体,仅返回归属于父单据体当前焦点行的子集合,其他与当前父单据体焦点行无关的子单据体行,不会返回;
TryGetEntryCurrentRow
尝试返回单据体焦点行数据包、行号;
语法
方法定义
C# | |
bool TryGetEntryCurrentRow(string entryKey, out DynamicObject row, out int rowIndex); |
参数说明
参数 | 说明 |
string entryKey | 实体Key |
DynamicObject row | 输出焦点行数据包 |
int rowIndex | 输出焦点行号 |
备注
如果指定的单据体中无数据行,则本函数返回false,输出参数row为null,rowIndex为-1;
示例代码暂缺;
GetEntryCurrentRowIndex
获取单据体当前焦点行号;
语法
方法定义
C# | |
int GetEntryCurrentRowIndex(string key); |
参数说明
参数 | 说明 |
string key | 实体Key |
备注
对单据体字段赋值SetValue时,需要传入行号,如果当时的上下文中,并没有行号参数,则可以调用此方法,获取单据体焦点行号;
案例 – 取当前物料的销售价格返回
代码来源
Kingdee.K3.SCM.Business.DynamicForm.Operation.QuerySalPrice
需求背景
供应链领域,封装了一个通用的操作:取销售价格返回;
此操作需要根据界面上录入的价目表、物料等信息,显示出对应的销售价格列表,供用户查询;
难点在于显示销售价格列表之前,需要取得界面上的相关字段值,如果字段在单据体,必须取焦点行的字段值;
实现方案
编写操作实现类(AbstractBillOperation),重载操作执行方法。
依赖IDynamicFormModel接口,取得当前界面上,价目表、物料等字段值,并拼接出过滤条件;
并把过滤条件传入,据此显示、过滤销售价格列表;
关键字
自定义操作,操作实现类,显示列表界面,设置列表过滤条件,取单据体字段值,取单据体当前行的字段值;
SetEntryCurrentRowIndex
设置单据体的焦点行;
语法
方法定义
C# | |
void SetEntryCurrentRowIndex(string key, int rowIndex); |
参数说明
参数 | 说明 |
string key | 实体Key |
int rowIndex | 焦点行号 |
备注
子单据体数据集合与单据体焦点密切相关,如果需要对其他单据体行所属的子单据体行进行数据处理,需要切换焦点;
示例代码暂缺;
GetRowIndex
返回单据体数据行的行号,行号从0开始;
语法
方法定义
C# | |
int GetRowIndex(Entity entity, DynamicObject activeRow); |
参数说明
参数 | 说明 |
Entity entity | 实体 |
DynamicObject activeRow | 实体行数据包 |
备注
本方法,能够把行数据包转换为行号,作为Model对象的其他方法的参数;
示例代码暂缺;
GetEntryRowCount
获取单据体行数;
语法
方法定义
C# | |
int GetEntryRowCount(string key); |
参数说明
参数 | 说明 |
string key | 实体Key |
备注
子单据体,返回父单据体当前焦点行所含子集合行数;其他父单据体行下的子单据体行,不包括在内;
示例代码暂缺;
GetChildFieldRowIndex
根据父字段所在的单据体行,反查指定子字段所在的单据体的对应行号;常用于在刷新父字段后,同步刷新子字段之前,定位子字段焦点行;
语法
方法定义
C# | |
int GetChildFieldRowIndex(Field parentField, Field childField, int parentFieldRowIndex); |
参数说明
参数 | 说明 |
Field parentField | 父字段 |
Field childField | 子字段 |
int parentFieldRowIndex | 父单据体行号 |
备注
示例代码暂缺;
LoadFieldDataWithCoreFilter
附加基础资料限定条件,取其数据包;如果条件不满足,则返回null;
语法
方法定义
C# | |
DynamicObject LoadFieldDataWithCoreFilter(BaseDataField field, object pkValue, DynamicObject activeRow); |
参数说明
参数 | 说明 |
BaseDataField field | 基础资料字段 |
object pkValue | 内码 |
DynamicObject activeRow | 基础资料所在单据体行数据包,需要据此取基础资料的控制字段值,以组成完整的过滤条件 |
备注
基础资料在单据上的使用时,可能需要一些额外的限制,如需要受数据授权、组织隔离等限制,也可能是需要受到其他字段所选值限制,比如供应商联系人,并不能选择任意联系人填写到单据上,必须选择当前供应商名下的联系人;
因此,插件给基础资料字段赋值时,随意的给一个pkValue,可能赋值不会成功;
本函数,会自动考虑各种限制条件,如果条件满足,则返回pkValue对应的基础资料数据包,如果条件不满足,则返回null;
示例代码暂缺;
LoadReferenceData
到数据库中,加载dt模型,内码为pkValue的数据包;
语法
方法定义
C# | |
DynamicObject LoadReferenceData(DynamicObjectType dt, object pkValue); |
参数说明
参数 | 说明 |
DynamicObjectType dt | 基础资料ORM数据模型: BaseDataField.RefFormDynamicObjectType |
object pkValue | 内码 |
备注
本方法可以如下代码替代:
BusinessDataServiceHelper.LoadSingle(this.Context, pkValue, dt, option);
差别在于如果数据库中不存在内码为pkValue的数据,本方法不会报中断,而BusinessDataServiceHelper.LoadSingle会报中断;
示例代码暂缺;
LoadReferenceDataBatch
到数据库中,批量加载数据包;数据包模型为dt,数据内码为pkValues集合;
语法
方法定义
C# | |
DynamicObject[] LoadReferenceDataBatch(DynamicObjectType dt, object[] pkValues); |
参数说明
参数 | 说明 |
DynamicObjectType dt | 基础资料ORM数据模型: BaseDataField.RefFormDynamicObjectType |
object[] pkValues | 内码数组 |
备注
本方法可以如下代码替代:
BusinessDataServiceHelper.Load(this.Context, pkValues, dt);
示例代码暂缺;
GetValue
读取字段值;
语法
方法定义:
C# | |
object GetValue(Field field); object GetValue(string key); object GetValue(Field field, int row); object GetValue(string key, int row); |
参数说明
参数 | 说明 |
Field field | 字段 |
string key | 字段Key |
int row | 行号,如果不指定行号,取当前焦点行 |
返回值
字段类型不同,本函数的返回值类型也不同,可能的值类型如下:
值类型 | 字段类型 |
string | 文本、多行文本、多语言文本、下拉列表、单据状态、单选按钮组等 |
decimal | 小数、数量、基本单位数量等 |
long | 整数等 |
DateTime | 日期、长日期、时间 |
bool | 复选框 |
DynamicObject | 基础资料、辅助资料 |
DynamicObjectCollection | 多选基础资料、单据体 |
备注
如果字段在单据体表格中,还需要指定单据体行号;如果不指定行号,则默认取单据体焦点行上的字段值;
示例代码暂缺;
SetValue
为字段赋值。
语法
方法定义:
C# | |
void SetValue(string key, object value); void SetValue(Field field, DynamicObject activeRow, object value); void SetValue(string key, object value, int row); void SetValue(Field field, DynamicObject rowDataEntity, object value, int rowIndex); |
参数说明
参数key为字段key;
参数row为单据体行号,如果为单据头字段赋值,可以略过此参数;
参数value为字段值,不同类型的字段可以接受的值不同,下表列出一些常用字段的值类型:
字段类型 | 值类型 |
文本 | String |
小数 | decimal |
整数 | Long |
日期 | DateTime |
长日期 | DateTime |
多行文本 | string |
组织 | Long |
复选框 | Bool |
下拉列表 | String |
单据编号 | String |
基础资料 | DynamicObjec或者基础资料内码(string或long) |
基础资料属性 | 不能赋值 |
多类别基础资料列表 | String |
多类别基础资料 | DynamicObjec或者基础资料内码long |
创建人 | 不能赋值 |
用户 | DynamicObjec或者用户内码long |
批次 | 根据录入模式确定值类型,可能为批号string或者是批号主档内码long |
单价 | decimal |
金额 | decimal |
数量 | decimal |
多选基础资料 | 单条基础资料数据包DynamicObject 单个基础资料内码long或者 string 多个基础资料内码IEnumerable<T> |
单选按钮 | 不能赋值 |
创建日期 | 不能赋值 |
修改人 | 不能赋值 |
修改日期 | 不能赋值 |
多选下拉列表 | String |
单选辅助资料列表 | DynamicObjec或者辅助资料内码string |
多选辅助资料列表 | 多条辅助资料数据集合DynamicObjectCollection 单条辅助资料数据包DynamicObject 多个辅助资料内码string或者用”,”分隔各内码 多个辅助资料内码object[] |
图片字段 | String |
金额大写控件 | 不能赋值 |
单选按钮组 | string |
分组 | DynamicObjec或者分组内码long |
多语言文本 | String |
基本单位数量 | decimal |
计量单位 | DynamicObjec或者单位内码long |
折扣率 | Decimal |
折扣额 | Decimal |
组合字段 | JSONObject其中包含了子项Key与Value |
颜色 | String |
打印次数 | 不能赋值 |
打印时间 | 不能赋值 |
单据体图片字段 | String |
富文本 | string或者byte[] |
上传文件字段 | string或者JSONArray |
富文本内容编辑 | String |
跨组织业务类型 | DynamicObjec或者内码long |
附件字段 | string或者JSONArray |
代理字段 | 不能赋值 |
单据状态 | String |
维度关联字段 | 不能赋值 |
时间 | DateTime |
单据类型 | 不能赋值 |
大文本 | String |
XML字段 | String |
源单类型 | String |
源单编号 | String |
基本计量单位 | DynamicObjec或者内码long |
公式编辑器 | String |
动态文本 | String |
多语言XML字段 | String |
税组合 | DynamicObjec或者税组合内码long |
附件数 | 不能赋值 |
业务流程 | DynamicObjec或者流程内码string |
红蓝字 | String |
移动代理字段 | 不能赋值 |
进度文本 | Decimal |
备注
推荐使用void SetValue(string key, object value, int row)重载方法,参数更加简单、直接;其他重载方法效果一样,但是参数比较难以准备,或者难以理解;
示例代码暂缺;
SetCombinedValue
设置组合字段值;
语法
方法定义
C# | |
void SetCombinedValue(string combinedKey, string valueKey, object value, int row); |
参数说明
参数 | 说明 |
string combinedKey | 组合字段Key |
string valueKey | 组合字段子项Key |
object value | 组合字段子项值 |
int row | 行号 |
备注
组合字段,包含了多个子项,根据一定的条件,选择某个子项作为展示项;
赋值时,需要明确指定需要给那个子项赋值。相比其他字段,就复杂了一些,因此,封装了一个单独的方法;
示例代码暂缺;
SetItemValueByID
设置基础资料内码,为其赋值;
语法
方法定义
C# | |
void SetItemValueByID(string key, object id, int row); |
参数说明
参数 | 说明 |
string key | 基础资料字段Key |
object id | 基础资料内码 |
int row | 行号 |
备注
如果不存在此内码的基础资料,或者其他附加条件(数据授权、组织隔离、控制字段限定等)不符合,赋值会失败。
推荐统一使用SetValue方法为基础资料赋值,不推荐本方法;
示例代码暂缺;
SetItemValueByIDFromClient
对基础资料字段赋值,设置基础资料内码;
语法
方法定义
C# | |
void SetItemValueByIDFromClient(string key, object id, int row); |
参数说明
参数 | 说明 |
string key | 基础资料字段Key |
object id | 基础资料内码 |
int row | 行号 |
备注
本方法会略过条件检查,直接取基础资料数据包填写到字段上;
本方法是BOS平台内部为提升性能,专门封装的方法,不推荐插件使用;
示例代码暂缺;
SetItemValueByNumber
根据基础资料的编码,检索基础资料数据,检索成功后,把成功取得的基础资料数据包,填写到单据上;
语法
方法定义
C# | |
void SetItemValueByNumber(string key, string number, int row); |
参数说明
参数 | 说明 |
string key | 基础资料字段Key |
string number | 基础资料编码 |
int row | 行号 |
备注
如果不存在此编码的基础资料,或者其他附加条件(数据授权、组织隔离、控制字段限定等)不符合,赋值会失败。
在仅知道基础资料编码的情况下,推荐使用本方法为基础资料赋值;
示例代码暂缺;
SummaryDataAndFill
把单据体字段,汇总到单据头字段上;
语法
方法定义
C# | |
void SummaryDataAndFill(Field SummaryField, string TargetFieldName); |
参数SummaryField为单据体字段;其他实体类型,包括子单据体的字段,未支持;
参数TargetFieldName为单据头字段Key,子单据头字段也支持;
如果SummaryField非单据体字段,本函数直接略过,不计算,也不对目标字段做改动;
示例代码暂缺;
GetService
方法定义:
C# | |
T GetService<T>(); |
获取注入到表单模型的特殊服务,如填写默认值的服务(IdefaultValueCalculator),数据库访问服务(IDBModelService),函数实现服务(IExprFuncService)等;
这些服务只有在特殊场景下才会用到,插件中,直接使用Kingdee.BOS.ServerHelper中封装的静态类即可;
示例代码暂缺;
FuncPermissionAuth
方法定义:
C# | |
List<Core.Permission.PermissionAuthResult> FuncPermissionAuth(IEnumerable<DynamicObject> datas, string strPermissionItemId, string strFuncName = null, bool bUseFilterScope = true);
List<Core.Permission.PermissionAuthResult> FuncPermissionAuth(string[] ids, string strPermissionItemId, string strFuncName = null, bool bUseFilterScope = true); |
验证功能权限;
默认情况下,权限项绑定在操作上,菜单点击时,调用操作,自动验证操作绑定的权限项;
某些特殊场景,插件需要调用此方法,自行判断用户是否具有某个权限项;
示例代码,参阅Context章节;
GetPermissionOrg
方法定义:
C# | |
List<long> GetPermissionOrg(string perItem); |
返回一个组织列表:当前用户,在这些组织下,分配了指定的权限项;
例如,可以通过此方法,查询当前用户可以在那些组织下新增本单据;
示例代码暂缺;
WriteLog
方法定义:
C# | |
void WriteLog(LogObject logObject); |
写上机日志;
参数logObject为日志详情,关键属性如下:
属性 | 描述 |
string pkValue | 单据内码 |
OperatingEnvironment Environment | 操作场景,枚举值,包括登录、退出、操作等; |
string SubSystemId | 子系统 |
string Description | 日志详情 |
string ObjectTypeId | 业务对象内码,如单据的FormId |
string OperateName | 操作名称,如”保存”、”删除”、”提交”、”审核”、”反审核” |
BatchWriteLog
方法定义:
C# | |
void BatchWriteLog(List<LogObject> logObjects); |
批量写用户上机操作日志,需要预先准备好待写的日志对象(LogObject);
推荐阅读