如何撰寫交易整合器應用程式的程式碼
部署交易整合器 (TI) 元件之後,您就可以針對該元件撰寫程式碼。 完成撰寫程式碼之後,您可以測試程式碼,並視需要修改 TI 元件的介面。
撰寫 TI 應用程式的程式碼
建立 TI 物件的實例。
TI 物件包含您要撰寫程式碼的介面。 當您的應用程式在 TI 物件上呼叫介面時,TI 管理員會將資訊傳遞給遠端伺服器。
設定您的資料變數。
如同使用 Host Integration Server 的許多應用程式一樣,請務必使用可成功轉譯到遠端伺服器及從遠端伺服器轉譯的資料類型。 如需資料類型及其在系統之間對應方式的詳細資訊,請參閱資料類型和主機和自動化資料。
對 TI 物件中的任何相關參數進行呼叫。
執行應用程式所需的任何動作,這可能包括呼叫 TI 物件所描述的介面。 您可能也有應用程式所需的其他工作。 如需詳細資訊,請參閱 程式設計 Windows-Initiated 處理。
撰寫應用程式時,請務必考慮環境的相關安全性詳細資料。
範例
下列範例會從 SDK 範例目錄中的「差異聯集」教學課程中,從主要程式碼剪下。 如需完整的程式碼範例,請參閱 < Install Directory > \Microsoft Host Integration Server\SDK\Samples\ApplicationIntegration\WindowsInitiated\DiscrimiatedUnion。
using System;
using System.Collections.Generic;
using System.Text;
using Banking;
namespace DiscriminatedUnions
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Processing Output only Account Information");
AccountInformationOutOnly();
Console.WriteLine("\n\nProcessing Input and Output Account Information");
AccountInformationInOut();
Console.WriteLine("\nPress any key to continue...");
Console.Read();
}
#region Output Only Discriminated Union Processing
static void AccountInformationOutOnly()
{
// Define an instance of the TI Banking object
Banking.Accounts MyBankObj = new Banking.Accounts();
// Call the Get Account Information method on the TI Object
// passing it the array that contains the checking and saving
// account information
string AccountNumber = "BNK4566112";
string AccountType = " ";
Object AcctInfoUnionObj = null;
string FillerNotUsedByThisSample = " ";
MyBankObj.GetAInfoOutOnly("111223333", AccountNumber, out AccountType, out AcctInfoUnionObj, out FillerNotUsedByThisSample);
switch (AcctInfoUnionObj.GetType().ToString())
{
// check the type of the union that was returned to determine
// whether the array element
// is a checking or saving account so that the correct
// structure of the union can be used
case "Banking.CHECKING":
Banking.CHECKING ChkInfo = (Banking.CHECKING)AcctInfoUnionObj;
Console.WriteLine("Checking account number: {0}", AccountNumber);
Console.WriteLine("\tOverdraft charge:\t {0,10:C2}", ChkInfo.CHK_OD_CHG);
Console.WriteLine("\tOverdraft limit:\t {0,10:C2}", ChkInfo.CHK_OD_LIMIT);
Console.WriteLine("\tLinked account:\t {0,18}", ChkInfo.CHK_OD_LINK_ACCT);
Console.WriteLine("\tLast Statement:\t {0,18}", ChkInfo.CHK_LAST_STMT);
Console.WriteLine("\tDetail Items:\t {0,18:F0}", ChkInfo.CHK_DETAIL_ITEMS);
Console.WriteLine("\tBalance:\t {0,18:C2}\n", ChkInfo.CHK_BAL);
break;
case "Banking.SAVINGS":
Banking.SAVINGS SavInfo = (Banking.SAVINGS)AcctInfoUnionObj;
Console.WriteLine("Savings account number: {0}", AccountNumber);
Console.WriteLine("\tInterest rate:\t {0,20:P}", SavInfo.SAV_INT_RATE / 100);
Console.WriteLine("\tService charge:\t {0,18:C2}", SavInfo.SAV_SVC_CHRG);
Console.WriteLine("\tLast Statement:\t {0,18}", SavInfo.SAV_LAST_STMT);
Console.WriteLine("\tDetail Items:\t {0,18:F0}", SavInfo.SAV_DETAIL_ITEMS);
Console.WriteLine("\tBalance:\t {0,18:C2}\n", SavInfo.SAV_BAL);
break;
default:
break;
}
}
#endregion Output Only Discriminated Union Processing
}
}
選擇性註解。