阅读:9687 回复:9
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主

[方案文档]Java跨平台发起表单申请开始详解

楼主#
更多 发布于:2016-12-28 18:27
Java跨平台发起表单申请开始详解
附件名称/大小 下载次数 最后更新
Java跨平台发起表单申请开始详解.doc (3033KB)  364 2016-12-28 18:27
上善若水
17

帖子

1282

跟帖

12345

积分

管理员
管理员
  • 社区居民
1楼#
发布于:2017-01-03 16:10
H3 BPM 让天下没有难用的流程。全国统一服务热线 :400-889-8625
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
2楼#
发布于:2017-03-06 14:45
@武汉技术支持团队
请问明细表数据以什么样的形式写?
var data = new List<DataItemParam> { new DataItemParam {
                ItemName = "QA_InNo",
                ItemValue = "Test001"
            },
            new DataItemParam {
                ItemName = "QA_ItemCode",
                ItemValue = "TestItem001"
            }
};

主表这样写可以发起流程成功。
加了明细表就不知道如何插入明细表数据了。
如下写法会出错
 
var data = new List<DataItemParam> { new DataItemParam {
                ItemName = "QA_InNo",
                ItemValue = "Test001"
            },
            new DataItemParam {
                ItemName = "QA_ItemCode",
                ItemValue = "TestItem001"
            }
            ,new DataItemParam
            {
                ItemName = "QADetail",//子表名称
                ItemValue = new List<DataItemParam>[]
                {
                    new List<DataItemParam>
                    {
                        new DataItemParam
                        {
                            ItemName="QAD_InNo",
                            ItemValue="TestDtl01"
                        },
                        new DataItemParam
                        {
                            ItemName = "QAD_RollNo",
                            ItemValue = "1"
                        }
                    },
                    new List<DataItemParam>
                    {
                        new DataItemParam
                        {
                            ItemName="QAD_InNo",
                            ItemValue="TestDtl01"
                        },
                        new DataItemParam
                        {
                            ItemName = "QAD_RollNo",
                            ItemValue = "2"
                        }
                    }
                }
            }
            };
mishanhhf
24

帖子

147

跟帖

3266

积分

黄金榴莲
黄金榴莲
  • 社区居民
  • 忠实会员
3楼#
发布于:2017-03-14 09:50
t156965365@武汉技术支持团队
请问明细表数据以什么样的形式写?
var data = new List<DataItemParam> { new DataItemParam {
                ItemName = "Q...
回到原帖
同问,@武汉技术支持团队 @岩竹玉雨
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
4楼#
发布于:2018-04-18 08:42
这帖子没人回答吗@岩竹玉雨
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
5楼#
发布于:2018-06-13 15:41
        [WebMethod(Description = "插入子表数据")]
        public void SetSublist(string finstanceid, string subTableName, DataTable dt)
        {
            var instance = OThinker.H3.WorkSheet.AppUtility.Engine.InstanceManager.GetInstanceContext(finstanceid);
            var bizobjectid = instance.BizObjectId;
            var data = new InstanceData(
    AppUtility.Engine,
    finstanceid,
    instance.Originator);

            //var dic = data.BizObject.ValueTable;
            //var bos = (DataModel.BizObject[])data.BizObject.GetValue(subTableName);

            var Bo = new BizObject(data.Engine, data.Schema, data.InstanceContext.Originator);

            BizObjectSchema childSchema = data.Schema.GetProperty(subTableName).ChildSchema;

            List<OThinker.H3.DataModel.BizObject> childBoList = new List<DataModel.BizObject>();
            foreach (DataRow row in dt.Rows)
            {

                var childBo = new BizObject(data.Engine, childSchema, data.InstanceContext.Originator);


                foreach (DataColumn col in dt.Columns)
                {
                    string dataKeyChild = col.ColumnName;
                    string dataValueChild = row[dataKeyChild].ToString();

                    if (childBo.Schema.GetProperty(dataKeyChild) == null) continue;
                    if (string.IsNullOrEmpty(dataValueChild)) continue;

                    childBo.SetValue(dataKeyChild, dataValueChild);
                }

                childBoList.Add(childBo);
            }

            Bo[subTableName] = childBoList.ToArray();
            Bo.Update();
        }
H3BPM
655

帖子

2504

跟帖

46412

积分

管理员
管理员
  • 社区居民
6楼#
发布于:2018-06-14 10:21
@mishanhhf  @bin蓝™ @t156965365楼主回复了,快出来看看
10月签到活动奖励发放啦:http://bbs.h3bpm.com/read.php?tid=5377&fid=5
果冻栋吖
104

帖子

755

跟帖

2631

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
  • 优秀斑竹
7楼#
发布于:2018-06-14 14:42
武汉技术支持团队:public void SetSublist(string finstanceid, string subTableName, DataTable dt)
        {
            var instance = OTh...
回到原帖
V10.3的.Net的方法有吗?我觉得这个可以实时更新子表,不会存在缓存的问题,我修改WorkSheet为Controllers后不可以,会出现如下错误:


Exception rethrown at [0]:
   在 OThinker.Clusterware.LogicUnitConnection.Invoke(String ModuleName, String MethodName, Object[] Parameters, Object[]& Parameters2)
   在 OThinker.Clusterware.LogicUnitConnection.Invoke(String ModuleName, String MethodName, Object[] Parameters)
   在 OThinker.H3.Client.ModuleClient.InvokeVesselMethod(String MethodName, Object[] Parameters)
   在 OThinker.H3.Client.BizObjectManagerClient.InvokeBizObjectMethod(String UserId, BoolMatchValue Transactional, String SchemaCode, BizObjectType BizObjectType, String ObjectId, String MethodName, BizStructure Params)
   在 OThinker.H3.DataModel.BizObject._Invoke(String UserId, BoolMatchValue Transactional, String MethodName, BizStructure Params, InstanceData InstanceData, Boolean WriteValueToObject)
   在 OThinker.H3.DataModel.BizObject._Update(String UserId, BoolMatchValue Transactional, BizStructure Params, InstanceData instanceData)
   在 OThinker.H3.DataModel.BizObject.Update(InstanceData instanceData)
   在 ForTestWebService.SetSublist(String finstanceid, String subTableName) 位置 e:\H3BPM\Authine\H3 BPM\Portal\App_Code\ForTestWebService.cs:行号 96
需要技术支持请添加QQ1772829123,提供H3产品定制开发,IT技术支持。
果冻栋吖
104

帖子

755

跟帖

2631

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
  • 优秀斑竹
8楼#
发布于:2018-06-19 08:15
@武汉技术支持团队 @H3BPM 这个10.3的有么有呢?急需~
需要技术支持请添加QQ1772829123,提供H3产品定制开发,IT技术支持。
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
9楼#
发布于:2018-06-19 10:38
http://bbs.h3bpm.com/read.php?tid=3617&fid=10
我在这个帖子里回复了另外一种方法
游客

返回顶部