移动bos常见问题
金蝶云社区-天冥异
天冥异
7人赞赏了该文章 1124次浏览 未经作者许可,禁止转载编辑于2018年07月07日 09:49:33

移动业务审批交互提示处理说明


1、移动端审批只支持简单的交互提示,即警告提示和是否选择的交互提示。
2、其它交互方式,如需要输入密码等,不支持,并请把IOperationResult.InteractionContext.SupportMobile 设置为false。
3、交互内容要放在IOperationResult.InteractionContext中返回,移动审批处理程序解析上下文内容后,弹出交互框。
4、下面是移动端交互处理代码,供参考。
      if (iOpResult.IsSuccess)
            {
                //this.GoToList();
                this.View.Close();
            }
            else if (iOpResult.InteractionContext != null)
            {
                string message = iOpResult.InteractionContext.SimpleMessage;
                if (!iOpResult.InteractionContext.SupportMobile || string.IsNullOrWhiteSpace(message))
                {
                    message = ResManager.LoadKDString("存在移动端不支持的交互处理,请到PC端处理。", "002406030028103", SubSystemType.BOS);
                    this.View.ShowErrMessage(message);
                }
                else
                {
                    string formId = iOpResult.InteractionContext.InteractionFormId;
                    _provider.SetInteractionFlagSession(formId);
                    GoToInteractive(iOpResult);
                }
            }


云之家发布如何支持国际化(英文)


移动BOS平台开发技巧 -- 云之家发布如何支持国际化(英文)

移动BOS平台在今年三月份以后完整的支持了国际化,那么我们在和云之家集成时能不能发布英文版本呢
当然可以,这个里面就涉及到发布时的一个url的技巧
以工作流的待办任务为例,我们发布时菜单如下( 其中xxx是客户的真实域名或者ip)
http://xxx/k3cloud/mobile/k3cloud.html?entryrole=XT&appid=10037&formId=MOB_WFTodoList&formType=mobilelist
我们只需要在后面增加参数Lcid=1033,其中1033是英文的id,这个具体可以到cloud的语言列表中查看,那么发布时url采用
http://xxx/k3cloud/mobile/k3cloud.html?entryrole=XT&appid=10037&formId=MOB_WFTodoList&formType=mobilelist&Lcid=1033
即可了,ok英文待办任务发布完成


业务审批自定义单据详情开发


1、表单设计
1)进入BOSIDE,新增移动表单或移动单据。
2)新增的移动表单或移动单据,必须继承自基类MOB_WFBillDetailBase(单据详情基类)或MOB_WFBillDetailBase4Bill(单据详情(单据))
云之家图片20161114151422.png 
3)在下图的方框处设计自己的界面(如果选择继承的是移动单据,请设置来源单据)
无标题.png 

2、插件代码
1)自定义单据详情界面的插件开发,插件项目请附加引用组件(Kingdee.BOS.Workflow.PlugIns.dll),插件类请继承自BillDetailBaseEdit(移动表单)或BillDetailBase4BillEdit(移动单据)。
2)插件类变量“_pkValue”为对应单据内码。     

3、应用配置
登录系统 -》主控台 -》 基础管理 -》 公共设置 -》 单据设置 -》 移动平台单据启动设置

云之家图片20161114160917.png 

4、运行效果
云之家图片20161114163008.png 

云之家轻应用右上角菜单设置



1.      适用环境:7.0及以上版本;

2.      配置:插件页面,AfterBindData方法中配置。

3.      示例图:

        

4.      代码示例:
//绑定事件
public override void AfterBindData(EventArgs e)

       {

           base.AfterBindData(e);

           SetRemindEnable();

           this.View.Model.SetValue("FAheadTime", 1);

           this.View.GetControl("FAheadTime").SetValue(Kingdee.BOS.Resource.ResManager.LoadKDString("1天","0021179030027483", Kingdee.BOS.Resource.SubSystemType.BOS));

           //以上为您的业务代码++++++++++++++++++++++++++++++++++++++++++++++

           //设置右上角菜单

           JSONObject json = new JSONObject();

           json.Put("popTitle", "分享");//只支持最多4位中文字符,超出部分会截断显示(ios 会全部显示成省略号)

           json.Put("popTitleCallBackId", "callBack");


           JSONArray arrayService = new JSONArray();

           //自定义按钮事件,可以参考wftodolist.cs 里面的ButtonClick

           JSONObject obj = new JSONObject();

           obj.Put("text", "自定义菜单1");

           obj.Put("callBackId", "todo");

           arrayService.Add(obj);

           JSONObject obj1 = new JSONObject();

           obj1.Put("text", "自定义菜单2");

           obj1.Put("callBackId", "running");

           arrayService.Add(obj1);

           json.Put("items", arrayService);


           //forward'(转发),'refresh'(刷新),'share'(分享),'openWithBrowser'(在浏览器中打开)

           string[] menu = { "forward", "refresh","share", "openWithBrowser" };

           json.Put("menuList", menu);


           JSONObject obj2 = new JSONObject();

            obj2.Put("isShowExt","false");//转发时是否显示商务伙伴,true or false,默认为true

           obj2.Put("title", "活动编辑");//分享或者转发的标题

           obj2.Put("url", "");//分享的链接,若空则取当前的url

           obj2.Put("description", "欢迎访问云之家,我的待办列表");//分享或者转发的内容

           //obj2.Put("appLogo", "");//轻应用Logo,base64数据

           obj2.Put("appName", "云之家");//轻应用名称

           json.Put("shareData", obj2);


           this.View.AddAction("CreatePopWithXT", json);

       }

//点击事件
public override void ButtonClick(ButtonClickEventArgs e)

       {

           switch (e.Key.ToUpper())

           {

                case "DONELIST":

                    MobileListShowParametershowform = new MobileListShowParameter();

                    showform.FormId ="MOB_WFDoneList";

                   this.View.ShowForm(showform);

                    break;

                case "RUNNING":

                    MobileListShowParametershowform1 = new MobileListShowParameter();

                    showform1.FormId ="MOB_WFRunningList";

                   this.View.ShowForm(showform1);

                    break;

                case "TODO":

                    MobileListShowParametershowform2 = new MobileListShowParameter();

                    showform2.FormId ="MOB_WFTodoList";

                    this.View.ShowForm(showform2);

                    break;

           }

       }


赞 7