发布时间 : 星期六 文章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
//组织,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
//创建一个料品
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
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:绑定的配置名称