CRM二次开发及常见问题整理

更新时间:2024-04-24 19:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一在现一、、在CCRRMM中中利利用用BBOOSS构构建建了了一一张张EEbbooss单单据据,,现在在想想将将此此单单据据作作为为GGUUII源源单单

以备件计划为例,将备件计划作为采购申请单源单该怎么实现?

答:在WISE13.0的中间层服务器,在如下路径(C:\\Program Files\\Kingdee\\K3ERP\\KDSYSTEM\\KDCOM\\SQLSRV)下找到文件SP_KSEV13.0CRMTemplate_Bill.sql,然后参考10692~10903行。您需要参考上述的脚本来往数据库插入数据,BOS中不提供设置界面。

1、问:FDestClassTypeID = -21 这-21是怎么来的。

答:执行【SELECT FID,FTemplateID,* FROM ICTransactionType WHERE FName='销售出库'】可以看到,FID是21,然后再在前面加负号。 同理,【SELECT FID,FTemplateID,* FROM ICTransactionType WHERE FName='采购申请'】可以得到采购申请单是70

2、FSourClassTypeID = 1012011 这个1012011是EBOS单据的业务类型ID,可以通过【SELECT FID,* FROM icclasstype WHERE FName_CHS LIKE '%样品申请%'】得到ID值 3、除了上述两个字段,ICClassLink表中的信息就是选单时的过滤条件,及源单、目标单的源单编号、源单内码等字段的对应关系。

另外需要注意字段FROB,这个是表示是否同时有红蓝字。

4、ICSelBills中的FID就是【SELECT FID,FTemplateID,* FROM ICTransactionType WHERE FName='采购申请'】中的FTemplateID 5、在配置ICSelBills这个表的时候,【FSelType,FDK】这两个字段一定要参考已有单据的字段,比如F7的字段是怎么配置的?文本类型的字段是怎么配的?数字型的又是怎么配置的? 别注意的是F7字段需要配3行数据,FSelType都是2,而FDK则分别是0,1,2.

6、在ICSelBills会有表别名,这个别名是从ICTableRelation来配置的,象F7字段,它需要关联其他表来取值

7、ICWriteBackTemplate是用来配置反写逻辑的

二单二、、单据据界界面面自自定定义义按按钮钮如如何何弹弹出出允允许许多多选选的的FF77界界面面,,并并抓抓取取返返回回

代码参考如下: //弹出F7界面

//FLookUpType=3表示F7的是BOS单据,如果是核算项目应该用1 //FClassTypeID=1012002表示你要F7是哪个界面,这里是商机

void m_BillInterface_OnBarItemClick(object Sender, BarItemClickEventArgs e) {

switch (e.BarName.ToUpper()) {

case \ {

StringBuildersBuilder = new StringBuilder();

sBuilder.AppendFormat(\UpType=3&FClassTypeID=1012002&FProperty=null&IsMultiSel=1&FPageID={0}\new

Guid().ToString());

sBuilder.AppendFormat(\

sBuilder.AppendFormat(\no; status: no; unadorned : no; help : no;Minimize=no;Maximize=no;\

m_BillInterface.ShowCustomePage(e.BarName, sBuilder.ToString()); } break; } }

//获取返回值 void m_BillInterface_AfterShowCustomerPage(object sender, Kingdee.K3.BOS.PlugInModel.Bill.Events.AfterShowCustomerPageEventArgs e) {

if (e.SenderId.ToUpper() == \ {

string s = e.RetValue;

//有需要转成数据包,需引用命名空间using System.Web.Script.Serialization;在微软的System.Web.dll

JavaScriptSerializerser = new JavaScriptSerializer();

Dictionary dRet = ser.Deserialize(e.RetValue); } }

三三、、关关于于在在单单据据上上打打开开别别的的单单据据的的处处理理方方式式

//【1】打开F7界面

intiClassTypeID = 1012506;

intiLookupType = (int)BOSEnum.Enu_LookUpType.Enu_LookUpType_NewBase;

m_BillInterface.ShowF7Select(send, new OnShowF7SelectEventArgs(iLookupType, iClassTypeID, strFilter)); //【2】打开自定义aspx页面 GuidrndGuid = Guid.NewGuid();

string strUrl = \rndGuid.ToString() + \dialogHeight:600px;resizable:no;status: no; unadorned : no; help : no;Minimize=no;Maximize=no;\

m_ListInterface.AddAction(new BOSAction(iBillID.ToString(), \strUrl));

//【3】打开EBOS单据

Dictionary dctData = new Dictionary();

dctData[\

m_ListInterface.ShowBill(1012025, BOSEnum.Enu_BillStatus.Enu_BillStatus_New, dctData);

//【4】打开序时簿

StringBuildersBuilder = new StringBuilder();

sBuilder.AppendFormat(\FDirect=1&FQuick=1&FLic=0&FType=-1\

sBuilder.AppendFormat(\sBuilder.AppendFormat(\no; status: no; unadorned : no; help : no;Minimize=no;Maximize=no;\

m_BillInterface.ShowCustomePage(e.BarName, sBuilder.ToString());

四四、、在在帐帐套套管管理理中中新新增增用用户户的的时时候候反反应应很很慢慢,,怎怎么么办办??

select * from t_thirdpartycomponent where ftypeid=102 and FTypeDetailID=1 and FIndex=1 看到到描述是:商业智能菜单自动隐藏插件

如果没有使用商业智能功能的话,可以把上述记录删除

delete from t_thirdpartycomponent where ftypeid=102 and FTypeDetailID=1 and FIndex=1

五五、、自自定定义义按按钮钮,,如如何何设设置置图图标标??

一:这是活动单据增加“批示”按钮的例子,可以参考 void m_BillInterface_OnBarInitialize(object sender, EventArgs e) {

//活动批示

m_BillInterface.RemoveBarItem(\

m_BillInterface.AddBarItem(\\批示\\批示\\批示\null, \

m_BillInterface.AddBarItemLink(\

\

\

m_BillInterface.AddBarItemLink(\ }

imgtbtn_log

C:\\Program

Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\IMAGES\\ToolBar\\chs这个路径下,图片名tbtn_log,在插件中引用需要在前面加img

二:下面则是将现有的删除按钮命名为“移除”,并替换图标的

m_ListInterface.SetBarItemProperty(\移除\ m_ListInterface.SetBarItemProperty(\Enu_BarItemProperty.Description, \移除\

m_ListInterface.SetBarItemProperty(\Enu_BarItemProperty.ImageKey, \

六六、、中中间间层层插插件件,,如如果果判判断断单单据据状状态态是是新新增增还还是是修修改改??

参考如下代码:

public void AfterSave(Kingdee.K3.DataAccess.CDataSource DataSource, Dictionary dctMetaData, System.Data.DataSet ds, Dictionary dctDataExt) { if (dctDataExt[\!= BOSEnum.Enu_BillStatus.Enu_BillStatus_New.ToString()) {

} }

七七、、在在插插件件中中打打开开第第三三方方页页面面的的方方法法

以下以打开百度为例,“adfasf”表示自定义一个值,如果需要在关闭打开的页面后处理某些逻辑,则该值会在AfterShowCustomePage事件中用到

StringBuildersBuilder = new StringBuilder();

sBuilder.Append(\百度完整的地址\因为我无权发链接地址 sBuilder.Append(\

sBuilder.Append(\no;Minimize=no;Maximize=no;\

m_BillInterface.ShowCustomePage(\

八八、、关关于于在在插插件件中中给给单单据据体体大大数数据据两两添添加加行行的的建建议议

下面是我在商机的测试带代码 for (inti = 0; i< 1000; i++) {

//结果集插入到表体中,先定义行变量

DataRowdr = m_BillInterface.Data.Tables[\

//给行字段赋值(注意,此字段是F7类型,后面的优化就是对此字段)

//只给产品内码赋值,EBOS平台会根据产品内码到数据库取物料编号、物料名称 dr[\ dr[\ dr[\ dr[\ dr[\ dr[\

//后面还有字段没列出,需要130秒

}

m_BillInterface.RefreshGrid(2);

---------------以下是优化后的代码--------------------------------------

m_BillInterface.SetFireChangeVariable(false);//增加SetFireChangeVariable的调用 for (inti = 0; i< 1000; i++) {

//结果集插入到表体中,先定义行变量

DataRowdr = m_BillInterface.Data.Tables[\ //给行字段赋值

//除了给产品内码赋值,还直接给物料编号、物料名称赋值

//前面的SetFireChangeVariable就是告诉EBOS平台,不用到数据库再取值了 dr[\

dr[\ dr[\

dr[\ dr[\ dr[\ dr[\ dr[\

//后面还有字段没列出,需要12秒 }

m_BillInterface.RefreshGrid(2);

m_BillInterface.SetFireChangeVariable(true); //增加SetFireChangeVariable的调用

九九、、单单据据体体的的按按钮钮名名称称是是什什么么??

按钮名称如下,如需要隐藏按钮,则在单据插件m_BillInterface_OnBarInitialize事件中按如下处理。

如下的参数“2”对应ICClassTableInfo中的FPage //新增行

m_BillInterface.SetBarItemProperty(\//修改行

m_BillInterface.SetBarItemProperty(\Enu_BarItemProperty.Visible, false, 2);

//删除行

m_BillInterface.SetBarItemProperty(\//批量填充

m_BillInterface.SetBarItemProperty(\//复制行

m_BillInterface.SetBarItemProperty(\

//插入行

m_BillInterface.SetBarItemProperty(\Enu_BarItemProperty.Visible, false, 2);

十十、、商商机机成成功功概概率率不不为为110000%%时时,,不不允允许许点点击击赢赢单单操操作作,,如如何何处处理理??

赢单,是系统内置的操作,我们需要在点击的时候先判断成功概率,然后再走系统内置逻辑,因此需要增加插件,并且在BOS配置插件的时候将自定义插件放在系统内置插件之前。

【1】代码参考如下:

void m_BillInterface_OnBarItemClick(object Sender, BarItemClickEventArgs e) {

intopportunityID = 0;

int.TryParse(m_BillInterface.GetFieldValue(\out opportunityID);

switch (e.BarName.ToUpper()) {

case \ {

string strSql = string.Format(\1 FROM CRM_Opportunity WITH (NOLOCK) WHERE FOpportunityID={0} AND FSuccessRate>=100\

DataTabledt = m_BillInterface.K3Lib.GetData(strSql, m_BillInterface.AcctID).Tables[0];

if (dt == null || dt.Rows.Count == 0) {

e.Cancel = true;

throw new KDExceptionValidate(\成功概率未到100%,不允许执行赢单操作!\ } } break; } }

【2】假设自定义插件是CRMPlugIn.dll,类名是OppPlugIn.cs,在BOS配置单据插件的时候写法如下:

CRMPlugIn.OppPlugIn;Kingdee.K3.CRM.OPP.PlugIn.OpportunityPlugIn

十十一一、、CCRRMM定定时时更更新新里里面面包包含含哪哪些些逻逻辑辑,,执执行行了了什什么么存存储储过过程程??

配置CRM定时更新最终是生成一个SQL计划,计划里面包含如下存储过程 p_CRM_Balance_Opp CRM客户交易情况商机数据统计

p_CRM_Balance_TotalOrder CRM客户交易情况订单数据统计

sp_CRM_UpdateSumRecAmt CRM客户交易情况数据统计(应收应付)

如需要了解商机数是怎么统计的,则可以sp_helptextp_CRM_Balance_Opp查看实现逻辑, 当然,如有需要统计自定义字段,则可以修改这些存储过程,也可以增加新的存储过程,并记录在表select * From CRM_BalancePrc中,重新配置CRM定时更新即可

十十二二、、系系统统服服务务里里找找不不到到业业务务预预警警服服务务KK33MMoobbiilleeSSeerrvviiccee,,怎怎么么办办??

到中间层服务器,找到K3MobileService.exe的路径,

比如是下面的路径,然后开始--运行,参考如下输入路径然后按回车 \

十十三三、、二二次次开开发发系系统统报报表表报报““超超时时时时间间已已到到。。在在操操作作完完成成之之前前超超时时

系统报表,即继承接口IReport的报表。

在调用SqlHelper.ExecuteDataset时,如果SQL、存储过程比较复杂,则会报“超时时间已到。在操作完成之前超时时间已过或服务器未响应”,可以参考如下调整超时时间

dtResult = SqlHelper.ExecuteDataset(sDsn.ConStr.Replace(\\存储过程名\此方案由北分同事吴琼分享,非常感谢!

十十四四、、关关于于解解决决在在CCRRMM新新增增单单据据时时报报““违违反反了了 PPRRIIMMAARRYY KKEEYY 约约束束””错错误误

比如新增联系人时,完整错误如下:

违反了 PRIMARY KEY 约束 'PK_CRM_Contact'。不能在对象 'dbo.CRM_Contact' 中插入重复键。

语句已终止。

出现此情况的原因一般是做二次开发的时候没有处理处理ICMaxNum表,导致表ICMaxNum中的ID比联系人表的最大ID还小,因此导致ID重复

解决方法:

--找到CRM_Contact的FItemID、ICMaxNum表的FMaxNum

select FMaxNum,* From ICMaxNum where ftablename='CRM_Contact' select top 1 * from CRM_Contact order by FContactIDdesc

--如果CRM_Contact的FItemID比ICMaxNum表的FMaxNum大 --1、则删除IC_MaxNum的记录条件是ftablename in ('CRM_Contact') --2、需要修改ICMaxNum的FMaxnum值比CRM_Contact的FItemID大1(2449是举例数据) delete from IC_MaxNum where ftablename in ('CRM_Contact')

update ICMaxNum set FMaxnum=2449 where ftablename='CRM_Contact' update t_Identity set FNext=2499 where fname='CRM_Contact'

注意事项:1、二次开发做单据导入的时候一定要处理ICMaxNum、t_Identity、IC_MaxNum这三个表

2、可以调用存储过程GetICMaxNum来获取新的ID

十十五五、、如如何何根根据据销销售售报报价价单单单单据据体体的的物物料料属属性性来来配配置置审审批批流流条条件件??

需求如下,如果单据体的产品的物料分类是“主推商品”,则A经理审核,“辅推产品”则是B经理审核。

在BOS开发工具中,审批流配置的时候是无法根据单据体的字段属性(除了汇总等)来配置分支条件的。

可通过如下方式修改SQL变通处理。

--以物料分类作为分支条件,需要先找到物料分类的属性。 --物料分类是辅助资料,到辅助资料表找,得到FTypeID=504

SELECT * FROM t_SubMesType WHERE FName LIKE '%物料分类%' --将上述的FTypeID=504放到如下过滤得到 --20013 主推商品(举例而已) --20014 辅推产品

SELECT * FROM t_SubMessage WHERE FTypeID=504

--确认1012010是CRM销售报价单,找到销售报价单表是PORFQ SELECT * FROM ICClassType WHERE FID=1012010 --销售报价单表体的表名PORFQEntry

SELECT * FROM ICClassTypeEntry WHERE FParentID=1012010 --找到FID,我这里举例是72

SELECT FID,* FROM ICClassMCTemplate WHERE FClassTypeID=1012010 --把上述的FID放到这里

SELECT FCirculateCondition, * FROM ICClassMCTableInfo WHERE FTemplateID=72 --找到需要配置分支条件的节点,用FTemplateID、FTagIndex做过滤条件 --我这里以FTagIndex=10001做例子,如果报价单单据体包含物料分类是【20013 主推商品】则走该分支

SELECT FCirculateCondition, * FROM ICClassMCTableInfo WHERE FTemplateID=72 AND FTagIndex=10001

--模拟“报价单单据体包含物料分类是【20013 主推商品】”写出SQL语句做测试,然后再更新ICClassMCTableInfo表

SELECT * FROM PORFQ WHERE

EXISTS (SELECT 1 FROM PORFQEntrype

INNER JOIN t_ICItemitm ON pe.FItemID=itm.FItemID

WHERE PORFQ.FInterID=pe.FInterID AND itm.FTypeID=20013)

--执行SQL语句修改分支条件

--这样修改后,到BOS设计器修改分支条件可能没用,以后该分支条件都需要自己用SQL处理(比如需要增加部门等条件)

--以下SQL语句仅仅处理包含“主推商品”商品的物料就走该分支,其他条件您自己处理 UPDATE ICClassMCTableInfo set FCirculateCondition=' EXISTS (SELECT 1 FROM PORFQEntrype

INNER JOIN t_ICItemitm ON pe.FItemID=itm.FItemID

WHERE PORFQ.FInterID=pe.FInterID AND itm.FTypeID=20013) ' WHERE FTemplateID=72 AND FTagIndex=10001 GO --清缓存

UPDATE ICClassType SET FID=FID WHERE FID=1012010 GO

十十六六、、关关于于通通过过在在BBOOSS配配置置值值更更新新事事件件实实现现将将服服务务请请求求单单自自定定义义字字段段携携带带到到派派工工单单的的处处理理方方式式

UPDATE ICClassTableInfo SET FCtlType=1, FLookUpType=3,

FLookUpClassID=1012500,

FSRCFieldName='FServiceRequestID', FSRCTableName='CRM_ServiceRequest',

FSRCTableNameAs='CRM_ServiceRequest_FServiceRequestID', FDSPFieldName='FTitle', FFNDFieldName='FNumber'

WHERE FClassTypeID=1012504 AND FKey='FServiceRequestID' GO

UPDATE ICClassType SET FID=FID GO

然后到bos打开派工选,选中字段“服务请求单ID”,就可以在值更新事件中配置了。

十关十七七、、关于于替替换换CCRRMM系系统统的的登登陆陆界界面面的的llooggoo的的处处理理方方式式

CRM系统的图片存放在以下路径:

C:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\MAIN\\images,需要替换对应的图片就将自定义的图片的名字修改为当前的图片名称,然后再直接替换即可。

十十八八、、【【求求助助】】关关于于知知识识单单据据数数据据表表————单单据据批批量量引引入入

知识有大量单据需要批量引入,能帮忙告诉我这个知识单所涉及到的数据表吗?

方案如下:

没有附件的话通过这个表(icclasstypeentry)来查该单据涉及到的表,导入完后需要处理内码,否则新增会报类似于PK约束,参考如下SQL:

--找到CRM_Knowledge的FItemID、ICMaxNum表的FMaxNum

select FMaxNum,* From ICMaxNum where ftablename='CRM_Knowledge' select top 1 * from CRM_Knowledge order by FContactIDdesc

--如果CRM_Knowledge的FID比ICMaxNum表的FMaxNum大

--1、则删除IC_MaxNum的记录条件是ftablename in ('CRM_Knowledge')

--2、需要修改ICMaxNum的FMaxnum值比CRM_Knowledge的FItemID大1(2449是举例数据)

delete from IC_MaxNum where ftablename in ('CRM_Knowledge')

update ICMaxNum set FMaxnum=2449 where ftablename='CRM_Knowledge' update t_Identity set FNext=2499 where fname='CRM_Knowledge'

十十九九、、从从BBOOSS删删除除内内置置选选单单流流程程

删除商机-CRM销售合同选单关系

DELETE FROM ICClassLink WHERE FSourClassTypeID = 1012002 AND FDestClassTypeID = 1012330 DELETE ICClassLinkEntry WHERE FSourClassTypeID = 1012002 AND FDestClassTypeID=1012330

DELETE ICClassLinkCommit WHERE FSrcClsTypID = 1012002 AND FDstClsTypID = 1012330

DECLARE @FID INT

SELECT @FID=FID FROM ICClassWorkFlow WHERE ISNULL(FName_CHS,'') = '商机-CRM销售合同'

DELETE FROM ICClassWorkFlow WHERE FID=@FID DELETE FROM ICClassWorkFlowBill WHERE FID=@FID DELETE FROM ICClassWorkFlowJoin WHERE FID=@FID UPDATE ICCLASSTYPE SET FID=FID GO

二二十十、、关关于于CCRRMM单单据据下下推推GGUUII单单据据的的处处理理方方式式

关于CRM单据下推GUI单据的处理方式,只能建议您去参考我们现有的SQL脚本,即copy内置的脚本,然后做相应的调整

1、在中间层服务,开始-->运行-->输入KDCOM,然后打开文件夹SQLSRV,搜索找到文件“SP_KSEV12.3CRMTemplate_Bill.sql”

2、打开上述SQL文件,搜索”配件申领单下推其他出库单“,应该在17601行

3、看这句”Delete ICClassLink WHERE FDestClassTypeID = -29 AND FSourClassTypeID = 1012513“ 3.1、FSourClassTypeID = 1012513是源单,用select * from icclasstype where fid=1012513 可以看到是“配件申领单” 3.2、FDestClassTypeID = -29是目标单,用SELECT * FROM ICTransactionType where fid=29可以看到是“其他出库单”,记住FTemplateID这个字段 值是“B09”,下面有用。

注意在ICTransactionType是29,到ICClassLink的时候要改成-29

4、至于插入ICClassLink,就是下推的条件、及源单类型、源单编号、源单内码等的对应关系,此不赘述。

(但有一点需要注意,FROB表示这个选单关系是否包含红、蓝字,而红蓝字的下推条件是不一样的,而红字的下推条件据我所知的只能在代码中处理)

5、看到17636行“DELETE ICSelBills WHERE FFieldName = '1012513' AND FID = 'B09'” 5.1、FFieldName = '1012513',上面说的源单

5.2、FID = 'B09',前面3.2中说的FTemplateID字段值 6、插入ICSelBills

6.1、象FInterID、FEntryID、FBillNO,copy后把表名、字段名做相应的调整即可

6.2、如果有需要携带物料,则FPriceDecimal、FQtyDecimal、FTrack,也直接把脚本copy后调整即可。

(注意,这里有个t_4,后面会说到)

6.3、FSourceBillNo、FSourceEntryID、FSourceInterId、FSourceTranType直接把脚本copy后调整即可

6.4、接下来,区分不同类型的字段,比如F7、整数、字符类型的字段 6.4.1、携带客户字段:看到17679~17691行,一个字段需要4个INSERT语句,FSelType,FDK这两个字段的值是固定的(即copy内置 脚本后,这两个字段值不能调整);

6.4.2、携带的是部门、职员:看到17707~17717行(部门),17719~17729行(职员) 6.4.3、携带物料:除了上面6.2的,还需要17731~17749行的脚本

6.4.4、携带数量字段:17764~17773行,关键的是FAction字段值,表示选单的时候默认是什么值,可以看到里面其实也是SQL语句

7、ICTableRelation,表示表之间的关系,即前面说到的6.2点,其实是通过这里给表取别名,select t_4.* from t_item t_4

8、ICWriteBackTemplate用来设置勾稽字段

二二十十一一、、关关于于增增加加触触发发器器来来处处理理客客户户合合并并的的问问题题

以下例子仅作参考,最关键的是利用表CRM_OppCustomMerge Create TRIGGER [tr_CRM_OppCustomMerge] ON [CRM_OppCustomMerge] AFTER INSERT as

Declare @MainCust int Declare @MergeCust int

Set @MainCust=(SELECT FCustomerID FROM INSERTED)

Set @MergeCust=(SELECT FMergeCustomerID FROM INSERTED) --CRM销售合同

UPDATE CRM_SEOrder SET FCustID=@MainCust WHERE FCustID=@MergeCust --GUI合同

UPDATE t_RPContract SET FCustomer=@MainCust WHERE FCustomer=@MergeCust --GUI销售订单

UPDATE SEOrder SET FCustID=@MainCust WHERE FCustID=@MergeCust --GUI销售发票

UPDATE ICSale SET FCustID=@MainCust WHERE FCustID=@MergeCust --GUI费用发票

UPDATE ICExpenses SET FCustID=@MainCust WHERE FCustID=@MergeCust --GUI销售出库单

UPDATE ICStockBill SET FSupplyID=@MainCust WHERE FSupplyID=@MergeCust\

二二十十二二、、登登陆陆出出现现异异常常捕捕获获异异常常方方法法

1、HttpModules捕获异常法

1、 把附件的DLL放到Web服务器的Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\BIN目录下

2、 打开Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI目录下的Web.Config文件

找到

把上面的改成

运行登陆页面,点击登陆等操作后打开Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI目录,在目录下是否有errs.txt文件

以上可以捕获到程序异常,适用于所有异常捕获。 2、登陆异常捕获方法:

在客户现场如果出错,又调试不了的清况下,可以在Login.aspx页面中也代码记录日志的方法

一、 首选在页面中添加

二、 然后在页面的最底端添加如下代码

运行程序,并点击”Login_Test”按钮,在Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI目录下查找login_errors.txt文件,查看相关异

常信息

二二十十三三、、必必须须要要有有管管理理凭凭据据

“You must have administrative credentials to perform this task. Contact your system administrator for assistance.”(中文操作系统下是:要执行些任务,您必须具有管理凭证。请与您的系统管理员联系以获得帮助。)提示的问题是由于HR中间层服务组件没有正确注册引起。请手工完成注册,注册方法为在HR Web服务器上依次执行以下命令(所注册的dll文件位于%K3InstallPath%\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\BIN目录下,执行命令之前请先把当前目录改为dll文件所在目录):

%windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc DataAccess.dll %windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc DataDict2WebReport.dll

%windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc Kindee.ERP.HRMS.Common.dll %windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc Kingdee.ERP.HRMS.BusinessRules.dll

%windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc Workflow.dll %windir%\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc WorkflowDA.dll

正确的格式案例如下:

C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\Regsvcs.exe /fc \3ERP\\KDHR\\SITEFILE\\WEBUI\\BIN\\DataAccess.dll\

本文来源:https://www.bwwdw.com/article/bgpp.html

Top