U9 API 课程讲解资料 v0.7 联系客服

发布时间 : 星期六 文章U9 API 课程讲解资料 v0.7更新完毕开始阅读27228e79ba0d4a7303763a59

}

catch (Exception ex) {

//异常信息捕获

throw new Exception(GetExceptionMessage(ex)); }

finally

{ button1.Enabled = true; } }

4.6.2 上下文信息

// 给上下文信息赋值

private static UFSoft.UBF.Util.Context.ThreadContext CreateContextObj() {

// 实例化应用上下文对象

UFSoft.UBF.Util.Context.ThreadContext thContext = new ThreadContext();

System.Collections.Generic.Dictionary ns = new Dictionary();

//组织,select a.ID,a.Code,b.Name from Base_Organization a left join Base_Organization_Trl b on a.ID=b.ID and b.SysMLFlag='zh-cn'

ns.Add(\, \);

//用户,select a.ID,a.Code,a.Name from Base_User a left join Base_UserOrg b on a.ID=b.[User] where b.Org=1001404030000035

ns.Add(\, \);

//add by peter 2015-07-20 发现问题:采购订单审核时,审核人始终默认admin(但审核人字段存放的应是Name),后来将UserName传入后正常,所以将UserID,UserCode,UserName全信息传入,则有保障。

ns.Add(\ns.Add(\管理员\

//语言,select Code from Base_Language ns.Add(\, \);

//add by peter 2015-05-25 增加这一句,否则可报:当前环境下默认语种为空 ns.Add(\, \);

//企业,管理控制台中取

ns.Add(\, \); thContext.nameValueHas = ns; return thContext; }

private static UFIDAU9CBOPubControllerContextDTOData CreateContextDto() {

// 实例化应用上下文对象

UFIDAU9CBOPubControllerContextDTOData dto1 = new UFIDAU9CBOPubControllerContextDTOData(); dto1.m_orgCode = \;

//dto1.m_userID = 1001404030000241; dto1.m_userCode = \;

//dto1.m_cultureName = \ dto1.m_entCode = \;

return dto1; }

4.6.3 为关联实体属性赋值

//为关联实体属性赋值,赋ID或Code,返回CommonArchiveDataDTOData

public static UFIDAU9CBOPubControllerCommonArchiveDataDTOData SetCommonArchiveDTO(long entityID)

{ return SetCommonArchiveDTO(entityID, string.Empty); }

public static UFIDAU9CBOPubControllerCommonArchiveDataDTOData SetCommonArchiveDTO(string entityCode)

{ return SetCommonArchiveDTO(-1, entityCode); }

public static UFIDAU9CBOPubControllerCommonArchiveDataDTOData SetCommonArchiveDTO(long entityID, string entityCode) {

UFIDAU9CBOPubControllerCommonArchiveDataDTOData dto = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();

if (entityID <= 0 && string.IsNullOrEmpty(entityCode)) return null;

dto.m_code = entityCode; dto.m_iD = entityID; return dto; }

4.6.4 给传入参数赋值 //给传入参数赋值

private static UFIDAU9ISVItemItemMasterDTOData[] SetItemMasterDtos() {

List dtos = new List();

//创建一个料品

UFIDAU9ISVItemItemMasterDTOData dto = new UFIDAU9ISVItemItemMasterDTOData(); //为料品dto赋值

dto.m_code = \;

dto.m_name = \测试\;

// 状态码(关联实体类型赋值)

//dto.m_status = SetCommonArchiveDTO(\

// 库存主单位

dto.m_inventoryUOM = SetCommonArchiveDTO(\); dto.m_inventoryUOMGroup = 0;

//料品形态属性(9采购件) dto.m_itemFormAttribute = 9;

//料品库存相关信息

UFIDAU9ISVItemItemInvInfoDTOData inventoryinfo1 = new UFIDAU9ISVItemItemInvInfoDTOData(); //库存规划方法(4MRP规划)

inventoryinfo1.m_inventoryPlanningMethod = 4; //规划时机

inventoryinfo1.m_inventoryPlanTime = -1; //采购控制方法(1最高存量限制)

inventoryinfo1.m_purchaseControlMode = 1;

//周转率(采购控制方法为(料品周转率)时,周转率需大于) //inventoryinfo1.m_turnOverRate = 1; //预留方式

inventoryinfo1.m_reserveMode = -1; //补货方法

inventoryinfo1.m_supplyMethod = -1; dto.m_inventoryInfo = inventoryinfo1;

//标准成分

dto.m_standardPotency = -1; dto.m_startPotency = -1; dto.m_endPotency = -1;

//标准等级

dto.m_standardGrade = -1; dto.m_startGrade = -1; dto.m_endGrade = -1;

//料品形态

dto.m_itemForm = -1;

//描述性弹性域(按需赋值)

UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData descFlexSegs = new UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData(); descFlexSegs.m_privateDescSeg1 = \; dto.m_descFlexField = descFlexSegs;

//把料品dto添加到集合中 dtos.Add(dto);

return dtos.ToArray(); }

4.6.5 提取服务返回的异常信息

(如果还有异常提取有问题,请开发人员跟踪检查异常信息结构,再修改下面的方法) //提取异常信息

private static string GetExceptionMessage(Exception ex) {

string faultMessage = \未知错误,请查看ERP日志!\;

System.TimeoutException timeoutEx = ex as System.TimeoutException; if (timeoutEx != null) {

faultMessage = \因第一次访问ERP服务,访问超时,如避免此错误,请先启动ERP系统!\; } else {

System.ServiceModel.FaultException faultEx = ex as FaultException; if (faultEx == null) {

faultMessage = ex.Message; } else {

ServiceException serviceEx = faultEx.Detail;

if (serviceEx != null && !string.IsNullOrEmpty(serviceEx.Message) && !serviceEx.Message.Equals(\, StringComparison.OrdinalIgnoreCase)) {

// 错误信息在faultEx.Message中,请提取,

// 格式为\料品不能为空,请录入\\n 在.....\ int startIndex = serviceEx.Message.IndexOf(\); int endIndex = serviceEx.Message.IndexOf(\); if (endIndex == -1)

endIndex = serviceEx.Message.Length;

if (endIndex > 0 && endIndex > startIndex + 1) {

faultMessage = serviceEx.Message.Substring(startIndex + 1, endIndex - startIndex - 1);

} else {

faultMessage = serviceEx.Message; } } } }

return faultMessage; }

4.7 App.Config属性说明

receiveTimeout:调用服务时超时时间

maxReceivedMessageSize:传入的参数大小 address:调用的服务地址

bindingConfiguration:绑定的配置名称

messageEncoding=\