- 1.基礎數據類型
1.NameObject:名稱對象
2.RevsionedObject:帶版本的對象
3.Service:服務
4.SubEntity,SubEntityList:子實體 子實體集合
5.NamedSubEntityList :帶名稱的子實體集合
6.Query:查詢
- 開發環境依賴
- Dotnet framework引用camstar安裝服務器上C:\Program Files (x86)\Camstar\InSite XML Client 目錄下的InSiteXMLClient.dll
- Dotnet Core引用我自己封裝的nutget包InSiteXmlClient4Core https://github.com/307209239/InSiteXmlClient4Core
- dotnetFramework開發請參考官方文檔,下面只介紹dotnetcore下的調用camstar API的開發步驟
1.創建連接實例,鏈接到camstar服務器 var common = new CamstarCommon(“192.168.1.168”,2881,“admin”,“admin”);
2.創建服務 common.CreateService(“LotStart”);
3.創建服務輸入對象 var inputdata = common.InputData();
4. 賦值輸入對象(根據服務desinger建模數據) 例如:inputdata.DataField(“AutoPrepare”).SetValue(false);
5. 提交並返回結果 同步: return await common.ExecuteResult(); 異步:return await common.ExecuteResultAsync(); 返回值為元組,status:狀態true 成功,false 失敗,Message:信息
- 開發實例 NemeObject
每一個NameObject都有對應的服務,服務名稱一般都是名稱+Maint(例如: LossReason,服務為LossReasonMaint )
//添加 var common=new CamstarCommon("192.168.1.167",2881,"CamstarAdmin","camstarAdmin"); common.CreateService("LossReasonMaint"); common.Perform(CamstarCommon.PerformType.New); var inputData = common.InputData(); var objectChanges = inputData.NamedObjectField("ObjectChanges"); objectChanges.DataField(“Name”).SetValue(“測試”); return common.ExecuteResult(); //更新 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("LossReasonMaint"); var inputData = common.InputData(); inputData.NamedObjectField("ObjectToChange").SetRef("測試"); common.Perform(CamstarCommon.PerformType.Change); var inputData1 = common.InputData(); var objectChanges = inputData1.NamedObjectField("ObjectChanges"); objectChanges.DataField("Description").SetValue("更新"); return common.ExecuteResult(); //刪除 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("LossReasonMaint"); var inputData = common.InputData(); inputData.NamedObjectField("ObjectToChange").SetRef("測試"); common.Perform(CamstarCommon.PerformType.Delete); return common.ExecuteResult();
- 開發實例RevsionedObject
每一個RevsionedObject都有對應的服務,服務名稱一般都是名稱+Maint(例如: ERPRoute,服務為ERPRouteMaint )
//添加 var common=new CamstarCommon("192.168.1.167",2881,"CamstarAdmin","camstarAdmin"); common.CreateService("ERPRouteMaint"); common.Perform(CamstarCommon.PerformType.New); var inputData = common.InputData(); var objectChanges = inputData.RevisionedObjectField("ObjectChanges"); objectChanges.DataField("Name").SetValue("測試"); objectChanges.DataField("Revision").SetValue("1"); objectChanges.DataField("IsRevofRcd").SetValue(true);//默認版本 return common.ExecuteResult(); //更新 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("ERPRouteMaint"); var inputData = common.InputData(); inputData.RevisionedObjectField("ObjectToChange").SetRef("測試", "1", false); common.Perform(CamstarCommon.PerformType.Change); var inputData1 = common.InputData(); var objectChanges = inputData1.RevisionedObjectField("ObjectChanges"); objectChanges.DataField("Description").SetValue("更新"); return common.ExecuteResult(); //添加新版本 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("ERPRouteMaint"); var inputData = common.InputData(); inputData.RevisionedObjectField("ObjectToChange").SetRef("測試", "1", false); common.Perform(CamstarCommon.PerformType.NewRev); var inputData1 = common.InputData(); var objectChanges = inputData1.RevisionedObjectField("ObjectChanges"); objectChanges.DataField("Revision").SetValue("2"); objectChanges.DataField("IsRevofRcd").SetValue(true);//默認版本 return common.ExecuteResult(); //刪除指定版本 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("LossReasonMaint"); var inputData = common.InputData(); inputData.NamedObjectField("ObjectToChange").SetRef("測試"); common.Perform(CamstarCommon.PerformType.Delete); return common.ExecuteResult(); //刪除所有版本 var common = new CamstarCommon("192.168.1.167", 2881, "CamstarAdmin", "camstarAdmin"); common.CreateService("ERPRouteMaint"); var inputData = common.InputData(); inputData.RevisionedObjectField("ObjectToChange").SetRef("測試", null, true); common.Perform("DeleteAllRevisions"); return common.ExecuteResult();
- 開發實例SubEntity
var entity= objectChanges.Subentity(“Entrie”);//實例化 item.DataField(“Qty”).SetValue(2);//新項字段賦值
- 開發實例SubEntityList
var list= objectChanges.SubentityList(“Entries”);//實例化 var item=list.AppendItem();//添加新項 item.DataField(“__name”).SetValue(“測試”);//新項字段賦值
- 開發實例NamedSubEntityList
var list= objectChanges.NamedSubentityList(“Entries”);//實例化 var item=list.AppendItem();//添加新項 item.DataField(“Name”).SetValue(“測試”);//新項Name字段賦值(必須)