Fourth Shift四班FSTI模块的资料.docx
- 文档编号:1163904
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:62
- 大小:256.23KB
Fourth Shift四班FSTI模块的资料.docx
《Fourth Shift四班FSTI模块的资料.docx》由会员分享,可在线阅读,更多相关《Fourth Shift四班FSTI模块的资料.docx(62页珍藏版)》请在冰点文库上搜索。
FourthShift四班FSTI模块的资料
四班事务接口软件开发工具(FSTISDK)
7.30版本
四班事务接口软件开发工具
(FSTISDK)
11.简介
四班事务接口模块(FSTM)可以使用户在不使用传统的GUI或导入功能的情况下更新四班生产数据库。
在FSTM中,执行标准的四班数据访问规则,通过使用API来接收来自其它程序的事务。
四班事务接口软件开发工具(SDK)是一项资源文件,在使用FSTM编制提交四班处理的符合四班文档格式的事务时可参考该文件。
此SDK是一组类库,提供了简单但强大的机制用于开发可实时对四班系统进行插入、删除、更新操作的应用程序。
使用FSTISKD,程序员能编写定制的交互程序或网络应用程序以自动完成很多常规任务,或者开发出能将四班功能与外部程序连接的应用程序。
FSTISDK支持很多标准开发语言,如VisualBasic、C#、VB.NET和脚本语言。
所有使用FSTISDK的程序都要遵循一个简单的模式,第一步是登录,因为SDK遵守四班安全规则。
在成功登录后,程序会提交事务请求并立即接收到成功或失败的响应。
接收到成功或失败的响应后,FSTISDK会提供附加的返回信息指示程序员进行相应的后续操作。
有一种事务请求格式(也是最难处理的)是标准四班恢复(RCVR)或是以逗号分隔的SOP导入字符串(CDF)。
而另一种相当简单的生成CDF字符串的方法是使用FourthShift.Transactions类库中的事务类。
11.1FourthShift.Transactions类库
使用FourthShift.Transactions类库,程序员只需设置类的属性,不必生成逗号分隔的字符串。
对四班RCVR或SOP导入所支持的所有事务类型,该类库都包含一个特定的类。
例如,为了向四班添加一个物料,应用程序可能会生成如下的复杂字符串:
“ITMB00”,,,”NewItem”,“NewItemDescription”,,,…,
或者,应用程序从FourthShift.Transactions类库实例化一个ITMB00对象,并设置它的ItemNumber和ItemDescription属性,然后提交ITMB00对象进行处理。
11.2FourthShift.TransactionsClient类库
第二个类库FourthShift.TransactionClient用来处理事务。
FSTIClient是该类库的主要类,它有两个方法:
ProcessCDF和ProcessID,分别接收CDF事务字符串和事务对象。
FSTIClient使用.NetRemoting技术向服务器提交请求以获得高速处理。
处理结束后,服务器向客户端返回成功或失败的信息。
11.3手册结构
本手册旨在帮助程序员使用FourthShift.Transactions和FourthShift.TransactionClient中的类。
手册按以下结构编写:
FourthShift.Transactions编程指南
FourthShift.Transactions类库的编程指南。
使用示例程序演示使用库中的类。
FourthShift.TransactionClien编程指南
FourthShift.TransactionClient类库的编程指南。
使用示例程序演示FourthShift.TransactionClient库中的FSTIClient类和相关的FSTIError类的主要功能。
FourthShift.TransactionsAPI
FourthShift.Transactions库的参考手册。
包含了库中类的详尽的属性和方法。
FourthShift.TransactionClientAPI
FourthShift.TransactionClient库的参考手册。
包含了库中类的详尽的属性和方法。
FSTI系统管理
FSTISDK的管理信息。
本部分特别重要的是Impersonation配置信息。
12.FourthShift.Transactions编程指南
FourthShift.Transactions提供了一致的方便的接口,用于生成和操作四班RCVR和SOP导入所支持的事务。
库中的类基于四班的数据导入字典和SOP的导入字典。
在与FSTIClient对象联合使用进行实时处理时,库中的类尤其有用;也可以单独使用生成逗号分隔格式(CDF)的事务字符串,这些字符串可写入文件后用于RCVR和四班SOP导入。
库中的类以相关的6个字符命名,例如,ITMB00类用来生成一个新物料,MOMT00用来生成新的生产订单页眉,COMTOO插入一个新的客户订单页眉,COMT05添加客户订单行,SOPO00生成一个新的SOP订单页眉。
类库包含有上百个功能类,每一个都在四班或SOP导入字段中定义。
类中的大多数属性,例如ITMB00类的ItemNumber和ItemDescription,都对应该类基于的逗号分隔格式的各字段。
事务类属性的命名是基于四班SQL函数处理视图名称,因为这些名称有自描述性并易于理解。
但FourthShift.Transactions也支持TITANIUM和SQL系统。
为了描述更具体一些,以下是ITMB00的所有属性:
Category,Description,IsInspectionRequired,IsLotTraced,IsSerialized,ItemDescription,ItemNumber,ItemRevision,ItemStatus,ItemType,ItemUM,MakeBuyCode,Name,OrderPolicy,RequiredAreSet
以下是MOMT00类的属性:
Category,DeliverTo,Description,MONumber,Name,Planner,RequiredAreSet,TextLine1,TextLine2,TextLine3,TextLine4,WorkCenter
也有一些属性是所有事务类共有的,如Category、Description和RequiredAreSet。
其余字段是各类型事务独有的,如ItemNumber、ItemUM是ITMB00的;MONumber是MOMT00的。
应用程序生成类的实例,设置ItemNumber、ItemDescription、ItemUM等字段,然后就可以使用对象的GetString中获取正确的格式化字符串,或者将对象传递给FSTIClient处理。
12.1编程范例说明
本例将会通过一个名为ItmbObject的示例程序使用FSTransaction对ITMB00对象和MOMT03对象进行操作。
如果已经安装了FSTM模块,在四班安装目录下的\mfgsys\fstm\SDKSampleCode目录会有源代码。
实例程序是用C#和VB.NET编写的一个简单的控制台程序,而VB6则是用列表框来模拟控制台窗口。
12.2引用类库
为了能访问FourthShift.Transactions库,C#和VisualBasic.NET程序员需要在程序中添加如下引用:
ProgramFiles=>FourthShift=>Managed=>FourthShift.Transactions.dll
该库文件仅在编程时起作用,工程的引用设置copylocal应设为false。
因为运行时的dll实际是在是在全局编译缓存(GAC)中,而GAC则是四班工作站安装的一部分。
VB6程序员需要添加如下应用:
FourthShiftTransactionLibrary
一旦引用已设置,C#和VB.NET程序员就需要添加使用或导入声明:
[C#]
usingSystem;
usingSystem.Collections;
usingSoftBrands.FourthShift.Transaction;
[VB.Net]
ImportsSystem
ImportsSystem.Collections
ImportsSoftBrands.FourthShift.Transaction
12.3变量声明
示例程序是一个控制台程序,代码结构是一个大的函数,大多数变量在顶部声明(VB6代码都包含在窗体加载事件中)。
以下是程序的第一部分--变量声明,这部分之前是用于描述变量用途的注释。
[C#]
ITMB00myItem=newITMB00();
stringtransactionString;
ITransactionFieldcurrentField;
string[]itemRequiredFieldNames;
int[]itemRequiredFieldNumbers;
int[]itemEligibleFieldNumbers;
inti;
[VB.Net]
DimmyItemAsITMB00=NewITMB00
DimtransactionStringAsString
DimcurrentFieldAsITransactionField
DimitemRequiredFieldNamesAsString()
DimitemRequiredFieldNumbersAsInt32()
DimitemEligibleFieldNumbersAsInt32()
DimiAsInt32
[VB6]
DimmyItemAsITMB00
SetmyItem=NewITMB00
DimtransactionStringAsString
DimcurrentFieldAsITransactionField
DimitemRequiredFieldNames()AsString
DimitemRequiredFieldNumbers()AsLong
DimitemEligibleFieldNumbers()AsLong
DimiAsLong
第一行生成一个ITMB00对象;第二个变量transactionString用于最终保存ITMB00CDF格式的事务字符串。
下一个变量currentField是ItransactionField类型的。
TransactionField类型和它的接口ItransactionField是使用该类库的关键概念。
ITMB00的大所数属性都对应原来的CDF字符串的字段。
这些属性都来自于拥有ItransactionField接口的TransactionField类型的普通对象。
这意味着这些属性都共有一些如Value和Type这样的属性,这也使编程的通用性更好,如以下VB.Net语法所示:
currentField=myItem.ItemNumber
‘currentFieldreferencesItemNumber
currentField=myItem.ItemDescription
‘currentFieldnowreferencesItemDescription
同样,所有的事务类如ITMB00和MOMT00都派生自TransactionId,而TransactionId实现了Itransaction接口,这样就可以编写如下的通用代码:
DimcurrentTransactionasITransaction
currentTransaction=newITMB00
‘currentTransactionreferencesaITMB00transactionobject
currentTransaction=newMOMT00
‘currentTransactionnowreferencesaMOMT00transactionobject
后面的三个变量用来保存由TransactionId派生的所有类的方法的返回值。
itemRequiredNames可以接收一个字段名数组,字段名顺序必须按照RCVR或SOP导入的有效输入的事务设置。
itemRequiredFieldNumbers保存类似的信息,但它保存的是事务字符串的位置而非名称。
然而事务中字段并不都是有效的,许多符合格式的事务字段串很多位置都是空的。
itemEligibleFieldNumbers用于接收调用方标识可以填入的字段位置的方法的结果。
EligibleFieldsNumbers是RequiredFieldNumbers的超集。
12.4设置属性
以下的代码是设置myITMB00对象的属性。
记住,每个属性,如ItemNumber,都是一个对象的引用,该对象实现了ItransactionField接口,并且用.Value语法来保存和检索实际设置值。
[C#]
myItem.ItemNumber.Value="19-BLACK";
myItem.ItemDescription.Value="19\"FRAME,BLACK";
myItem.ItemUM.Value="EA";
myItem.ItemRevision.Value="01";
myItem.MakeBuyCode.Value="M";
myItem.ItemType.Value="N";
myItem.ItemStatus.Value="A";
myItem.IsLotTraced.Value="N";
myItem.IsSerialized.Value="N";
myItem.OrderPolicy.Value="3";
myItem.IsInspectionRequired.Value="Y";
[VB.Net]
WithmyItem
.ItemNumber.Value="19-BLACK"
.ItemDescription.Value="19""FRAME,BLACK"
.ItemUM.Value="EA"
.ItemRevision.Value="01"
.MakeBuyCode.Value="M"
.ItemType.Value="N"
.ItemStatus.Value="A"
.IsLotTraced.Value="N"
.IsSerialized.Value="N"
.OrderPolicy.Value="3"
.IsInspectionRequired.Value="Y"
EndWith
[VB6]
WithmyItem
.ItemNumber.Value="19-BLACK"
.ItemDescription.Value="19""FRAME,BLACK"
.ItemUM.Value="EA"
.ItemRevision.Value="01"
.MakeBuyCode.Value="M"
.ItemType.Value="N"
.ItemStatus.Value="A"
.IsLotTraced.Value="N"
.IsSerialized.Value="N"
.OrderPolicy.Value="3"
.IsInspectionRequired.Value="Y"
EndWith
12.5获取事务字符串
下一行代码演示了如何获取以逗号分隔的ITMB00事务的字符串。
用枚举值参数来指定所需的格式。
这段代码传递TransactionStringFormat.fsCDF值来获取CDF格式的字符串。
也可以TransactionStringFormat.fsXML参数取得XML字符串。
[C#]
//RetrievethetransactionstringfromtheItmb00object
transactionString=myItem.GetString(TransactionStringFormat.fsCDF);
Console.WriteLine("===TransactionString===\n");
Console.WriteLine(transactionString);
Console.WriteLine();
[VB.Net]
'RetrievethetransactionstringfromtheItmb00object
transactionString=myItem.GetString(TransactionStringFormat.fsCDF)
Console.WriteLine("===TransactionString==="&vbCrLf)
Console.WriteLine(transactionString)
Console.WriteLine()
[VB6]
'RetrievethetransactionstringfromtheItmb00object
transactionString=myItem.GetString(TransactionStringFormat_fsCDF)
listOutput.AddItem"===TransactionString==="
listOutput.AddItem""
listOutput.AddItemtransactionString
listOutput.AddItem""
这部分代码的执行结果是:
===TransactionString===
"ITMB00","","11/05/2003","018:
10:
25","0","","19-BLACK","19"FRAME,BLACK","EA","01","M","N","A","N","N","3","Y"
GetString方法将会在事务字符串的第三和第四个位置填入当前日期和时间。
12.6取得必填字段名
所有的事务类都有一个GetRequiredFieldNames用于获得必填字段名。
这段代码演示了如何取得字段名。
有些事务类,其字段可能需要填写,这是由配置决定的,例如与批次相关的物料。
该函数不能返回可能要填字段,只能返回必须要填的字段。
[C#]
//GettherequiredfieldnamesfromtheItmb00object
itemRequiredFieldNames=myItem.GetRequiredFieldNames();
Console.WriteLine("===RequiredFieldsNames===\n");
for(i=0;i { Console.WriteLine("FieldName: {0}",itemRequiredFieldNames[i]); } Console.WriteLine(); [VB.Net] 'GettherequiredfieldnamesfromtheItmb00object itemRequiredFieldNames=myItem.GetRequiredFieldNames() Console.WriteLine("===RequiredFieldsNames==="&vbCrLf) Fori=0ToitemRequiredFieldNames.Length-1 Console.WriteLine("FieldName: {0}",itemRequiredFieldNames(i)) Nexti Console.WriteLine() [VB6] 'GettherequiredfieldnamesfromtheItmb00object itemRequiredFieldNames=myItem.GetRequiredFieldNames() listOutput.AddItem"===RequiredFieldsNames===" listOutput.AddItem"" Fori=0ToUBound(itemRequiredFieldNames) listOutput.AddItem"FieldName: "&itemRequiredFieldNames(i) Nexti listOutput.AddItem"" 这部分代码的执行结果是: ===RequiredFieldsNames=== FieldName: ItemNumber ITMB00中只有ItemNumber是必填的,其它都是由选项决定的。 12.7取得必填字段序号 与必填字段名不同的是,以下代码使用GetRequiredFieldNumbers方法取得逗号分隔字符串中必填字段的序号。 结果显示的是必填的ItemNumber字段位置7。 [C#] //Gettherequiredfieldnumbers(thepositionsinthetransactionstring //thatarerequired) itemRequiredFieldNumbers=myItem.GetRequiredFieldNumbers(); Console.WriteLine("===RequiredFieldsNumbers===\n"); for(i=0;i { Console.WriteLine("FieldNumber: {0}",itemRequiredFieldNumbers[i]); } Console.WriteLine(); [VB.Net] 'Gettherequiredfieldnumbers(thepositionsinthetransactionstring 'thatarerequired) itemRequiredFieldNumbers=myItem.GetRequiredFieldNumbers() Console.WriteLine("===RequiredFieldsNumbers==="&vbCrLf) Fori=0ToitemRequiredFieldNumbers.Length-1 Console.WriteLine("FieldNumber: {0}",itemRequiredFieldNumbers(i)) Nexti Console.WriteLine() [VB6] 'Gettherequiredfieldnumbers(thepositionsinthetransactionstring 'thatarerequired) itemRequiredFieldNumbers=myItem.GetRequiredFieldNumbers() listO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fourth Shift四班FSTI模块的资料 Shift FSTI 模块 资料