田源
2025-01-09 8a166a60cfd1a2e593ffa103d10c0dc224fc8628
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// **********************************************************************
//
// Copyright (c) 2008-2023 VCI-Tech, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described the
// ICE_LICENSE file included this distribution.
//
// **********************************************************************
 
#pragma once
 
#include "01-common.ice"
#include "05-omd.ice"
 
[["java:package:com.vci.corba"]]
["cs:namespace:com.vci.corba"]
 
// module com {
// module vci {
// module corba {
module query{
    module data {
        struct KV{
            string key;
            string value;
        };
        sequence<KV> KVArray;
        sequence<KVArray> KVArray2D;
 
        struct BOAndLO{
            string btmName;
            omd::data::BusinessObject bo;
            string ltName;
            omd::data::LinkObject lo;
        };
        sequence<BOAndLO> BOAndLOArray;
 
        struct BOsAndLO{
            string btNameF;
            omd::data::BusinessObject boF;
            string btNameT;
            omd::data::BusinessObject boT;
            string ltName;
            omd::data::LinkObject lo;
        };
        sequence<BOAndLO> BOsAndLOArray;
        
        // add by xchao 2017.12.20 begin
        // 业务类型参照查询选项
        struct BtmRefQueryOption{
            // 属性名称
            string attrName;
            // 参照的业务类型, 如果没有指定则按 attrName 到属性池中查属性关联参照的业务类型
            string refBtmName;
            // 要人参照的业务类型中查询的属性
            common::data::StringArray refBtmQueryAttrs;
        };sequence<BtmRefQueryOption> BtmRefQueryOptionArray;
        // add by xchao 2017.12.20 end                    
 
        struct RefValue{
            long row;
            string value;
        };//Value
        sequence<RefValue> RefValueArray;
 
        struct RefPath{
            RefValueArray values;
            string path;
        };//Path
        sequence<RefPath> PathArray;
    };
 
    interface ObjectQueryService{
        void test();
        
        //根据查询模板名, 查询模板数据查询业务对象
        omd::data::BusinessObjectList findBTMObjects(string qtName, string qtText)throws common::VCIError;
        //根据查询模板名, 查询模板数据查询业务对象-v2
        // qtName: 查询模板名称(id)
        // qtText:结构化QueryTemplate的文本内容(包含查询条件(值)、替换条件(值)、分页信息、排序信息)
        // out: 输出参数,查得的数据总数
        omd::data::BusinessObjectList findBTMObjectsV2(string qtName, string qtText, out long count)throws common::VCIError;
        
        // 根据查询模板名, 查询模板数据查询业务对象-v3 : 查BO的同时,根据参照查询选项,查询参照数据
        // qtName: 查询模板名称(id)
        // qtText:结构化QueryTemplate的文本内容(包含查询条件(值)、替换条件(值)、分页信息、排序信息)
        // out: 输出参数,查得的数据总数
        // btmRefQueryOptions: 参照数据查询选项
        omd::data::BusinessObjectList findBTMObjectsV3(string qtName, string qtText, data::BtmRefQueryOptionArray btmRefQueryOptions, out long count)throws common::VCIError;
        
        //根据业务类型名, 版本查询业务对象  
        //version: 0:所有版次; 1:当前版本当前版次; 2:当前版本最新版次; 3:最新版本最新版次.
        omd::data::BusinessObjectList findBTMObjectsByTypeNameAndVersion(string typeName, short version)throws common::VCIError;
        
        //根据查询模板名, 查询模板数据查询链接对象
        omd::data::LinkObjectList findLTObjects(string qtName, string qtText)throws common::VCIError;
        
        //根据查询模板名, 查询模板数据查询链接对象-v2
        // qtName: 查询模板名称(id)
        // qtText:结构化QueryTemplate的文本内容(包含查询条件(值)、替换条件(值)、分页信息、排序信息)
        // out: 输出参数,查得的数据总数
        omd::data::LinkObjectList findLTObjectsV2(string qtName, string qtText, out long count)throws common::VCIError;
        
        //根据查询模板名, btOId获取linkObject 和 关联的businessObject
        data::BOAndLOArray getBOAndLOS(string qtName, string qtText, string btmOId)throws common::VCIError;
        
        //根据查询模板名, btOId获取linkObject 和 关联的businessObject
        //weidy@2021-1-6 暂时屏蔽这个接口
        //BOsAndLOArray getBOsAndLOS(string qtName, string qtText, string btmOId)throws common::VCIError;
        
        //根据查询模板名, 查询模板信息返回查询总数
        long findTotalCount(string qtName, string qtText)throws common::VCIError;
        
        //用标准sql查询数据
        data::KVArray2D queryBySql(string sql)throws common::VCIError;
        
        //用标准sql查询数据
        common::data::StringArray2D queryBySqlWithoutKey(string sql)throws common::VCIError;
        
        //使用标准sql查询数据(基于绑定变量的实现)
        common::data::StringArray2D queryBySqlAndValuesWithoutKey(string sql, common::data::StringArray paramValues)throws common::VCIError;
        
        // 参照查询方法================
        //获取业务对象参照属性值
        data::PathArray getRefQueryResults(data::PathArray paths)throws common::VCIError;
        //获取链接对象的参照属性值
        data::PathArray getRefResults(data::PathArray paths,string toType)throws common::VCIError;
        //获取链接对象的参照属性
        data::PathArray getRefTypesResults(data::PathArray paths, common::data::StringArray types) throws common::VCIError;
        
    };
}
// }}}